在Android开发中,sqlite至关重要,增删查改不多说,难点在于,1,并发,多个线程同时操作数据库。2,版本升级时,如果数据库表中新加了个字段,如何在不删除表的情况下顺利过渡,从而不丢失数据。
数据库操作建议用ORM框架,简单高效。这里推荐xUtils,里面包含DBUtils。github地址:https://github.com/wyouflf/xUtils。关于DBUtils,它是这样介绍的:
android中的orm框架,一行代码就可以进行增删改查;
支持事务,默认关闭;
可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约束,CHECK约束等(需要混淆的时候请注解表名和列名);
支持绑定外键,保存实体时外键关联实体自动保存或更新;
自动加载外键关联实体,支持延时加载;
支持链式表达查询,更直观的查询语义,参考下面的介绍或sample中的例子。
用单例方式获取数据库实例。
static DbUtils db = null;
public static DbUtils getDb(Context context) {
if (context == null) {
context = DoctorApplication.getInstance();
}
if (db == null) {
db = DbUtils.create(context, "xUtils.db");
});
db.configAllowTransaction(true);
return db;
}
db.configAllowTransaction(true);
return db;
}
db.configAllowTransaction(true); 标示开启事务,这样多个线程操作数据库时就不会出现问题了。
数据库升级解决方案。首先创建一个实体类,对应数据库中的表。
@Table(name = "User")
public class User {
private int id; //