Android 数据持久化之LitePal
2019-08-13 14:51
97 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u014714188/article/details/99434277
Android 数据持久化之LitePal
LitePal是一个开源数据库,GitHub路径为:https://github.com/LitePalFramework/LitePal,上面有详细信息。它采用了ORM的模式,把我们一些常用的数据库操作进行了封装,使得不用编写一行SQL语句就能进行相关的增删改查。
一、在AS项目中,集成LitePal使用环境,创建数据库
1.在build.gradle文件中:
dependencies { implementation 'org.litepal.android:java:3.0.0' }
2.在app/src/main路径下新建assets目录,并在该目录下新建 litepal.xml文件
<?xml version="1.0" encoding="utf-8"?> <litepal> <!--数据库名--> <dbname value="testlitepal"></dbname> <!--数据库版本--> <version value="1"></version> <!--指定所有的映射模型--> <list> <!--此处指定人物类模型,Person为最简单的javabean--> <mapping class="com.xie.com.testfragment.domain.Person"></mapping> </list> </litepal>
Person类的JavaBean如下:
public class Person { private String name; private int age; private String sex; private float point; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public float getPoint() { return point; } public void setPoint(float point) { this.point = point; } }
3.在AndroidManifest.xml中配置LitePalApplication
<manifest> <application android:name="org.litepal.LitePalApplication" ... > ... </application> </manifest>
4.执行操作,testlitepal数据库就能被成功执行,且此时里面会包含一张person的表
Connector.getDatabase();
二、升级数据库
LitePal升级数据库很简单,只需修改版本号即可。如现在我想在Person表中增加一列地址address并且新增一张新表Student.
1.直接在Person实体类中添加address属性
private String address; public String getAddress() { return address; } public void setAddress(String address) { this.address = address; }
2.新建实体类Student
public class Student { private String name; private int age; private String sex; private float point; private String address; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public float getPoint() { return point; } public void setPoint(float point) { this.point = point; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
3.最后在LitePal.xml中添加mapping对象映射,重新调用Connector.getDatabase();即可
<mapping class="com.xie.com.testfragment.domain.Student"></mapping>
三、向表中添加数据
1.修改Student,使之继承LitePalSupport
public class Student extends LitePalSupport { ... }
2.数据添加操作,只需要新建Student对象,给对象赋值完成后,直接调用save方法即可
//LitePal数据添加 Student student = new Student(); student.setName("张三"); student.setSex("男"); student.setAge(15); student.setPoint(89); student.setAddress("重庆"); student.save();
四、更新表中的数据
1.执行更新操作的方法是updateAll,此方法可带条件,不带则是全部更新。
Student student = new Student(); student.setAge(18); student.setAddress("北京"); student.updateAll("name=?","张三");
2.注意:在使用updateAll方法时,如果我们要把一个字段更新成默认值时,是不能用上面的set方法来设置的。int类型的默认值是0,boolean类型的默认值false,String类型的默认值是null。如当我们要把年龄age字段设为默认值,直接student.setAge(0)是无效的。要想把字段值设为默认值,需要用setToDefault方法。下面执行的语句代表把姓名为张三的年龄age字段的值设为默认值0.且地址address设置为北京。
Student student = new Student(); student.setToDefault("age"); student.setAddress("北京"); student.updateAll("name=?","张三");
五、删除表中的数据
删除表中数据时,deleteAll中写条件。
LitePal.deleteAll(Student.class,"age > ?","15");
六、查询表的数据
1.查询表中的数据
//查询student表中的所有数据 List<Student> studentList = LitePal.findAll(Student.class); //查询表中的第一条数据 Student student1 = LitePal.findFirst(Student.class); //查询表中的最后一条数据 Student student2 = LitePal.findLast(Student.class);
2.查询表中年龄大于15的学生
//查询表中年龄大于15的学生 List<Student> studentList1 = LitePal.where("age > ?","15").find(Student.class);
ps:
1.若是你的LitePal版本较低,实体类继承的时候应该继承DataSupport而不是LitePalSupport,而进行删除查询的时候,也应该是DataSupport,而不是LitePal。
2.更多增删改查的操作语句请参考LitePal文档:https://github.com/LitePalFramework/LitePal
相关文章推荐
- 写给初学者26_android_数据持久化_LitePal_更简单的数据库操作
- Android数据持久化
- Android数据持久化之SharedPreferences
- Android 数据持久化与快速开发
- 记android学习之路----数据持久化之SQLite
- Android之数据持久化技术一(文件存储)
- Android教程 -09 数据的持久化存储
- Android五种数据存储(数据持久化)方式
- Android 中的数据储存方案, 持久化技术
- Android数据持久化技术 — — —文件存储
- Android数据持久化存储
- Android实现数据持久化的三种方法
- Android数据持久化存储方式
- android数据持久化存储(1)
- 记android学习之路----数据持久化之sqlite操作实例1
- Android教程 -09 数据的持久化存储
- Android数据存储与持久化
- Android 应用程序数据持久化方法
- Android数据持久化之Preferences机制详解
- Android数据持久化之I/O操作详解