Android 系统API实现数据库的增删改查和SQLite3工具的使用

时间:2023-03-08 19:59:12

在《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” 出现如下错误

Android 系统API实现数据库的增删改查和SQLite3工具的使用

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

Android 系统API实现数据库的增删改查和SQLite3工具的使用

进入相应目录

Android 系统API实现数据库的增删改查和SQLite3工具的使用

继续进入databases 目录

Android 系统API实现数据库的增删改查和SQLite3工具的使用

输入如下命令:

sqlite3 person.db

Android 系统API实现数据库的增删改查和SQLite3工具的使用

执行一条sql语句如下:

Android 系统API实现数据库的增删改查和SQLite3工具的使用