1、integer 代表整型,real表示浮点型,text表示文本类型 blob表示二进制类型
2、以下为简单的创表格式:
"create table book(" +
"id integer primary key autoincrement," +
"name text," +
"num integer," +
"price real" +
")"
3、最开始的时候继承SQLiteOpenHelper类,实现构造方法、onCreate/onUpgrade
4、构造方法中实例化context,这样做的好处比如说我们在onCreate创表结束后用Toast提示信息框,而这时候的Toast的第一个参数context就可以用这个实例。
5、初始化的时候比如要插入大量的数据,因为这样会产生大量的事务次数,但是一旦出现什么意外情况的话导致遗漏或者插入失败,那样的话对维护或者寻找缺失都是很大的麻烦。所以初始化的时候可以把整体当成一个事务。
db.beginTransaction(); //开启事务
try{
//初始化
db.setTransactionSuccessful();//成功
}catch(Exception e){
e.printStackTrace();
}finally{
db.endTransaction(); //结束事务
}
6.onUpgrade的最佳写法
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
switch (oldVersion){
case 1:
//如果是版本号1的话如何变化
case 2:
//如果是版本号2的话如何变化
default:
}
}
注意:每个case都没有break,这样做的原因是不用考虑之前每个版本的数据库,而是考虑每次升级后上一个版本的改动即可。比如目前version=2,那么case1只需要修改如何变化到2。而version=3的时候 那么case1 case2都会执行,也就是说我们只需要考虑case2如何升级成case3,而不用在意case1升级case3的问题;