SQLiteOpenHelper是一个抽象类,要使用它必须写一个类继承它。SQLiteOpenHelper有两个抽象方法onCreate()和onUpgrade(),咱们要在类里面重写这两个方法来实现建立和更新数据库。java
SQLiteOpenHelper类里还有两个重要实例的方法getReadableDatabase和getWritableDatabase(),这两个方法均可以打开或者建立一个数据库。不一样的是,当数据库不可写入的时候,例如磁盘空间已满的时候,getReadableDatabase()方法以只读的形式打开数据库,而getWritableDatabase()方法会出现异常。数据库
重写SQLiteOpenHelper类的两个构造方法通常使用参数少的那个,它接受四个参数,第一个参数为context上下文,第二个参数是表名,第三个参数容许咱们在查询数据的时候返回一个自定义的Cursor,通常传入null便可。第四个参数是当前数据库的版本号,可用于对数据库进行升级。ide
构建出SQLiteOpenHelper的实例以后,再调用它的getReadableDatabase()或者getWritableDatabase()去建立数据库。blog
eg:继承
建立一个名字为MyDatabase.db的数据库,新建一张User表,表中有id(主键),name,password属性。rem
建立User表的建表语句以下:get
create table User{it
id integer primary key autoincrement,//integr: 整形 primary key:主键,惟一键 autoincrement:自增加io
name text,//text:文本类型,另外real为浮点型,blob二进制类型table
password text)
在代码中执行这条SQL语句,完整以下:
public class MyDatabaseHelper extends SQLiteOpenHelper { public static final String CREATE_USER = "create table uer (" + "id integer primary key autoincrement, " + "name text, " + "password text, " )"; private Context mContext; public MyDatabaseHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); mContext = context; } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_USER); Toast.makeText(mContext, "Create succeeded", Toast.LENGTH_SHORT).show(); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }