SQLite数据库是Android用的轻量级的数据库,我这里想做一个系列的数据库操作的介绍。
本人也不是很会,主要还是总结工作中遇到的问题。
首先:创建数据库,我们要继承SQLiteOpenHelper类,然后实现他的构造方法。
public class DBOpenHelper extends SQLiteOpenHelper {
private static final String TAG = "DBOpenHelper";
private static DBOpenHelper instance;
private DBOpenHelper(Context context){
//参数一:context对象;参数二:数据库的名字;参数三:游标工厂(我也不知道是什么鬼,填null就行)
//参数四:数据库的版本号(只能增加,不能减少)
super(context, "yswapp.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
//onCreate方法里面创建表。
}
//数据库跟新的时候调用,然后每次想重新创建数据库的时候,一定要增加数据库的版本
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if(oldVersion == 1 && newVersion == 2) {
Log.i(TAG, "update database Item");
db.execSQL("alter table Item add play_num varchar(11);");
// db.execSQL("alter table SoundNoval add chapter_num varchar(11);");
}
}
}
我这里为了方便使用,有一个单例方法:
public static DBOpenHelper getInstance(Context context){
if(instance==null)
{
//此处无需考虑线程安全问题
instance=new DBOpenHelper(context);
}
return instance;
}
在你的其他类里面,创建数据库:
DBOpenHelper dbOpenHelper = DBOpenHelper.getInstance(context);
SQLiteDatabase db=dbOpenHelper.getWritableDatabase();//创建一个可读写的数据库
至此,数据库就创建完成了。创建数据库的同时还要创建表,上面也说到了再onCreate方法里面。
创建表很简单,两行代码,一行sql语句,一行执行sql语句就可以了。
创建表的sql语句:create table XXX(id varchar(32) primary key, customer_id varchar(32));
XXX代表的是表名,自己随便命名。括号里面是表的内容。primary key代表主键,
一个表只有一个主键。主键的名字是id,类型是varchar,长度是32位。
例如:`String sqlCustomInfo = "create table XXX(id varchar(32) primary key,
customer_id varchar(32))";
db.execSQL(sqlCustomInfo);`
上面两行代码就创建一个表有两列内容:第一列是id(主键),第二列是customer_id
至此,创建数据库,创建表也就完成了。第一步也就完成了,后面会陆续介绍操作SQL的内容