强大的Android数据库框架之LitePal
LitePal框架的使用
1.简介
LitePal是一款开源的Android数据库框架,采用了对象关系映射(ORM)的模式,将平时开发时最常用的一些数据库功能进行了封装,使得开发者不用编写一行SQL语句就可以完成各种建表、増删改查的操作。
2.用LitePal创建数据库
2.1导入依赖
implementation 'org.litepal.android:core:1.6.1'
2.2配置文件litepal.xml的配置
- 新建assets文件夹
该目录创建在app/src/main文件夹下,并且与java和res文件夹同级。 - 在assets文件夹下创建litepal.xml文件,在该文件里面编写数据库的相关属性,具体内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<litepal>
<!-- 数据库名 -->
<dbname value="file"></dbname>
<!-- 数据库版本号 -->
<version value="1"></version>
<list>
<!-- 数据表:用于指定所有的映射模型-->
</list>
</litepal>
2.3配置AndroidManifest.xml文件中的内容,在下增加内容以下内容。(内容固定)
android:name="org.litepal.LitePalApplication"
2.4创建数据表
- 创建一个类(类就相当于数据库里面的数据表,相应字段就是数据表里面的字段)
根据对象关系映射模式的理念,每一张表都应该对应一个模型(Model),也就是说,如果我们想要建一张Book表,就应该有一个对应的Book模型类。
新建一个Book类,LitePal要求所有的实体类都要继承自DataSupport这个类。
public class Book extends DataSupport {
private String title;
private float price;
private String name;
public Book(String title, float price, String name) {
this.title = title;
this.price = price;
this.name = name;
}
public Book(int price, String name) {
this.price = price;
this.name = name;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
- 将这个类引入到litepal.xml文件的list标签里面
<mapping class="com.example.litepal.Book"></mapping>
效果如下图所示
<?xml version="1.0" encoding="utf-8" ?>
<litepal>
<!-- 数据库名 -->
<dbname value="file"></dbname>
<!-- 数据库版本号 -->
<version value="1"></version>
<list>
<!-- 数据表:用于指定所有的映射模型-->
<mapping class="com.example.litepal.Book"></mapping>
</list>
</litepal>
数据库的创建完成
3.数据库的操作(增、删、改、查)
3.1数据表里面数据的添加
Book book=new Book("python数据分析",45.2f,"人民教育出版社");
book.save();
Book book1=new Book("Hadoop开发与实战",62.3f,"人民教育出版社");
book1.save();
3.2数据表里面数据的删除
DataSupport.deleteAll(Book.class, "title =?", "python数据分析");
Book book4 = new Book("Hadoop开发与实战", 20.6f, "人民教育出版社");
book4.save();
book4.delete();
3.3数据表里面数据的更新
Book book5=new Book("数据分析",65.9f,"人民教育出版社");
book5.save();
book5.setPrice(15.6f);
book5.save();
3.4数据表里面数据的查询
- 查询全部
List<Book> date= DataSupport.findAll(Book.class);
- 精确查询
//根据书名查找,并按照某字段排序
List<Book> books_ = DataSupport.where("title= ?","python数据分析").order("price").find(Book.class);
参考文档:
https://www.jianshu.com/p/b3ba76aee2b9
https://github.com/LitePalFramework/LitePal