最近项目不忙,打算自己封装android 数据库的操作。以前都是把别人的代码copy下来就用,今天意识到自己不亲手写一遍,东西始终是别人的。
如果想要在android中使用数据库,使用SQLite是一个非常好的选择,因为它是android内置的数据库,提供了很多支持。我们先手动创建一张表
继承SQLiteOpenHelper
public class SQLHelper extends SQLiteOpenHelper { public SQLHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) {String sql = "CREATE TABLE " + TABLE_NAME + " (" + BOOK_ID+ " INTEGER primary key autoincrement, " + BOOK_NAME + " text, " + BOOK_AUTHOR + " text);" ;db.execSQL(sql);
} @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {} }
然后我们再在Activity这样使用:
SQLHelper helper = new SQLHelper(this, "Student.db", null, 1);
版本号(不能为负数)是为了方便以后升级数据库,由于是初版,版本号就是1。
SQLiteOpenHelper是一个抽象的数据库操作类,首先执行的是OnCreate,这里我们可以执行创建表等动作,但该方法并没有真正创建数据库,创建数据库是在以下的情况:
SQLiteDatabase database = helper.getWritableDatabase();
调用getWritableDatabase()或者getReadableDatabase()时,就会真正创建数据库。
唉。。。,一个小问题纠结了一个多小时。特记录下来,以免忘记。