LitePal操作数据库详解
程序员文章站
2022-06-01 21:02:20
...
1. LitePal简介
LitePal是一款开源的Android数据库框架,它采用了对象关系映射(ORM)的模式,并将我们平时开发最常用的一些数据库功能进行了封装,是的不用编写一行SQL语句就可以完成各种建表和增删改查的操作。
2.LitePal的配置
第一步就是编辑app/build.gradle文件,在dependencies闭包中添加如下内容
compile'org.litepal.android:core:1.4.1' //1.4.1是版本号的意思,最新的版本号可以到LitePal的项目主页上看看
第二步就是配置litepal.xml文件 右击app/src/main目录->New->Directory,创建一个assets目录,然后在assets目录下再新建一个litepal.xml文件,接着编辑litepal.xml文件中的内容,如图
<?xml version="1.0" encoding="utf-8" ?>
<litepal>
<!-- 数据库名 -->
<dbname value="Student"></dbname>
<!-- 版本号 -->
<version value="1"></version>
<!-- 创建表 -->
<list>
<mapping class="映射的javaBean的完整类名"></mapping>
</list>
</litepal>
最后还要配置下Application,修改AndroidManifest.xml中的代码,如图<application
android:name="org.litepal.LitePalApplication" //添加这一行即可
...
</application>
3.创建数据库和表
1). 需要一个JavaBean对象,也就是数据库的表,比如我想要创建一个Student的表格,如图
public class Student extends DataSupport{
private int id;
private String name;//姓名
private int studentId;//学号
private String sex;//性别
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getStudentId() {
return studentId;
}
public void setStudentId(int studentId) {
this.studentId = studentId;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
2).修改litepal.xml中的代码,如下图<?xml version="1.0" encoding="utf-8" ?>
<litepal>
<!-- 数据库名 -->
<dbname value="Student"></dbname>
<!-- 版本号 -->
<version value="1"></version>
<!-- 创建表 -->
<list>
<mapping class="com.example.litepal.Student"></mapping> //修改这一行即可
</list>
</litepal>
在mainactivity中加入一行代码LitePal.getDatabase();
运行程序后,在adb中就可以看到创建的数据库和表,也可以在data/data/包名的文件下看到数据库已经创建了
4.使用LitePal添加数据
在MainActivity中添加一个按钮,实现点击按钮添加数据,在onClick方法中写入
Student student = new Student();
student.setName(name);
student.setSex(sex);
student.setStudentId(Integer.parseInt(studentId));
student.save(); //save()方法是从DataSupport方法中继承而来的,除了save()方法,DataSupport类还可以我们提供了丰富的CRUD方法
5使用LitePal删除数据
只要一行代码
DataSupport.deleteAll(Student.class, "id = ?", id +"");
第一个参数用于指定删除哪张表中的数据,Student.class就意味着删除Student表中的数据,后面的参数用于指定约束条件,比如
DataSupport.deleteAll(Student.class, "id < ?", "15"); //表示删除id小于15的行
6使用LitePal更新数据
Student student = new Student();
student.setName(name);
student.setSex(sex);
student.setStudentId(Integer.parseInt(studentId));
student.updateAll("id = ?", id+"");
7使用LitePal查询数据
使用LitePal查询数据相比于sqlite一点都不复杂,想想之前用的query()方法,冗长的参数列表让人看得头疼
使用LItePal只要这样写就可以实现
List<Student>students=DataSupport.findAll(Student.class);
例如实现点击一个按钮,显示出表中所有Student的名字,在button的onClick方法中
List<Student>students=DataSupport.findAll(Student.class);
for(Student student:students){
Log.d("MainActivity",student.getName());
}
看到这,对于LitePal应该是没什么问题啦,有问题私聊哦!
第一次写博客!!!觉得好的话给个赞哈!
上一篇: TCHS-3-250