美文网首页
Android开源库LitePal数据库

Android开源库LitePal数据库

作者: 你的益达233 | 来源:发表于2020-11-17 10:17 被阅读0次

    配置

    1、build.gradle

    dependencies {
    implementation 'org.litepal.guolindev:core:3.2.2'
    }
    因为数据库xx.db是在data/data/xxx.xxx.xxx里面生成的,所以不需要权限

    2、assets文件夹下建litepal.xml,文件名不能改

    <?xml version="1.0" encoding="utf-8"?>
    
    <litepal>
    
    <dbname value="BookStore" />
    
    
    <version value="1" />
    
    
    <list>
        <mapping class="com.cong.litepaldemo.bean.Book" />
        
    </list>
    
    
    </litepal>
    

    数据库名字为BookStore,版本为1,数据库中有一张表Book,要完整路径

    3、Application初始化

    public class MyApplication extends Application {
    
        @Override
        public void onCreate() {
            super.onCreate();
            LitePal.initialize(this);
        }
    }
    

    4、混淆

    -keep class org.litepal.** {
    *;
    }

    -keep class * extends org.litepal.crud.DataSupport {
    *;
    }

    -keep class * extends org.litepal.crud.LitePalSupport {
    *;
    }

    使用

    1、创建数据库

    任意地方调一次此方法即创建数据库
    LitePal.getDatabase();
    调完此方法可以去下面操作,查看是否真的创建成功了

    litepal1.png litepal2.png litepal3.png

    2、创建表

    我觉得创建表的方式是LitePal数据库的精华所在,它的表就是对应bean的类
    如:

    public class Book extends LitePalSupport {
        private int id;
        private String author;
        private double price;
        private int pages;
        private String name;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getAuthor() {
            return author;
        }
    
        public void setAuthor(String author) {
            this.author = author;
        }
    
        public double getPrice() {
            return price;
        }
    
        public void setPrice(double price) {
            this.price = price;
        }
    
        public int getPages() {
            return pages;
        }
    
        public void setPages(int pages) {
            this.pages = pages;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }
    

    然后在litePal.xml中添加该表

    <list>
        <mapping class="com.cong.litepaldemo.bean.Book" />
    
    </list>
    

    这样就可以了,不继承LitePalSupport也是可以的,但是如果后面你有增删改查操作就必须继承LitePalSupport,因为增删改查操作在LitePalSupport里面,就相当于我让表自己有增删查

    更新表或者说升级表

    比如有了新需求,要在某表新增键,也是很简单
    1、Book实体类新增变量,记得get,set方法
    2、litepal.xml的version加1
    等下次操作到该表时就自动更新表

    3、增加数据

            Book book = new Book();
            book.setName("第一行代码");
            book.setAuthor("guolin");
            book.setPages(454);
            book.setPrice(16.02);
            book.save();
    

    记得save结尾

    4、更新数据

            Book book = new Book();
            book.setPrice(14.95);
            book.updateAll("name = ?","第一行代码");
    

    更新还有很多中方法

    5、删除数据

    LitePal.deleteAll(Book.class,"name = ?","第一行代码");  
    

    6、查找数据

    List<Book> books = LitePal.findAll(Book.class);    
    

    因为我没在项目中用,没法展开说的更深入,遇到什么坑。它底层也是用SQLite,只是不单单封装这么简单,可以说是换了中思路。如果项目中有用SQLite,在重构,不妨用LitePal

    相关文章

      网友评论

          本文标题:Android开源库LitePal数据库

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