对于android环境下的sqlite方式创建方式,android提供的继承SqliteOpenHelper创建
一, 通过继承SqliteOpenHelper实现数据库的创建.代码如下:
public class DBHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 10000;
private static final String DATABASE_NAME = "demo.db";
private static final String CREATE_PERSON_TABLE = "CREATE TABLE person(name TEXT, age TEXT)";
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_PERSON_TABLE);
initPerson(db);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
@Override
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// super.onDowngrade(db, oldVersion, newVersion);
}
private void initPerson(SQLiteDatabase db) {
String insertSql = "insert into person values(?,?)";
for (int i = 0; i < 10; i++) {
db.execSQL(insertSql, new Object[] { "Tom" + i, i });
}
}
}
1,创建步骤:
(1),首先继承SqliteOpenHelper
(2),添加构造函数和复写onCreate(),onUpGrade(),onDownGrade()方法
(3),在创建的时候一定要指定数据库的名称和版本号. 数据库的名称的是指定数据的标识, 版本号为了以后app迭代升级的时候数据库对应的升级或者降级操作. 这种方式下创建的数据库位置都是默认: /data/data/应用包名/database/数据库文件
2,重要的方法的含义
(1)public void onCreate(SQLiteDatabase db)
当第一次初始化SqliteOpenHelper的子类的时候,或者数据库被删除了的时候会调用.在这里我们可以做一些初始化表结构和表数据的操作
(2)public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
当我们迭代升级的app的数据库版本号增加的时,且我们app程序调用了getReadableDataBase()或者getWriteableDatabase(),在这些方法的内部会判断当前版本号和数据库原来的版本号.如果不同,在判断版本号的大小,如果旧版本号大于新版本号,就调用onUpgrade(),否则,将调用onDownGrade()
(3)public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion)
如上所说当降级的时候该方法会调用. 默认的处理方式是抛出了一个RuntimeException. throw new SQLiteException(“Can’t downgrade database from version ” +
oldVersion + ” to ” + newVersion); 所以,当我们有降级处理的逻辑时,需要把该方法复写且去掉语句super.onDowngrade(db, oldVersion, newVersion);
经过以上步骤一个android的sqlite数据库已创建成功