android 系列学习之SQLiteDatabase
SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。SQLite 源代码不受版权限制。
下面简单的简述sqlite的创建以及增删查改。
创建: 创建sqlite数据库,首先的创建一个 SQLiteOpenHeper 的之类并实现相应的方法。
//SQLiteOpenHelper 的子类 “usc”为数据库名
OpenHelper openHelper = new OpenHelper(this, "usc");
//获取数据库的链接对象
readableDatabase = openHelper.getReadableDatabase();
//创建数据库表的sql
String sql = "create table " + table + " (id int,name varchar(10))";
if(readableDatabase == null){
//发送数据库的执行语句,创建表
readableDatabase.execSQL(sql);
}
插入数据:
//将需要插入数据库的数据封装在contentValues中
ContentValues contentValues = new ContentValues();
//put的数据的键需要与数据库表的字段保持一致,不然会抛异常的
contentValues.put("id", 1);
contentValues.put("name", "gaosi");
//返回的是下一行的行数(第一行空的行数)
long insert = readableDatabase.insert(table, null, contentValues);
//使用sql语句也是可行的
String sql = "INSERT INTO " + table + " VALUES ( "+2+" , 'USC');";
readableDatabase.execSQL(sql);
查询: (使用execSQL查询可就不太好了,返回类型void)
String[] strings = {"id", "name"};
//查询获取到的结果集
Cursor cursor = readableDatabase.query(table,//表名
strings, //返回的字段
"id=1", //查询条件
null, //查询条件若带有问号,这里既是问号所包括数据数组,没有即为null
null, //分组的字段
null, //having
null //排序方式
);
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex("name"));
Log.e("name", name);
}
修改数据:
ContentValues contentValues = new ContentValues();
//将需要修改的数据先封装到contentValues当中
contentValues.put("name", "gaosi");
//表中需要修改数据的字段数据
String[]strings = {"lilin"};
readableDatabase.update(table, //需要修改的表名
contentValues,//需要提交修改的数据
"name=?",//修改数据的条件,问号即为待定的值
strings);//修改数据的条件问号所代表的值
使用sql修改
String sql = "UPDATE "+table+" SET name = 'usc' where id =2;";
readableDatabase.execSQL(sql);
删除:
String[] strings = {"gaosi"};
readableDatabase.delete(table, //需要删除数据的表名
"name=?",//删除的条件,问号为待定的值
strings);//删除数据的条件当中,问号所取值数据
//使用sql
String sql = "delete from "+table+" where id = 2;";
readableDatabase.execSQL(sql);