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();

可以放在操作数据库之前即可。
通过以上四步就可以实现我们数据库的升级。是不是很简单。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值