首先在build.gradle添加依赖
implementation 'org.litepal.android:core:2.0.0'
而且要在app/src/main目录下新建一个assest目录并新建一个litepal.xml文件,在里面加入以下东西
<?xml version="1.0" encoding="utf-8"?>
<dbname value = "cool_weather"/>//数据库的名字
<version value = "1"/>//数据库版本号,升级就在这里改版本号就行了
<mapping class="com.coolweather.android.db.Province"/>//在这里添加model类的包名
</litepal>
改好后然后在AndroidManifest.xml文件里改
<application
android:name="org.litepal.LitePalApplication"//改这一行
Litepal的基本配置工作就完成了
想要新建一个表就要新建一个model类,在里面写一些变量个get,set方法,最后在litepal.xml里添加一下包名就可以了
要进行 增删改查 操作的话,model类要继承 LitePalSupport 类
添加数据:new一下model类,然后调用set...方法添加数据,最后调用save()方法保存就行了
例如:
Province p = new Province();
p.setName("张三");
p.setAge("18");
p.setAddress("北京");
p.save();
更新数据:在原来添加的数据的基础上继续添加,它会覆盖其中的项,如果想要加入限制的话,就要调用updateAll()设置相关约束
例如:
Province p = new Province();
p.setAge("20");
p.updateAll("name = ? and address = ?","张三","北京");
这里直接就找到名字是张三,地址是北京的行,把他的age改成20;
想要把一个字段更新成默认值(默认值就是当你new了一下model类,其里面的变量就会有默认值,int是0,boolean是false,String是null等等)
Province p = new Province();
p.setToDefault("age");//把age列更新成默认值0
p.updateAll();//因为这没有添加约束,所以是一整列更新成默认值0
删除数据:第一种简单粗暴,直接对已存储对象调用.delete();把整个表删除,
第二种调用LitePal.deleteAll(需要删除的表xx.class,后面是约束);
例如:LitePal.deleteAll(Province.class,"name = ?","张三");
查询数据:
查询整个表:List <Province> provinces = LitePal.findAll(Province.class);//返回的是Province的List集合
查询表中第一条数据:Province firstP = LitePal.findFirst(Province.class);
查询表中最后一条数据:Province lastP = LitePal.findLast(Province.class);
select()查询哪几列数据:List <Province> provinces = LitePal.select("name","age").find(Province.class);
whre()添加约束,查询age>15的数据:List <Province> provinces = LitePal.where("age > 15 ?","15").find(Province.class);
order()用于指定结果的排序方式:List <Province> provinces = LitePal.order("age desc).find(Province.class);//desc降序,asc或者不写表示升序
limit()查询结果的数量:List <Province> provinces = LitePal.limit(3).find(Province.class);//查询前三条数据
查询第2,3,4条:List <Province> provinces = LitePal.limit(3).offset(1).find(Province.class);
最后也可以对这5个方法结合来查询:
List <Province> provinces = LitePal.select("name","address")
.where("age > ?",15)
.order("age asc")
.limit(10)
.offset(5)
.find(Province.class);
这里的意思是查找name和address这两列,age大于15的,而且按照age升序来排序的,查询10个,从第6个开始查询。
网友评论