Android 数据库创建和增删改查
创建数据库帮助类
继承SQLiteOpenHelper
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context) {
//上下文、数据库名、游标工厂(null为使用系统默认)、数据库版本号(不小于1)
super(context, "hello.db", null, 1);
}
//在第一次创建数据库时被调用
@Override
public void onCreate(SQLiteDatabase db) {
//这里可以写创建表代码
db.execSQL("create table seesee (" +
"_id integer primary key autoincrement," +
"name varchar(20)," +
"age integer)");
}
//数据库升级,当新版本号大于旧版本时调用
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//可以删除表和调用onCreate()重新创建表
if(oldVersion < newVersion){
db.execSQL("DROP TABLE IF EXISTS seesee");
onCreate(db);
}
}
}
增删改查
public class DBDao {
private DBHelper dbHelper;
public DBDao(Context context){
dbHelper = new DBHelper(context);
}
//插入一条数据
public void insert(){
SQLiteDatabase db = dbHelper.getWritableDatabase();
if(db.isOpen()){
db.execSQL("insert into seesee (name,age) values( ?, ? )" , new Object[]{ "see" , 15});
//或者用使用系统封装好的api进行插入如下
//ContentValues values = new ContentValues();
//values.put("name", "see");
//values.put("age", 16);
//db.insert("seesee", null, values);
db.close(); //用完关闭
}
}
//删除一条数据
public void delete(){
SQLiteDatabase db = dbHelper.getWritableDatabase();
if(db.isOpen()){
db.execSQL("delete from seesee where name=?" , new String[]{ "see" });
//db.delete("seesee", "name=?", new String[]{ "see" });
db.close();
}
}
//更新一条数据
public void update(){
SQLiteDatabase db = dbHelper.getWritableDatabase();
if(db.isOpen()){
db.execSQL("update seesee set (name) values ( ? ) where name=?" , new String[]{"see" ,"jack"});
//ContentValues values = new ContentValues();
//values.put("name", "jack");
//db.update("seesee", values, "name=?", new String[]{"see"});
db.close();
}
}
//查询数据
public int select(){
SQLiteDatabase db = dbHelper.getWritableDatabase();
int id = -1;
if(db.isOpen()){
Cursor cursor = db.rawQuery("select _id from seesee where name=?", new String[]{ "see" });
//cursor = db.query("seesee", null, " name=?", new String[]{"see"}, null, null, null);
if(cursor.moveToFirst()){
id = cursor.getInt(0);
}
cursor.close();
db.close();
}
return id;
}
}
事务
//1.打开数据库事务
db.beginTransaction();
//2.执行语句
db.execSQL("delete from see where name=?",new String[]{"see"});
//3.设置事务状态(true),
db.setTransactionSuccessful();
//4.事务状态为true提交数据,false使回滚操作
db.endTransaction();