sqlite简介
sqlite是可用c语言编写的开源嵌入式数据库引擎。它支持大多数的sql92标准,并且可以在所有主要的操作系统上运行。
特性主要包括:
关于事务处理的安全性问题
关于sqlite的数据类型:
动态数据类型(弱类型):
-当某个值插入到数据库时,sqlite将会检查它的类型,如果该类型与关联的列不匹配,sqlite则将会尝试将该值转换成该列的类型,如果不能转换,则该值将作为本身的类型存储。
安全性:通过单一的独占和共享锁,进程要读写sqlite数据库内的数据时,要获得这个锁,这样就避免了其他进程乱用,提高了安全性。
在Android中如何使用sqlite:
- sqliteDatabase
- sqliteOpenHelper
使用内置函数操作数据库
1. ContentValues类
存储一组可以被ContentResolver处理的值,可以理解为它的对象存储了多个键值对
2. 使用ContentValues和内置函数插入数据库
ContentValues values = new ContentValues();
values.put("name","xzhang76");
values.put("sex","man");
values.put("age",26);
sqliteDatabase.insert("studentdb",null,values);
可以将values清空,并重新存值。
values.clear();
values.put("name","xzhang65");
values.put("sex",27);
sqliteDatabase.insert("studentdb",values);
- 更新和删除
sqliteDatabase.update("studentdb",values,"_id>?",new String[]{"4"});
sqliteDatabase.delete("studentdb","name like ?",new String[]{"%8%"});
- 通过Cursor类的getColumnNames()可以得到所有的列名
String[] columnNames = cursor.getColumnNames();
while (cursor.moveToNext()) { //moveToNext()可以移动到下一行
for(String columnName:columnNames) {
Log.i(TAG,cursor.getString(cursor.getColumnIndex(columnName)));
}
}