LitePal的简单使用

采用ORM(对象关系映射)的模式,体积小;Litepal相比较Android原生操作Sqlite使用起来非常方便,没有比较多步骤,主要工作量在于第一次使用往项目中引入Litepal,后期的使用是比较简单的。下面我们一起学习吧!

地址: https://github.com/LitePalFramework/LitePal

implementation 'org.litepal.guolindev:core:3.2.3'

让程序application 继承 org.litepal.LitePalApplication

​ litepal.xml文件内容:


<litepal>

  <dbname value="first_db">dbname>

  <version value="1">version>

  <list>
  list>
litepal>

到这里,配置工作就完成了!

public class Student {

    private int id;

    private String name;

    private int age;

    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 getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

<litepal>

    <dbname value="first_db">dbname>

    <version value="1">version>

    <list>
        <mapping class="com.jw.firstapp.db.mode.Student">mapping>
    list>
litepal>

现在只要你对数据库有任何的操作,Student表就会被自动创建出来;如下,获取SQLiteDataBase实例方法:


SQLiteDatabase db = Connector.getDatabase();

修改数据和添加数据的使用基本上一样,也是使用API,只是吧save和saveAll变成了update和updateAll。

指定条件:下面会使用到指定条件,操作符合条件的数据;这里的条件需要主要一下使用方法;在Litepal指定条件使用字符串和占位符(?)完成的;比如指定id为3的数据,写作(“id = ?”,”3″),指定id为5并且age=10的数据,写作(”id = ? and age = ?”,”5″,”20″)。

总结一下,这里的?表示占用一个位置,然后在后面跟着的字符串给它赋值;特点就是一个?对应一个值;

  • 通过ID修改一条记录

Student student = new Student("小明改名字了", 15);

int effectRows = student.update(1);
  • 修改所有表里所有数据

Student student = new Student();
student.setAge(0);

int effectRows = student.updateAll();
  • 指定一个条件,修改符合条件的数据

 Student student = new Student();
student.setAge(0);

int effectRows = student.updateAll("age = ?","12");
  • 指定多个条件,修改符合条件的数据

  Student student = new Student();
student.setAge(20);

int effectRows = student.updateAll("age = ? and id = ? ","0","3");
  • 指定一个列,让该类恢复默认值

Student student = new Student();
student.setToDefault("age");

int effectRows =student.updateAll();

删除数据和添加数据的使用基本上一样,也是使用API,只是吧save和saveAll变成了delete和deleteAll。

  • 通过ID删除一条记录

int effectRows =LitePal.delete(Student.class,2);
  • 指定一个条件,删除满足条件的所有数据

int effectRows =LitePal.deleteAll(Student.class,"id > ?","10");
  • 删除所有数据

int effectRows =LitePal.deleteAll(Student.class);
  • 通过Id查询数据

Student student = LitePal.find(Student.class, 1);
  • 通过一组id查询一组数据

long[] ids = new long[]{1L,2L,3L,5L};
List<Student> students = LitePal.findAll(Student.class, ids);
  • 查找表中第一个和最后一个数据

long[] ids = new long[]{1L,2L,3L,5L};
List<Student> students = LitePal.findAll(Student.class, ids);
  • 根据条件查询表中数据

List<Student> students = LitePal.select("id", "age").find(Student.class);

List<Student> students1 = LitePal.where("age > ?", "10").find(Student.class);

List<Student> students2 = LitePal.order("age desc").find(Student.class);

List<Student> students3 = LitePal.limit(10).find(Student.class);

Cursor cursor = LitePal.findBySQL("select * from student where age > 10");
while (cursor != null && cursor.moveToNext()){
  int age = cursor.getInt(cursor.getColumnIndex("age"));
  String name = cursor.getString(cursor.getColumnIndex("name"));
  Student student = new Student(name, age);
}
  • 查询所有数据
List<Student> students = LitePal.findAll(Student.class);

Original: https://blog.csdn.net/qq_42948831/article/details/119673429
Author: 码农的小菜园
Title: LitePal的简单使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/815937/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球