- SQLite内部只支持NULL,INTEGER,REAL,TEXT,BLOB这5数据类型,但是SQLite可以接受svarchar(n),char(n),decimal(p,s)等数据类型,SQLite在运算或者保存时会将他们转换成上述5种类型
- SqLiteDatabase代表一个数据库,常用方法如下:
- static SQLiteDatabase openDatabase:打开path文件所代表的SQLite数据库
- static SQLiteDatabase openOrCreateDatabase:打开或创建file文件所代表的SQLite数据库
- 获得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:设置事务成功
- Cursor类的常用函数:
- move(int offset):将记录指针向上或者向下移动offset行数,offset>0向下移动,offset<0向上移动
- moveToFirst:将记录指针移动到第一行,成功就返回true
- moveToLast:将记录指针移到到最后一行,成功就返回true
- moveToPosition:将记录指针移动到指定的行,成功就返回true
- moveToPrevious:将记录指针移动到上一行,成功就返回true
- getxXX(int columnIndex):返回该行指定列的数据
- 使用SimpleCursorAdapter封装cursor时要求底层数据表的主键列列名为_id,因为SimpleCursorAdapter只能识别列名为_id的主键
- 通常使用SQLiteOpenHelper类来处理SQLiteDatabase,一般是创建SQLiteOpenHelper的子类并扩展它的onCreate和onUpgrade方法,在构造函数中指定database name,SQLiteOpenHelper的常用方法如下:
- getReadableDatabase:创建或者打开一个database
- getWritableDatabase:创建或者打开一个database用于读写
- 将虚拟机中的sqlite database文件拷到本地的方法:
- adb -s "emulator" pull /data/data/com.package.name/databases/test.db d://test.db
时间: 2024-10-03 01:22:28