android平台Ormlite框架入门基础学习
刚刚android,迫不及待试着用轻量级数据库sqlite,那当然少不了看看其中的ORM框架。android常用的ORM框架有greendao和ormlite,简单得说区别就是ormlite基于java映射原理,使用简单,效率低;而greendao有自己的一套generator实现对象关联,运行效率很高,但是编程的学习成本也高。
我选择Ormlite入手。
基础配置
先从官网下载ORMLITE框架开源jar包,导入到android工程中。
创建bean类 关键:
类名前加@DatabaseTable(tableName = “表名”)
类内属性加@DatabaseField 可选(id=true)代表主键
注意至少有一个无参构造函数
@DatabaseTable(tableName = "User")
public class User {
@DatabaseField(id=true)
private int id;
@DatabaseField
private String name;
/**必备无参构造函数**/
User(){}
public User(int id,String name){
this.id=id;
this.name=name;
扩展工具
扩展OrmLiteSqliteOpenHelper类来链接数据库操作。
重写oncreate 和onupgrade和平时扩展SQLiteOpenHelper一样
对表的操作要使用TableUtil类内嵌方法。
如 TableUtil.createTable(* * *)
TableUtil.dropTable(* * *)
另外还有SchemaUtil等工具
然后补充DAO对象获取与释放方法(DAO对象用来链接java类与数据库entry操作)
实例:
//获取dao方法
public Dao<User,Integer> getUserDao()throws SQLException{
if(userDao==null)
userDao=getDao(User.class);
return userDao;
}
//释放资源
@Override
public void close() {
userDao=null;
super.close();
}
数据库配置文件(优化访问效率)
新建res/raw文件夹。
新建一个配置文件生成类:
public class DatabaseConfigUtil extends OrmLiteConfigUtil {
private static final Class<?>[] classes = new Class[] {
//列出所有Bean类
User.class
};
public static void main(String[] args) throws SQLException, IOException {
//在指定的raw路径生成文件,事先要建好raw文件夹
writeConfigFile(new File("F:\\AndroidStudioProjects\\Dao1\\app\\src\\main\\res\\raw\\ormlite_config.txt"), classes);
}
}
接着在自定义的openhelper类中构造器中添加上面建好的配置文件ormlite_config
public DatabaseOpenHelper(Context context){
super(context,databaseName,null,1,R.raw.ormlite_config);
}
CRUD操作
crud操作之前首先要获取dao对象:
1 使用在之前写的helper类对象用相应的获取具体DAO的方法
2 使用DaoManager中的createDao方法
关于dao的使用参考官方文档Dao.html
dao对象.create(对象)
dao对象.deletebyid(id)
dao对象.update(对象)
数据库发生变化时刷新对象: dao.refresh(对象)
DAO对象本身也是一个迭代器,可用于遍历对象:
for (Account account : accountDao) {
System.out.println(account.getName());
} //此法必须遍历所有对象,不可以中途return,break等等,否则会导致数据库关联变弱。
查询:
对象=dao.queryforid(id)
对象数组=dao.queryforall()
long值 =dao.queryrawvalue(sql) eg.找最大值
GenericRawResult