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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值