一、继承SQLiteOpenHelper类
public class MySQLiteOpenHelper extends SQLiteOpenHelper {
public static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "数据库的名称.db";
public MySQLiteOpenHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public void onCreate(SQLiteDatabase db) {
db.execSQL(创建数据库的SQL语句);
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 升级数据库
}
}
二、获取SQLiteDatabase类
MySQLiteOpenHelper mySQLiteOpenHelper = new MySQLiteOpenHelper(getContext());
SQLiteDatabase db = mySQLiteOpenHelper.getWritableDatabase();
三、增
ContentValues contentValues = new ContentValues();
contentValues.put(自定义的列名常量, 数据);
long newRowId = db.insert(自定义的表名常量, null, contentValues);
四、删
db.delete(自定义的表名常量, WHERE语句,
WHERE语句的参数集合 /* 依次替代语句中的每个“?” */);
五、改
db.update(自定义的表名常量, contentValues, WHERE语句,
WHERE语句的参数集合);
六、查
// 还有其他查询形式,这里列举其一
// 若想省略某些语句,可用null
Cursor cursor = db.query(
自定义的表名常量,
欲查询的列名集合,
WHERE语句,
WHERE语句的参数集合,
GROUP BY语句,
HAVING语句,
ORDER BY语句,
LIMIT语句);
// 如果查不到
if(null == cursor)
{
return;
}
// 从游标中循环获取查询结果
while(cursor.moveToNext())
{
// 先获取某个列在游标中对应的id
int columnIndex = cursor.getColumnIndexOrThrow(自定义的列名常量);
// 再根据id获取其数据。
// 某数据类型可以是int、String等
某数据类型 data = cursor.get某数据类型(columnIndex);
}
// 查完之后关闭游标,以免内存泄漏
cursor.close();
七、原子操作
原子操作可以确保若干条操作语句一起成功或者一起失败。
// 1.开始原子操作
db.beginTransaction();
try {
// 2.若干操作语句
...
// 3.若执行到此处,设置原子操作成功
db.setTransactionSuccessful();
} finally {
// 4.结束原子操作
db.endTransaction();
}