步骤:
1. 创建类集成SQLiteOpenHelper
注: 1) 构造函数中的CursorFactory通常传入null
2) 第一次创建数据库时调用onCreate方法, 通常在这里创建表
db.execSQL("create table tablename(id int, name varchar(20))");
3) 当version改变时调用onUpdate方法
2. 通过SQLiteOpenHelper.getReadableDatabase()方法或者SQLiteOpenHelper.getWritableDatabase()方法获取SQLiteDatabase对象
SQLiteOpenHelper dbHelper = new MySQLiteHelper(context, "table name", null, version); SQLiteDatabase db = dbHelper.getReadableDatabase();
注: getReadableDatabase和getWritableDatabase的区别在于,当数据库磁盘满时前者会以只读方式打开数据库,后者会报错.
3.通过SQLiteDatabase进行数据表中数据的增删改查操作
注: 1)插入操作(使用ContentValues)
ContentValues values = new ContentValues(); // 向该对象中插入键值对, 键位列名,置为插入相应列的值,值必须与列的数据类型匹配 values.put("id", 1); values.put("name", "myname"); db.insert("table_name", null, values);
2)更新操作
ContentValues values = new ContentValues(); // 要更新的列及新的值 values.put("name", "new_name"); // 第三个参数是where子句, 第四个参数是where子句的值 db.update("table_name", values, "id=?", new String[]{"1"});
3)查询操作
// 参数一: 表名, 参数二: 要筛选的列名, 参数三: select语句, 参数四: select语句值, 参数五: groupby语句, 参数六: having语句, 参数七: orderby语句 Cursor cursor = db.query("table_name", new String[]{"column_one", "column_two"}, "column_one=?", new String[]{"1"}, null,null,null); while (cursor.moveToNext()) { int id = cursor.getInt(cursor.getColumnIndex("id")); String name = cursor.getString(cursor.getColumnIndex("name")); }
4)删除操作
// 参数一:表名;参数二:where语句;参数三:where语句值 db.delete("table_name", "id<?", new String[]{"3"});
注: 当然,如果项目比较大,最好将数据库操作封装起来(model类)