LitePal使用指南
我们项目中只涉及轻量级的数据库操作,因此使用LitePal中封装好的接口可以大大简化操作
建议全程使用LitePal进行开发
配置环境
注意:以下有些步骤是我已经完成的,请务必先将本地工程更新至仓库中的最新版本
在app/build.gradle
中添加对LitePal的引用:
1 | dependencies { |
注意使用最新版本3.2.3
在assets
中创建litepal.xml
:
1 | <?xml version="1.0" encoding="utf-8"?> |
其中dbname
指定数据库名,version
指定数据库版本(增减数据表、增减数据表字段、改变字段类型等操作都必须增加版本号)
在list
中使用mapping
标签关联每个数据表
在AndroidManifest.xml
配置:
1 | <manifest> |
创建数据表
LitePal将数据表和java类一一对应,因此对对象的操作就很容易转化成对数据表的操作
在com.hitsz.eazytime.model
包下新增一个java文件用于定义类:
1 | public class Todo extends LitePalSupport { |
LitePal支持的数据类型一共有8种:int、short、long、float、double、boolean、String、Date
id
字段:无论类中定义与否,数据表里都会存在,且作为自增主键使用,但在类中定义id
及getId
可以方便查询
代码规范:类中的所有成员必须以private定义,取值和修改必须经过get和set函数
注意:新版本LitePal的数据表类应当继承自LitePalSupport
而非DataSupport
注意:修改了类的定义后,请务必增加数据库的版本号,否则对类的更改无法应用至数据库
增查删改
这部分在《第一行代码》和作者博客里有较详细的介绍,这里有重点地讲一下
增
一般new一个新的对象出来,然后save就可以了
1 | Todo todo=new Todo(...); |
查
注意:新版的查询使用LitePal
而非DataSupport
1 | List<Todo> todos = LitePal.select(...).where(...).order(...).limit(...).offset(...).find(Todo.class) |
以上连缀无固定顺序,也可不写其中的某些连缀
注:LitePal本身支持关联表的激进查询,但不推荐使用,合理的写法是在类中实现一个返回关联字段的函数,详细请看作者博客
删
没什么要说的,见作者博客
改
没什么要说的,见作者博客