首页 > 代码库 > Android Sqlite

Android Sqlite

  1. SQLite内部只支持NULL,INTEGER,REAL,TEXT,BLOB这5数据类型,但是SQLite可以接受svarchar(n),char(n),decimal(p,s)等数据类型,SQLite在运算或者保存时会将他们转换成上述5种类型
  2. SqLiteDatabase代表一个数据库,常用方法如下:
    • static SQLiteDatabase openDatabase:打开path文件所代表的SQLite数据库
    • static SQLiteDatabase openOrCreateDatabase:打开或创建file文件所代表的SQLite数据库

  3. 获得SQLiteDatabase对象后,接下来可以调用SQLiteDatabase的方法来操作数据库:
    • execSQL(String sql,Object[] bindArgs):执行带占位符的SQL语句
    • execSQL(String sql):执行SQL语句
    • insert(String table,String nullColumnHack,ContentValues values):向执行表中插入数据
    • update(String table,ContentValues values,String whereClause,String[]whereArgs):更新指定表中的特定数据
    • delete(String table,String whereClause,String[]whereArgs):删除指定表中的特定数据
    • Cursor query:对执行数据表执行查询,查询得到的cursor是指向第一条记录之前的,需要先moveToNext
    • rawQuery:执行带占位符的SQL查询
    • beginTransaction:开始事务
    • endTransacton:结束事务,是提交事务还是回滚事务由事务是否成功(settransactionSuccessful)来确定
    • inTransaction:判断当前上下文是否处于事务中
    • setTransactionSuccessful:设置事务成功

  4. Cursor类的常用函数:
    • move(int offset):将记录指针向上或者向下移动offset行数,offset>0向下移动,offset<0向上移动
    • moveToFirst:将记录指针移动到第一行,成功就返回true
    • moveToLast:将记录指针移到到最后一行,成功就返回true
    • moveToPosition:将记录指针移动到指定的行,成功就返回true
    • moveToPrevious:将记录指针移动到上一行,成功就返回true
    • getxXX(int columnIndex):返回该行指定列的数据

  5. 使用SimpleCursorAdapter封装cursor时要求底层数据表的主键列列名为_id,因为SimpleCursorAdapter只能识别列名为_id的主键

  6. 通常使用SQLiteOpenHelper类来处理SQLiteDatabase,一般是创建SQLiteOpenHelper的子类并扩展它的onCreate和onUpgrade方法,在构造函数中指定database name,SQLiteOpenHelper的常用方法如下:
    • getReadableDatabase:创建或者打开一个database
    • getWritableDatabase:创建或者打开一个database用于读写

  7. 将虚拟机中的sqlite database文件拷到本地的方法:
    • adb -s "emulator" pull /data/data/com.package.name/databases/test.db d://test.db

Android Sqlite