LitePal使用指南

LitePal使用指南

我们项目中只涉及轻量级的数据库操作,因此使用LitePal中封装好的接口可以大大简化操作

建议全程使用LitePal进行开发

github地址

配置环境

注意:以下有些步骤是我已经完成的,请务必先将本地工程更新至仓库中的最新版本

app/build.gradle中添加对LitePal的引用:

1
2
3
dependencies {
implementation 'org.litepal.guolindev:core:3.2.3'
}

注意使用最新版本3.2.3

assets中创建litepal.xml

1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="main" />
<version value="1" />
<list>
<mapping class="com.hitsz.eazytime.model.Todo" />
</list>
</litepal>

其中dbname指定数据库名,version指定数据库版本(增减数据表、增减数据表字段、改变字段类型等操作都必须增加版本号)

list中使用mapping标签关联每个数据表

AndroidManifest.xml配置:

1
2
3
4
5
6
7
8
<manifest>
<application
android:name="org.litepal.LitePalApplication"
...
>
...
</application>
</manifest>

创建数据表

LitePal将数据表和java类一一对应,因此对对象的操作就很容易转化成对数据表的操作

com.hitsz.eazytime.model包下新增一个java文件用于定义类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class Todo extends LitePalSupport {
private String title;
private Date startTime;
private Date endTime;
int id;

public Todo(){
//构造函数
}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public Date getStartTime() {
return startTime;
}

public void setStartTime(Date startTime) {
this.startTime = startTime;
}

public Date getEndTime() {
return endTime;
}

public void setEndTime(Date endTime) {
this.endTime = endTime;
}

public int getId() {
return id;
}
}

LitePal支持的数据类型一共有8种:int、short、long、float、double、boolean、String、Date

id字段:无论类中定义与否,数据表里都会存在,且作为自增主键使用,但在类中定义idgetId可以方便查询

代码规范:类中的所有成员必须以private定义,取值和修改必须经过get和set函数

注意:新版本LitePal的数据表类应当继承自LitePalSupport而非DataSupport

注意:修改了类的定义后,请务必增加数据库的版本号,否则对类的更改无法应用至数据库

增查删改

这部分在《第一行代码》和作者博客里有较详细的介绍,这里有重点地讲一下

一般new一个新的对象出来,然后save就可以了

1
2
Todo todo=new Todo(...);
todo.save();

注意:新版的查询使用LitePal而非DataSupport

1
List<Todo> todos = LitePal.select(...).where(...).order(...).limit(...).offset(...).find(Todo.class)

以上连缀无固定顺序,也可不写其中的某些连缀

注:LitePal本身支持关联表的激进查询,但不推荐使用,合理的写法是在类中实现一个返回关联字段的函数,详细请看作者博客

没什么要说的,见作者博客

没什么要说的,见作者博客