LitePal的使用

2019-03-27  本文已影响0人  _成长ing_

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命令可以查看建表语句

建表语句.png
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查看数据库的变化

数据库的变化.png
6.表里添加数据
                Book book = new Book();
                book.setName("Android开发");
                book.setAuthor("涵涵");
                book.setPages(555);
                book.setPrice(18.88);
                book.save();
数据查询.png
7.更新数据
//更新方法1
                Book upBook = LitePal.find(Book.class,1);
                if (upBook!=null) {
                    upBook.setPrice(26.6);
                    upBook.setPages(500);
                    upBook.save();
                }
更新1.png
                Book upBook2 = new Book();
                upBook2.setPrice(29.9);
                upBook2.update(1);
更新2.png
8.删除数据
先增加3条数据
数据源.png
 LitePal.delete(Book.class,1);
删除数据1.png

批量删除

 LitePal.deleteAll(Book.class,"pages > ?","500");
批量删除.png
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) {

                    }
                });
上一篇 下一篇

猜你喜欢

热点阅读