操作数据库的核心类
- SQLiteDatabase 管理和操作数据库
获取数据库对象的方法:
/**
* name 数据库名称 (在当前的应用中是唯一)
* mode 数据库访问的权限 MODE_PRIVATE 私有的
* factory 游标工厂 null
*/
Context.openOrCreateDatabase(String name,int mode,CursorFactory factory);
SQLiteDatabase 主要提供的方法
void execSQL(String sql) 执行sql语句
Cusor rawQuery(String sql,String[] selectionArgs) 查询数据库符合要求的内容
封装好的方法:
insert() 插入数据到指定的表中
update() 修改指定表中的数据
query() 查询表中的指定内容
delete() 删除表中指定的数据 - SQLiteOpenHelper 用于数据库的创建和版本的更新
使用:
1.定义一个类继承SQLiteOpenHelper
2.重写父类的方法
onCreate(SQLiteDatatabase db) 第一次创建数据库时调用, 只会被执行一次
onUpgrade(SQLiteDatatabase db,int oldVersion, int newVersion) 当数据库版本发生变化时, 执行此方法(可能会被执行多次)
3.提供一个构造方法
public DbOpenHelper(Context context) {
super(context, "phone_book", null, 1);//第一个参数:上下文对象;第二个参数:数据库名;第三个参数:游标工厂;第四个参数:版本号
} - 游标
游标(cursor)是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。i
可以从游标中获取结果中每一条的数据。
方法:
boolean cursor.move(int offset) 游标向上或向下移动指定的行数 , 如果offset为正数,则表示向上移动; 如果为负数 表示向下移动; 并且判断当前数据是否存在
boolean cursor.moveToNext() 游标移动到下一条数据, 并且判断下一条数据是否存在
boolean cursor.moveToPrevious() 游标移动到上一条数据, 并且判断上一条数据是否存在
boolean cursor.moveToFirst() 游标移动到第一条数据, 并且判断第一条数据是否存在
boolean cursor.moveToLast() 游标移动到最后一条数据, 并且判断最后一条数据是否存在
boolean cursor.moveToPosition() 游标移动到某一条数据, 并且判断某一条数据是否存在
int cursor.getCount() 得到游标中数据的数量
通过游标取值的方法:
获取数据内容cursor.getString(列的编号) //列的编号从0开始
根据列的名称得到列的编号:cursor.getColumnIndex("字段名称");