Android 系统API实现数据库的增删改查和SQLite3工具的使用
在《Android SQL语句实现数据库的增删改查》中介绍了使用sql语句来实现数据库的增删改查操作,本文介绍Android 系统API实现数据库的增删改查和SQLite3工具的使用。
系统API实现数据库的增删改查
相关代码修改如下:
package com.wuyudong.db.dao; import java.util.ArrayList;
import java.util.List; import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase; import com.wuyudong.db.PersonSQLiteOpenHelper;
import com.wuyudong.db.domain.Person; public class PersonDao {
private PersonSQLiteOpenHelper helper; public PersonDao(Context context) {
helper = new PersonSQLiteOpenHelper(context);
} /**
* 添加一条记录到数据库
*
* @param name
* 姓名
* @param number
* 电话
*/
public void add(String name, String number) {
SQLiteDatabase db = helper.getWritableDatabase();
// db.execSQL("insert into person (name,number) values (?,?)",
// new Object[] { name, number });
ContentValues values = new ContentValues();
values.put("name", name);
values.put("number", number);
db.insert("person", null, values);
db.close();
} /**
* 查询记录是否存在
*
* @param name
* 姓名 return true存在, false不存在
*/
public boolean find(String name) {
SQLiteDatabase db = helper.getReadableDatabase();
// Cursor cursor = db.rawQuery("select * from person where name=?",
// new String[] { name });
Cursor cursor = db.query("person", null, "name=?",
new String[] { name }, null, null, null);
boolean result = cursor.moveToNext();
cursor.close();
db.close();
return result;
} /**
*
* @param name
* 要修改的人的姓名
* @param newnumber
* 新的号码
*/
public void update(String name, String newnumber) {
SQLiteDatabase db = helper.getReadableDatabase();
// db.execSQL("update person set number=? where name=?", new Object[] {
// newnumber, name });
ContentValues values = new ContentValues();
values.put("number", newnumber);
db.update("person", values, "name=?", new String[] { newnumber });
db.close();
} /**
* 删除一条记录
*
* @param name
*/
public void delete(String name) {
SQLiteDatabase db = helper.getReadableDatabase();
// db.execSQL("delete from person where name=?", new Object[] { name });
db.delete("person", "name=?", new String[] { name });
db.close();
} /**
* 返回全部的数据库信息
*
* @return
*/
public List<Person> findAll() {
List<Person> persons = new ArrayList<Person>();
SQLiteDatabase db = helper.getReadableDatabase();
// Cursor cursor = db.rawQuery("select * from person", null);
Cursor cursor = db.query("person", new String[] { "name", "id",
"number" }, null, null, null, null, null);
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex("id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String number = cursor.getString(cursor.getColumnIndex("number"));
Person person = new Person(id, name, number);
persons.add(person);
}
cursor.close();
db.close();
return persons;
} }
两种数据库增删改查方式的优缺点
1. 直接利用sql语句增删改查
优点:非常的灵活,多表查询,级联查询。
缺点:代码容易出错,方法没有返回值。
2. 利用google包装的api 执行增删改查
优点: 代码不容易出错,写起来简单,方法有返回值
缺点: 不容易多表查询。复杂表的操作,视图都无法实现。
运行代码后查看结果十分麻烦,下面介绍一种简单的方法
SQLite3工具的使用
cmd打开命令行
输入“adb shell” 出现如下错误

以为是模拟器没开的原因,但是打开模拟器后,还是一样的错误出现

进入相应目录

继续进入databases 目录

输入如下命令:
sqlite3 person.db

执行一条sql语句如下:

Android 系统API实现数据库的增删改查和SQLite3工具的使用的更多相关文章
- Android SQL语句实现数据库的增删改查
本文介绍android中的数据库的增删改查 复习sql语法: * 增 insert into info (name,phone) values ('wuyudong','111') * 删 delet ...
- Android下利用SQLite数据库实现增删改查
1: 首先介绍如何利用adb查看数据库 1: adb shell 2: cd /data/data/包名/databases 3: sqlite3 数据库 4 接下来就可以进行数据库的sql语法 ...
- Android学习---数据库的增删改查(sqlite CRUD)
上一篇文章介绍了sqlite数据库的创建,以及数据的访问,本文将主要介绍数据库的增删改查. 下面直接看代码: MyDBHelper.java(创建数据库,添加一列phone) package com. ...
- 利用API方式进行数据库的增删改查
/* 将数据库的增删改查单独放进一个包 */ package com.itheima28.sqlitedemo.dao; import java.util.ArrayList; import java ...
- Android中Sqlite数据库进行增删改查
今天这篇文章写Sqlite数据库,通过一个小案例来完整讲一下数据库常见的CRUD操作. 先对知识点总结: SQLite数据库 轻量级关系型数据库 创建数据库需要使用的api:SQLiteOpenHel ...
- ThinkPHP实现对数据库的增删改查
好久都没有更新博客了,之前老师布置的任务总算是现在可以说告一段落了,今天趁老师还没提出其他要求来更新一篇博客. 今天我想记录的是我之前做项目,自己所理解的ThinkPHP对数据库的增删改查. 首先要说 ...
- 【转载】通过JDBC对MySQL数据库的增删改查
通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...
- Java通过JDBC连接数据库的三种方式!!!并对数据库实现增删改查
前言 java连接数据库完整流程为: 1,获得驱动(driver),数据库连接(url),用户名(username),密码(password)基本信息的三种方式. 2,通过获得的信息完成JDBC实现连 ...
- [译]聊聊C#中的泛型的使用(新手勿入) Seaching TreeVIew WPF 可编辑树Ztree的使用(包括对后台数据库的增删改查) 字段和属性的区别 C# 遍历Dictionary并修改其中的Value 学习笔记——异步 程序员常说的「哈希表」是个什么鬼?
[译]聊聊C#中的泛型的使用(新手勿入) 写在前面 今天忙里偷闲在浏览外文的时候看到一篇讲C#中泛型的使用的文章,因此加上本人的理解以及四级没过的英语水平斗胆给大伙进行了翻译,当然在翻译的过程中发 ...
随机推荐
- 第23/24周 临时数据库(TempDb)
在今天的性能调优培训里我们讨论下TempDb——SQL Server的公共厕所,在SQL Server里我是这样描述它的.我们的每个人都会经常使用TempDb.有些人直接使用它,有些人不直接使用它.今 ...
- 【Swift学习】Swift编程之旅---方法(十五)
在Swift中结构体和枚举也能够定义方法,而在 Objective-C 中,类是唯一能定义方法的类型. 实例方法 实例方法是属于某个特定类.结构体或者枚举类型实例的方法,实例方法提供访问和修改实例属性 ...
- XML基础学习02<linq to xml>
Linq to XML的理解 1:这是一种比较好的操作Xml的工具. àXDocument 文档 àXElement 元素 àXAttribute 属性 àXText 文本 2:这里还是和我们之前创建 ...
- 通过原生JS实现为元素添加事件
自己写了一个为元素添加事件的方法,并封装到对象中. 说明: id : 目标元素的ID type: 事件的类型,注意的是不能加on fn:事件处理程序 isBubble :规定事件流 代码: var b ...
- 【原创】kafka controller源代码分析(二)
四.TopicDeletionManager.scala 管理topic删除的状态机,具体逻辑如下: TopicCommand发送topic删除命令,在zk的/admin/delete_topics目 ...
- Unicode中文和特殊字符的编码范围
编程中有时候需要用到匹配中文的正则,一般用 [ \u4e00-\u9fa5]+ 即可搞定.不过这正则对一般的火星文鸟语就不太适用了,甚至全角的标点符号都不包含在内.例如游戏里面的玩家名,普通青年一般都 ...
- Quartz.net使用总结
进来项目中用到了 任务调度 来实现短信发送网关,所以这里分享下 Quartz.net 的使用经验. 任务调度选用了 Quartz.net 来实现,之前用的是C#中自带的window服务安装,这次 ...
- WinForm小白的WPF初试一:从PropertyGrid控件,输出内容到Word(上)
学WinForm也就半年,然后转到WPF,还在熟悉中.最近拿到一个任务:从PropertyGrid控件,输出内容到Word.难点有: 一.PropertyGrid控件是WinForm控件,在WPF中并 ...
- C#网站发布在IIS10上,Access数据库读取为空白的解决方案
打开IIS10,进入应用程序池,右边“设置应用程序池默认设置”中,启用32位应用程序,False改为True即可.
- jquery简单原则器(匹配索引为指定值的元素)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...