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

Android数据库框架-Archiver(LiteOrm)的使用

2016-02-25 17:48 267 查看
Android开发中,大家开发不同项目,不同的项目就不有不同需求。但是不管是什么项目都会涉及到数据存储。比如SharePreferences,SQLite,File等方式。但是我最近开发的项目是一个有IM的项目。所以需要用到SQLite,原因是这其中的数据并不是所有数据都是在后台拉取的。也有需要自己去创建表,和填充数据的功能。下面具体讲讲我在项目中使用的数据库和所遇到的数据库问题。

LiteOrm: LiteOrm是一个速度快、小巧却强大的android ORM框架类库,LiteOrm让你一行代码实现数据库的增删改查操作,以及实体关系的持久化和自动映射。

轻量,专注,性能优先,线程无关,专注数据及其关系(关系是重点)存储和读取。

不需要工具辅助,实体不需要无参构造,不需要繁多注解,约定大约配置,一切多余的,都不需要。
使用极致简约:db.save(u); db.delete(u); db.deleteAll(U.class);

开源项目地址:https://github.com/litesuits/android-lite-orm

作者个人主页:http://litesuits.com/

我为什么选择用LiteOrm的原因:

因为我开发的项目是一个IM的项目,当然要允许账号切换当账号切换之后上一个用户对应的数据和下一个用户对应的数据怎么区分?这是一个细节上的问题。所以我采用的QQ的做法,一个用户对应一个数据库。有些库写的也不错,可是考虑的不周全,一个用户对应一个数据库是最好的,但是有些库没有考虑进去,但是LiteOrm可以自定义数据库名字已经目录。

在当我使用其他的库的时候,报错了,尼玛我研究看瞎都没有看出到底是什么错,没有一个准确的提示告诉我到底是什么地方错误。比如我其中有一个字段是from,这个是数据库关键字,总是创建不成功,但是那个库又报一些看不懂错,根本没有说倒是是哪错了。但是在我使用LiteOrm的时候哪里错了会明确的告诉你。

因为LiteOrm体积小,专一,一个库只做一件事,是什么库就做什么事情,有些库什么功能都有,又是HTTP请求,又是下载图片,但是我只需要用到其中一个模块而已。

解释一下创建数据库Cascade 和 Single 两种模式的的区别:

LiteOrm是基类,是基础。有两个孩子实现:Cascade 和 Single。

如果使用Single,效率最高,只保存当前Model,简单的首选。

如果使用Cascade实例,将会无限级联操作(不会死循环),将所有与这个Model相关的实体、关系都保存下来。 重点介绍下Cascade,举个例子,一个学校有10个学院(一对多),一个学院10个专业,一个专业10个班级,一个班级10个老师,一个老师10个学生(多对多关系)。只要调用cascade.save( school ); 那么这个学校,以及10 0000个学生 ,和他们的关系,都保存下来了。 删除也一样,都删了

2、如何创建表:都说了ORM嘛,所以不需要像android原生的代码那样去写SQL语句去创建。只需要如下创建实体类
问题来了:现在实体类创建了,那什么时候创建表,如何创建表,在哪里写创建表的代码 ?

其实不需要去刻意的去写创建表的代码,当我们把 Conversation 对象填充数据后 使用 liteOrm.save(Conversation );即可,会自动创建Conversation

下面是我自己根据我自己的需求封装的一个帮助类
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: