LitePal的使用——Android开源数据库

本文介绍了如何在Android应用中集成LitePal,包括添加类库、配置litepal.xml及应用继承,详细讲解了增删改查操作方法,以及常用的查询API。通过实例演示了如何利用LitePal进行数据管理,是数据库初学者的实用指南。

本文知识点

  1. LitePal的集成
  2. LitePal实现数据库的增删改查
  3. LitePal常用的API

1. LitePal的集成

  • 引入相应的类库
  • 创建litepal.xml
  • 更换继承的Application

1.1 引入相应的类库

	//litepal数据库
    implementation 'org.litepal.guolindev:core:3.2.3'

1.2 创建litepal.xml

litepal.xml是在assets文件夹下,
项目main路径下New->Folder->AssetsFolder就可以创建相应的assets文件夹,
然后在assets文件夹下创建一个相应的litepal.xml文件夹。

<?xml version="1.0" encoding="utf-8"?>
<litepal>
    <!--数据库名-->
    <dbname value="BookStore" />
    <!--数据库版本号-->
    <version value="1" />
    <!--映射模型-->
    <list>
        <mapping class="com.fw.androidone.sqlitelitepal.entity.Book" />
    </list>
</litepal>
  • dbname标签是相应的数据库名称
  • version标签是相应的数据库的版本 (当里面引用的内容发生改变的时候,要升级相应的版本)
  • list标签哪些对象需要数据库管理 (mapping里面的路径一定要是全路径名称) (list标签中的实体类都应该继承LitePalSupport这个类)

1.3 更换继承的Application

(1)已经有继承的Application
(2)直接继承LitePalApplication

(1)已经有继承的Application

直接在Application的onCreate方法中对数据库进行初始化

	@Override
    public void onCreate() {
        super.onCreate();
        //数据库初始化
        LitePal.initialize(this);
    }

(2)直接继承LitePalApplication

直接继承相应的LitePalApplication这里就不用在onCreate()中调用LitePal.initialize(this);
在application标签中添加Application的时候要这样写
android:name="org.litepal.LitePalApplication"

2.LitePal中实现增删改查

2.1 新增数据

使用save()方法

Book book = new Book();
book.setAuthor("王天一");
book.setName("王天一的第一本书");
book.save();

2.2 删除数据

delete()或者deleteAll()进行删除

Book book = new Book();
book.setAuthor("王天二");
book.setName("王天二的第一本书");
book.save();
book.delete();
//删除book表中price=44.6786的这条数据
LitePal.deleteAll(Book.class, "name = ?", "王天二");

2.3 更新数据

1、更改完相应的数据直接save保存
2、updateAll方法实现

//方式一:对已经存储的数据进行更新
Book book = new Book();
book.setAuthor("王天二");
book.setName("王天二的第一本书");
book.save();
// 重新修改价格,然后点用save方法,
// 此时,litapal数据库中会发现该数据之前已经存储在数据库中,所以进行更新价格操作。而不会重新插入一条数据。
book.setName("王天三");
book.save();
//方式二:updateAll方法实现
Book book1 = new Book();
book1.setPrice(44.6786);
book1.updateAll("name = ? and author = ?", "王天二的第一本书", "王天二");

2.4 查询数据

主要用到find()和findAll()等相应的方法、

//查询所有数据
List<Book> bookList = LitePal.findAll(Book.class);

//查询第一条数据
Book firstBook = LitePal.findFirst(Book.class);

//查询最后一条数据
Book lastBook = LitePal.findLast(Book.class);

//按照条件查询
//(1)select()方法用于指定查询哪几列的数据,对应sql中的select关键字
List<Book> books = LitePal.select("name", "author").find(Book.class);

//(2) where()用于指定查询的约束条件,对应了sql中的where关键字
List<Book> books1 = LitePal.where("page > ?", "100").find(Book.class);

//(3) order()方法用于指定结果的排序方式,对应了sql当中的order by 关键字
List<Book> books2 = LitePal.order("price desc").find(Book.class);

//(4) limint()方法用于指定查询结果的数量
List<Book> books3 = LitePal.limit(3).find(Book.class);//查询表中前3条数据

//(5)offset() 方法用于指定查询结果的偏移量
List<Book> books4 = LitePal.limit(3).offset(1).find(Book.class);//查询表中第2条、第3条、第4条数据

//(6) 组合使用查询
List<Book> books5 = LitePal.select("name", "author")
           .where("page > ?", "100")
           .order("price")
           .limit(3)
           .offset(2)
           .find(Book.class);//查询Book表中第3~5条满足page>100页这个条件的name、author这两列数据,并且查询结果按照price升序排序

//LitePal使用原声SQL查询
Cursor cursor = LitePal.findBySQL("select * form Book where page > ? and price < ?", "100", "60");

3.LitePal常用的API

  • 查询第一条数据
    LitePal.findFirst(Book.class);
  • 查询最后一条数据
    LitePal.findLast(Book.class);
  • select()方法用于指定查询哪几列的数据,对应sql中的select关键字 LitePal.select(“name”,“author”).find(Book.class);
  • where()用于指定查询的约束条件,对应了sql中的where关键字
    LitePal.where(“page > ?”, “100”).find(Book.class);
  • order()方法用于指定结果的排序方式,对应了sql当中的order by 关键字 LitePal.order(“price desc”).find(Book.class);
  • limint()方法用于指定查询结果的数量
    LitePal.limit(3).find(Book.class);//查询表中前3条数据
  • offset() 方法用于指定查询结果的偏移量
    LitePal.limit(3).offset(1).find(Book.class);//查询表中第2条、第3条、第4条数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值