您的位置:首页 > 移动开发 > Android开发

android平台Ormlite框架简易入门笔记

2016-01-24 22:29 645 查看

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

复杂操作和性能优化需要深入研究ormlite框架的体系知识 ,可以阅读官方使用教程http://ormlite.com/docs/ormlite.pdf

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: