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

2040

被折叠的 条评论
为什么被折叠?



