欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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应该是没什么问题啦,有问题私聊哦!

第一次写博客!!!觉得好的话给个赞哈!