学习SQLiteDatabase之前我们需要了解的是:
- SQLiteDatabase其实是可以直接在Activity中代码创建的
- db文件其实就是一个文件(以单个文件存在),当找到db文件名路径的时候,可以用file的delete方法删除数据库
- Android的SQLiteDatabase最大可存储 2TB的数据
- db文件默认存储路径为 /data/data/your.app.package/databases/your-db-name
1.sqlite的sq语句操作
这里对sq语句只做简单的操作
1.1 创建表
//查询数据库文件user.db,若文件不存在会自动创建
SQLiteDatabase db = openOrCreateDatabase("user.db", MODE_PRIVATE, null);
String createTable = "CREATE TABLE IF NOT EXISTS user(_id integer NOT NULL PRIMARY KEY AUTOINCREMENT,\n" +
" name text,\n" +
" sex text,\n" +
" age integer);";
//创建表
db.execSQL(createTable);
以上代码直接在MainActivity中进行就可以。
1.2 插入单条数据
//插入数据
String sql1 = "INSERT INTO user(name,sex,age) VALUES ('张三','男',18);";
db.execSQL(sql1);
1.3 查询表
//表查询
String sql3 = "SELECT * FROM user;";
Cursor cursor = db.rawQuery(sql3, null);
if (cursor != null) {
while (cursor.moveToNext()) {
int _id=cursor.getInt(cursor.getColumnIndex("_id"));
String name=cursor.getString(cursor.getColumnIndex("name"));
String sex=cursor.getString(cursor.getColumnIndex("sex"));
int age=cursor.getInt(cursor.getColumnIndex("age"));
LogUtil.e(SqliteActivity.class, "====_id=" + _id+" name="+name+" sex="+sex+" age="+age);
}
cursor.close();
}
需要注意的是,每次查询完后都需要,用来减少资源浪费
cursor.close();
在app退出程序的时候,要关闭数据库
db.close();
2.sqlite的java语句操作
2.1 创建表
创建语句仍是用sq语句操作
//查询数据库文件user.db,若文件不存在会自动创建
SQLiteDatabase db = openOrCreateDatabase("user.db", MODE_PRIVATE, null);
String createTable = "CREATE TABLE IF NOT EXISTS user(_id integer NOT NULL PRIMARY KEY AUTOINCREMENT,\n" +
" name text,\n" +
" sex text,\n" +
" age integer);";
//创建表
db.execSQL(createTable);
2.2 插入数据
//插入
ContentValues values=new ContentValues();
values.put("name","李四");
values.put("sex","男");
values.put("age","28");
long rowId=db.insert("user",null,values);
继续插入数据的时候,可以新建一个ContentValues,也可以将共用之前用的ContentValues,但是要clear,如下:
values.clear();
values.put("name","李平");
values.put("sex","女");
values.put("age","26");
db.insert("user",null,values);
2.3 更新数据
//更新
values.clear();
values.put("sex","男");
//将 _id大于1的人的性别改成男
db.update("user",values,"_id>?",new String[]{"1"});
2.4 删除数据
//删除所有名字中带平的人
db.delete("user","name like ?",new String[]{"%平%"});
2.5 查询数据
Cursor cursor=db.query("user",null,"_id>?",new String[]{"0"},null,null,"name");
if (cursor != null) {
//查询所有字段名
String ColumnNames[]=cursor.getColumnNames();
while (cursor.moveToNext()){
for(String columnName:ColumnNames){
LogUtil.e(SqliteActivity.class, "====value="+cursor.getString(cursor.getColumnIndex(columnName)));
}
}
cursor.close();
}
注意上面查询后要关闭cursor
最后在app退出程序的时候,要关闭数据库
db.close();
ok,今天关于Android数据库的使用就降到这里吧,谢谢!