采用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/
转载文章受原作者版权保护。转载请注明原作者出处!