LitePal是一款开源的Android数据库框架,采用对象关系映射(ORM)模式,将常用的数据库功能进行封装,可以不用写一行SQL语句就可以完成创建表、增删改查的操作。并且很轻量级,jar包不到100k,几乎零配置。
使用步骤:
1、添加远程依赖:
implementation 'org.litepal.android:core:1.5.1'
2、在app目录下创建assets文件夹,并创建litepal.xml文件。
其中litepal.xml的内容为:(这个文件主要是用来配置数据库以及相关的映射模型)
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<!--数据库名-->
<dbname value="BookStore"></dbname>
<!--数据库版本号,如果修改model类了,可以修改版本号,这样,之前数据库中的数据也能得到保存-->
<version value="1"></version>
<!--映射模型,注意一定要使用完整的类名-->
<list>
<mapping class="com.deepreality.litepaltestdemo.Book"></mapping>
</list>
</litepal>
注意两点:
第一:每次只要数据库发生变动, 版本号version都必须加1,这样的话,之前的数据也能得到保存;
第二:表的写法是全类名+表名(Book),如果是多张表,就在list标签中写多个mapping标签就ok。
3、需要在清单文件AndroidManifest.xml里添加配置:
android:name="org.litepal.LitePalApplication"
如下:
配置至此就OK了。下面开始进行增、删、改、查操作。
1、增加操作
Book book = new Book();
book.setAuthor("某某人");
book.setName("第一行代码");
book.setPages(210);
//添加该条数据
book.save();
注意:save()是添加一条数据,批量添加是 DataSupport.saveAll(books);
2、删除操作
2.1、清空Book表所有数据:
//清空数据
DataSupport.deleteAll(Book.class);
2.2、删除某一条数据
//删除某一条数据
DataSupport.deleteAll(Book.class, "author = ? and pages < ?", "某某人", "200");
3、修改操作
//修改一条数据
//把author=某某人,并且pages=200的数据的price改为25
Book book = new Book();
book.setPrice(25);
book.updateAll("author = ? and pages < ?", "某某人", "200");
//如果知道id的话,可以用下面的(比如,id是1)
//book.update(1);
4、查询操作
//查询操作
//查询一条数据,知道id
//Book book = DataSupport.find(Book.class, 1);
//查询第一条数据
//Book book = DataSupport.findFirst(Book.class);
//查询最后一条数据
//Book book = DataSupport.findLast(Book.class);
//查询数据集合
//知道id的情况下
/*long[] ids = new long[] { 1, 3, 5, 7 };
List<Book> bookList = DataSupport.findAll(Book.class, ids);*/
//不知道id的情况下
//聚合查询
//select:选择哪几列显示;limit:选择前几个数据;offset:偏移量,用于翻页时数据获取。
List<Book> bookList = DataSupport.select("name", "author")
.where("pages > ?", "100")
.order("price desc").limit(10).offset(10)
.find(Book.class);
至此,LitePal的增、删、改、查基本用法介绍完毕。