android 中操作SQLite数据库

SQLiteOpenHelper类

SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本的更新。一般是建立一个类继承它,并实现它的onCreate和onUpgrade方法。

  • SQLiteOpenHelper(Context context,String name,SQLiteDatabase.CursorFactory factory,int version) 构造方法,一般是传递一个要创建的数据库名称那么参数
  • onCreate(SQLiteDatabase db) 创建数据库时调用
  • onUpgrade(SQLiteDatabase db,int oldVersion , int newVersion) 版本更新时调用
  • getReadableDatabase() 创建或打开一个只读数据库
  • getWritableDatabase() 创建或打开一个读写数据库

SQLiteDatabase类

常用方法

  • (int) delete(String table,String whereClause,String[] whereArgs) 删除数据行的便捷方法
  • (long) insert(String table,String nullColumnHack,ContentValues values) 添加数据行的便捷方法
  • (int) update(String table, ContentValues values, String whereClause, String[] whereArgs) 更新数据行的便捷方法
  • (void) execSQL(String sql) 执行一个SQL语句,可以是一个select或其他的sql语句
  • (void) close() 关闭数据库
  • (Cursor) query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit) 查询指定的数据表返回一个带游标的数据集
  • (Cursor) rawQuery(String sql, String[] selectionArgs) 运行一个预置的SQL语句,返回带游标的数据集(与上面的语句最大的区别就是防止SQL注入)

Cursor

查询数据库返回的游标, 通过游标获取数据

  • getCount() 总记录条数
  • isFirst() 判断是否第一条记录
  • isLast() 判断是否最后一条记录
  • moveToFirst() 移动到第一条记录
  • moveToLast() 移动到最后一条记录
  • move(int offset) 移动到指定的记录
  • moveToPosition(int position) 移动到指定index
  • moveToNext() 移动到下一条记录
  • moveToPrevious() 移动到上一条记录
  • getColumnIndex(String columnName) 获得指定列索引的int类型值, 如果不存在返回-1

需求

ContentValues 存入的键为字段名, 值 为要插入的值

数据的添加

  • 使用 ContentValues 方法

  • 使用execSQL方式来实现

数据的删除

使用execSQL方式的实现

数据修改

使用execSQL方式的实现

数据查询

通过query实现查询的

各参数说明:

  • table:表名称
  • colums:列名称数组
  • selection:条件子句,相当于where
  • selectionArgs:条件语句的参数数组
  • groupBy:分组
  • having:分组条件
  • orderBy:排序类
  • limit:分页查询的限制
  • Cursor:返回值,相当于结果集ResultSet

查询的例子

0 Comments
Leave a Reply