本文为本人学习整理后的资料。
自定义SQLite帮助类
//自定义SQLite帮助类
public class MyDatabaseHelper extends SQLiteOpenHelper {
//建库的同时建表
public static final String CREATE_BOOK="create table book("
+"id integer primary key autoincrement, "
+"authon text,"
+"price real,"
+"name text)";
public static final String CREATE_CATEGORY="create table Category ("
+"id integer primary key autoincrement,"
+"category_name text,"
+"category_code integer)";
private Context mContext;
public MyDatabaseHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
mContext=context;
}
//第一次建库时执行onCreate函数,同时创建表,并给出提示
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_BOOK);
db.execSQL(CREATE_CATEGORY);
Toast.makeText(mContext,"Create succeeded",Toast.LENGTH_LONG).show();
}
//当数据库版本不同时,更新数据库执行onUpgrade()函数:先判断库中是否存表“book"和“Category"
//如果存在则删除并执行onCreate()重新建库和表
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exists book");
db.execSQL("drop table if exists Category");
onCreate(db);
}
}
向数据库插入数据方法
button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SQLiteDatabase db=myDatabaseHelper.getWritableDatabase();//获取SQLiteDatabase 对象
ContentValues values=new ContentValues();//创建ContentValues对象
//向ContentValues对象中填加数据
values.put("name","The Da Vinci Code");
values.put("authon","Dan Brown");
values.put("price",16.96);
//向数据库中插入数据
db.insert("book",null,values);
values.clear();
}
});
更新数据库方法,此方法只是演示更新的方法,并无实际意义,实际开发这种方式更新数据库是不可以的。
button5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SQLiteDatabase db=myDatabaseHelper.getWritableDatabase();
ContentValues values=new ContentValues();
values.put("price",10.99);
db.update("book",values,"name=?",new String[]{"The Da Vinci Code"});
}
});
db.update第一个参数是表名,第二个参数要更新的数据,第三个参数相当于SQL语句中的where语句,表示去更新所有name等于?的行,?是一个占位符,可通过第四个参数提供的一人字符串数组为第三个参数中的每个占位符指定相应的内容。