前言:
前几天小编做项目遇到更新贼不爽的事,我们都知道保存调用save方法并添加一条数据,使用也是极其方便的,可是更新数据让我有点难受,当然更新问题,我们都知道更新数据一般都使用唯一id去更新,可是我们继承的LitePalSupport的getBaseObjId()并不是public的,也就导致了我们无法直接获取id,而我们的bean类继承了LitePalSupport让其最简单的更新方式就是通过update(long id)方法更新。 这让人实在难受,虽然也有其他方式可以做到更新,但是那样是不是嫌烦,作为一个比较“懒”的程序员是不能容忍的。所以小编用了一个小技巧,教你重写save方法,轻松获取id,废话不多说,上代码!
一、集成方式:
官方最新具体文档详见:https://github.com/LitePalFramework/LitePal
简单方式:
(1)
Java:
dependencies {
implementation 'org.litepal.android:java:3.0.0'
}
Kotlin:
dependencies {
implementation 'org.litepal.android:kotlin:3.0.0'
}
(2)配置:
配置litepal.xml放到assets文件夹下;具体配置如下:
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="data" ></dbname>
<version value="1" ></version>
<list>
<mapping class="com.beans.PalBean"></mapping> //这是配置的数据表
</list>
</litepal>
(3)bean类代码
package com.screen.recorder.video.sdhuir.utilsv;
import org.litepal.crud.LitePalSupport;
public class PalBean extends LitePalSupport {
private long id;
private String name;
@Override
public boolean save() {
boolean s = super.save();//1先保存生成id
setId(getBaseObjId());//2设置id
update(getBaseObjId());//3更新数据,这样每次获取它的实例就能保证正确获取id了。
return s;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
3.使用
(1)增加一条数据:
PalBean bean = new PalBean();
bean.setName("小可爱");
bean.save();
(2)更新数据:
PalBean bean = new PalBean();
bean.setName("我是你的小可爱");
bean.update(bean.getId());
(3)查找:
//单个查找
PalBean bean = LitePal.find(PalBean.class,1);
//查找所有
List<PalBean> list = LitePal.findAll(PalBean.class);
文章就写到这里了,如果能帮到你来点个收藏或转发,若想学习更多关于LitePal,欢迎交流学习!