Android中数据库开发之LitePal的基本用法(总结)

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的增、删、改、查基本用法介绍完毕。

猜你喜欢

转载自blog.csdn.net/lpCrazyBoy/article/details/82216760