1.首先要创建数据库
自定义类继承自SQLiteOpenHelper
通过这个自定义的类来建库建表
public class MyOpenHelper extends SQLiteOpenHelper {
public MyOpenHelper(@Nullable Context context) {
// 上下文 库名 工厂 版本号
super(context, "qqq", null, 1);
}
@Override//创建表,只执行一次
public void onCreate(SQLiteDatabase db) {
//使用SQL语言创建表
db.execSQL("CREATE TABLE USER(username VARCHAR(20),uid INT PRIMARY KEY AUTOINCREMENT)");
}
@Override//更新版本号,执行多次
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
2.new 数据库
MyOpenHelper helper helper = new MyOpenHelper(this);
SQLiteDatabase database = helper.getWritableDatabase();//获取读写权限
3.操作数据库
//对数据库里的数据进行添加操作
public void addDatas(){
//使用execSQL()的方法
//给?赋值操作
String addsql = "INSERT INTO USER VALUES(?,?)";
String[] strings = new String[]{"张三","0"};
database.execSQL(addsql,strings);
//直接使用SQL语句操作
String addsql2 = "INSERT INTO USER VALUES('张三',19)";
database.execSQL(addsql2);
//使用insert()方法
ContentValues values = new ContentValues();
values.put("username", "张三");
values.put("uid", 0);
//使用insert()方法 表名 不给哪列赋值 数据
database.insert("USER", null, values);
}
//对数据库里的数据进行批量操作
public void addAll(ArrayList<User> users) {
//开启事务
database.beginTransaction();
for (User user: users){
ContentValues values = new ContentValues();
values.put("username", user.getUsername());
values.put("uid", user.getUid());
database.insert("user", null, values);
}
//设置事务成功
database.setTransactionSuccessful();
//结束事务
database.endTransaction();
}
//对数据库里的数据进行删除操作
public void deleteDatas(){
//使用execSQL()方法
String delsql = "DELETE FROM USER WHERE uid = 19";
database.execSQL(delsql);
//使用delete()方法 表名 条件(使用字符串书写) 条件值
database.delete("user", "username = ?", new String[]{"李四"});
}
//对数据库里的数据进行修改操作
public void updateDatas(){
//使用execSQL()方法
String updsql = "update user set username = ? where username = '?'";
database.execSQL(updsql);
ContentValues values1 = new ContentValues();
values1.put("username", "张三");
//使用update()方法 表名 新数据 条件(使用字符串书写) 条件值
database.update("user", values1, "username = ?", new String[]{"李四"});
}
//对数据库里的数据进行查询操作
public void selectDatas(){
//使用rawQuery()方法
String slcsql = "select * from user";
// SQL语句 条件
Cursor cursor = database.rawQuery(slcsql, null);
//使用query()方法
Cursor user = database.query("user",//第一个参数 表名
null,//第二个参数 要查询所有列就赋值为null
null,//第三个参数 条件
null,//第四个参数 条件值
null,//第五个参数 分组
null,//第六个参数 分组的条件
null);//第七个参数 按列名排序
while (cursor.moveToNext()) {
//获取数据内容,通过列名
int uid = cursor.getInt(cursor.getColumnIndex("uid"));
String username = cursor.getString(cursor.getColumnIndex("username"));
}
}