介绍
LitePal是一款开源的Android数据库框架,采用了对象关系映射(ORM)的模式,将平时开发时最常用的一些数据库功能进行了封装,使得开发者不用编写一行SQL语句就可以完成各种建表、増删改查的操作。
LitePal开源项目的GitHub
说明
据LitePal数据类型支持,可进行对象关系映射的数据类型共8种,int、short、long、float、double、boolean、String和Date。只要声明成这8种数据类型的字段都会被自动映射到数据库表中,不需任何额外配置。
经过测试,LitePal还可以存储byte[]、List、List。
使用示例
1.添加依赖
Java版本:
dependencies {
implementation 'org.litepal.android:kotlin:3.0.0'
}
Kotlin版本:
dependencies {
implementation 'org.litepal.android:kotlin:3.0.0'
}
2.混淆
# Litepal
-keep class org.litepal.** {
*;}
-keep class * extends org.litepal.crud.DataSupport {
*;}
-keep class * extends org.litepal.crud.LitePalSupport {
*;}
3.创建表
在LitePal中,一个数据库的每一张表对应着一个类,这个类只需要继承自LitePalSupport类中就会有save() 和 delete()两个方法,分别代表着保存(更新)和删除。
public class UserInfo extends LitePalSupport {
@SerializedName(value = "id")
private long userId;
private String username;
@Column(defaultValue = "0123456789")
private String phone;
@Column(ignore = true)
private String city;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
}
3.1 所有的column注解
用@column在实体类中为属性注解可以在创建数据库时为表中的字段添加字段的约束,所以这是一个非常重要的知识点,认识所有的column注解很有必要。
public @interface Column {
/**
* 为列设置可为空的约束
*/
boolean nullable() default true