LitePal的使用

SQLite对于Android开发者都是必须要掌握的一项技能,但是使用SQLite,要写很多内容,创建表,对表的操作等等。下面介绍一个开源框架LitePal,能够快速的实现,对表的操作,地址:https://github.com/LitePalFramework/LitePal
步骤:
1.集成

 implementation 'org.litepal.android:java:3.0.0'

2.在main目录下创建assets目录,创建litepal.xml文件




    

    

    
        
    


3.配置AndroidManifest.xml

 

4.创建表

LitePal.getDatabase();

通过adb shell命令可以查看建表语句

LitePal的使用_第1张图片
建表语句.png

5.修改表
如果想要在表book中添加一个字段des,还有想要添加一张表categroy的时候,只需要在Book的实体中添加字段des,创建实体categroy,然后修改litepal.xml文件即可
litepal.xml修改结果




    

    

    
        
        
    


通过adb shell查看数据库的变化

LitePal的使用_第2张图片
数据库的变化.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);
LitePal的使用_第3张图片
删除数据1.png

批量删除

 LitePal.deleteAll(Book.class,"pages > ?","500");

批量删除.png

9.查询

                //根据id查询
                Book book2 = LitePal.find(Book.class, 4);

                //查询全部
                List bookList = LitePal.findAll(Book.class);
                for (Book book3 : bookList) {
                    Log.e("tag", book3.toString());
                }

                //条件查询
                List pages = LitePal.where("author like ? and pages > ?", "郭%","500").order("pages desc").find(Book.class);

                //限制数量
                List books = LitePal.limit(10).offset(10).find(Book.class);

查询数据和添加数据可能是一个大的耗时操作,可以异步操作

                //多线程查询
                LitePal.findAllAsync(Book.class).listen(new FindMultiCallback() {
                    @Override
                    public void onFinish(List list) {

                    }
                });

                //耗时保存操作
                book.saveAsync().listen(new SaveCallback() {
                    @Override
                    public void onFinish(boolean success) {

                    }
                });

你可能感兴趣的:(LitePal的使用)