LitePal的使用
Posted Dr_abandon新秀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LitePal的使用相关的知识,希望对你有一定的参考价值。
一.什么是LitePal
LitePal是一款开源的android数据库框架,采用对象关系映射(ORM)模式,将常用的数据库功能进行封装,可以不用写一行SQL语句就可以完成创建表、增删改查的操作。
二.LitePal的使用步骤
1.添加依赖:
implementation 'org.litepal.guolindev:core:3.2.3'
2.创建一个类Student继承LitePalSupport,可能你猜到了,这个就是相当于我们数据库中的一张表,bean的属性就是代表表的字段。然后在main下方出创建assets目录,新建litepal.xml文件,在文件中如下写:
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="demo"></dbname>
<!--通过这个加一以及实体类属性修改进行版本升级-->
<version value="1"></version>
<list>
<mapping class="com.example.linkbasic.litepaltest.Student"/>
</list>
</litepal>
区中的含义表示的是:的value就是数据库的名称,用于设定数据库的版本号,用于设定所有的映射模型,也就是我们创建的bean的路径,其实也就是我们数据库中的一个表。
3.LitePal的初始化:
在MyApplication的onCreate方法中初始化LitePal:
LitePal.initialize(this);
不要忘记在在清淡文件的Application上加上android:name=“.MyApplication”
通过以上三个步骤我们就将Litepal集成到我们的项目中了,我们就能对我们的数据库进行增删改查和进行版本升级。
三.LitePal的增删改查
增
1.增加一条数据
直接调用student.save()方法即可插入
//单个插入
Student student = new Student();
student.setAge(20);
student.setName("张三");
if (student.save())
Toast.makeText(this, "插入成功", Toast.LENGTH_SHORT).show();
else
Toast.makeText(this, "插入失败", Toast.LENGTH_SHORT).show();
2.批量插入数据
批量插入数据使用LitePal.saveAll(studentList),将一个集合的数据插入到表中。
//批量插入
for (int i = 0; i < 10; i++)
Student student1 = new Student();
student1.setName("张三" + i);
student1.setAge(20 + i);
studentList.add(student1);
LitePal.saveAll(studentList);
删
1.根据id进行删除
//方式一(根据id删除)
LitePal.delete(Student.class, 2);
2.根据条件进行删除
//方式二(根据条件删除)
LitePal.deleteAll(Student.class, "name=?", "张三");
3.删除整个表数据
//方式三(删除表所有数据)
LitePal.deleteAll(Student.class);
4.直接调用对象的delete方法删除
Student deleteStudent=new Student();
if(deleteStudent.isSaved())//只有保存到数据库的数据调用delete方法才有效
deleteStudent.delete();
改
1.根据id进行更改
//方式一(根据id更新)
ContentValues values1 = new ContentValues();
values1.put("name", "小一");
LitePal.update(Student.class, values1, 1);
或者
//方式三(根据id更新)
Student updateStudent = new Student();
updateStudent.setName("王五");
updateStudent.update(3);
2.根据条件进行更新
//方式二(根据条件更新)
ContentValues values2 = new ContentValues();
values2.put("name", "李四");
LitePal.updateAll(Student.class, values2, "age>? and name=?", "25", "张三7");
或者
//方式四(根据条件更新)
Student updateStudent2 = new Student();
updateStudent2.setName("巴拉巴拉");
updateStudent2.updateAll("age>?", "27");
boolean 类型如何修改成false
Student bean = new Student();
bean.setToDefault("修改的字段");
bean.updateAll();
查
1.查询单条数据
//方式一(查询单个数据)
Student student = LitePal.find(Student.class, 1);
Student firstNews = LitePal.findFirst(Student.class);//第一条数据
Student lastNews = LitePal.findLast(Student.class);//最后一条数据
2.查询多条数据和所有数据
//方式二(查询多个和所以数据)
List<Student> studentList1 = LitePal.findAll(Student.class, 1, 3, 5, 7);
List<Student> allStudent = LitePal.findAll(Student.class);
3.根据条件查询数据
//方式三(条件查找数据)
List<Student> studentList2 = LitePal.where("age > ?", "23").find(Student.class);
List<Student> studentList3 = LitePal.select("name").where("age > ?", "23").find(Student.class);//要查询字段
List<Student> studentList4 = LitePal.select("name")
.where("age > ?", "24")
.order("age desc").find(Student.class);//年龄倒叙,asc表示正序排序
以上就是我们数据库中经常用到的增删改查的方法。
四.LitePal数据库的升级
我们的数据库在后续的开发中可能需要增加新的表或者新的字段属性啊,所以我们需要对数据库进行升级,LitePal数据库的升级也很方便。
1.增加新的表,就是新增继承DataSupport的类,并在assets目录下的litepal.xml文件的中进行添加
2.增加字段,就直接在原有类的基础上新加属性就可以了
3.一定要记得将assets目录下的litepal.xml文件的进行升级+1
4.配置完了,我们也需要操作一下数据库才能生成新的表或者新的字段:
Connector.getDatabase();
可以放在操作数据库之前即可。
通过以上四步就可以实现我们数据库的升级。是不是很简单。
以上是关于LitePal的使用的主要内容,如果未能解决你的问题,请参考以下文章
Android:日常学习笔记(10)———使用LitePal操作数据库