SQLite对于Android开发者都是必须要掌握的一项技能,但是使用SQLite,要写很多内容,创建表,对表的操作等等。下面介绍一个开源框架LitePal,能够快速的实现,对表的操作,地址:https://github.com/LitePalFramework/LitePal
步骤:
1.集成
implementation 'org.litepal.android:java:3.0.0'
2.在main目录下创建assets目录,创建litepal.xml文件
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="BookStore" />
<version value="1" />
<list>
<mapping class="com.diudiu.wechat.firstapp.model.Book"/>
</list>
</litepal>
3.配置AndroidManifest.xml
<application
...
android:name="org.litepal.LitePalApplication">
</application>
4.创建表
LitePal.getDatabase();
通过adb shell命令可以查看建表语句
5.修改表
如果想要在表book中添加一个字段des,还有想要添加一张表categroy的时候,只需要在Book的实体中添加字段des,创建实体categroy,然后修改litepal.xml文件即可
litepal.xml修改结果
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="BookStore" />
<version value="2" />
<list>
<mapping class="com.diudiu.sqltest.model.Book"/>
<mapping class="com.diudiu.sqltest.model.Category"/>
</list>
</litepal>
通过adb shell查看数据库的变化
6.表里添加数据
Book book = new Book();
book.setName("Android开发");
book.setAuthor("涵涵");
book.setPages(555);
book.setPrice(18.88);
book.save();
7.更新数据
//更新方法1
Book upBook = LitePal.find(Book.class,1);
if (upBook!=null) {
upBook.setPrice(26.6);
upBook.setPages(500);
upBook.save();
}
Book upBook2 = new Book();
upBook2.setPrice(29.9);
upBook2.update(1);
8.删除数据
先增加3条数据
LitePal.delete(Book.class,1);
批量删除
LitePal.deleteAll(Book.class,"pages > ?","500");
9.查询
//根据id查询
Book book2 = LitePal.find(Book.class, 4);
//查询全部
List<Book> bookList = LitePal.findAll(Book.class);
for (Book book3 : bookList) {
Log.e("tag", book3.toString());
}
//条件查询
List<Book> pages = LitePal.where("author like ? and pages > ?", "郭%","500").order("pages desc").find(Book.class);
//限制数量
List<Book> books = LitePal.limit(10).offset(10).find(Book.class);
查询数据和添加数据可能是一个大的耗时操作,可以异步操作
//多线程查询
LitePal.findAllAsync(Book.class).listen(new FindMultiCallback<Book>() {
@Override
public void onFinish(List<Book> list) {
}
});
//耗时保存操作
book.saveAsync().listen(new SaveCallback() {
@Override
public void onFinish(boolean success) {
}
});