美文网首页
LitePal的使用

LitePal的使用

作者: _成长ing_ | 来源:发表于2019-03-27 14:45 被阅读0次

    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) {
    
                        }
                    });
    

    相关文章

      网友评论

          本文标题:LitePal的使用

          本文链接:https://www.haomeiwen.com/subject/ngybvqtx.html