49

Android开发——使用LitePal开源数据库框架 - Stars-one

 6 years ago
source link: https://www.cnblogs.com/kexing/p/8127146.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Android开发——使用LitePal开源ORM框架

本文为作者原创,允许转载,不过请在文章开头明显处注明链接和出处!!! 谢谢配合~
作者:stars-one
链接:https://www.cnblogs.com/stars-one/p/8127146.html

本篇大约有2508个字,阅读预计需要3.13分钟


前言:之前使用Android内置的数据库,感觉一大堆SQL语句,一不小心就错了,很难受,学习了这个LItePal的开源数据库框架,瞬间觉得Android内置的数据库简直是垃圾般的存在

LitePal GitHub首页:https://github.com/LitePalFramework/LitePal

1.添加依赖

切换project模式,展开APP的文件夹,找到build.gradle文件,去里面添加依赖,这里我用的是最新版本,可以在LitePal的Github官网上找到最新的版本

1210268-20171227172427628-1268956244.png

2.配置LitePal.xml文件及相关设置

在main文件夹中新建一个asstes文件夹,之后,创建LitePal.xml,复制LitePal上的GItHub给出的代码,这里我就直接写了,其中,dbname代表数据库的名称,version代表版本号,list标签之下有表(专业术语为映射模型类),这里之后会提及

1210268-20171227175403191-512597799.png

 此外,我们还需要在AndroidMainfest文件中添加一行代码android:name="org.litepal.LitePalApplication"

1210268-20171227175946519-863697369.png

 3.创建一个Java Bean类

这里创建了一个书的bean类,有着三个成员变量,之后,使用alt+insert,选择getter and setter,添加get与set方法

1210268-20171227180437581-824466108.png

 4.在LItePal.xml文件中list标签下配置表(映射模型类)

记得包名要写完整

 

1210268-20171227181011597-1982338814.png

 使用步骤:

1.创建和升级数据库

在相关activity的java文件直接使用LitePal的getDatabase方法创建数据库,即是添加下面的代码即可,写在onClick事件中即可,这里就不放截图

  LitePal.getDatabase();

升级数据库,直接在Bean的java文件中添加新的成员变量及其的get与set方法即可,升级数据库的代码还是使用上面的那一行代码

举个例子,例如上述,我们想要添加一个出版社的列,我们只需要在Book里面创建一个成员变量,及get与set方法,之后,去LitePal.xml文件中,将version的版本加1,也就是改为2即可,其他的都不需要更改

例如,我们想要再加一张表,也是类似的操作,创建一个Bean类,之后,在LitePal.xml文件中使用mapping标签,同时,将版本号加一,也就是改为2即可,其他的也是不需要改变

2.添加数据

修改模型类(也就是Book),使其继承DataSupport

1210268-20171228122250847-461611883.png

之后,我们只需要新建一个对象,调用其set方法,为其里面的成员变量赋值,之后,调用save方法,就是成功地往数据库中添加了数据

1210268-20171228122603066-1604441694.png

3.修改(更新)数据

更新的操作其实很简单,使用udateAll方法即可,例如,我们要将上面书名为The Last的作者改为John,价格改成16

1210268-20171228123215722-700387571.png

updateAll里面写了约束条件,也就是书名为The Last的那一条数据,修改,如果updateAll里面无参数,就是将表里面的数据的作者与价格更改为John和16

4.删除数据

调用DataSupport的deleteAll方法,与上面的updateAll类似,参数里填约束条件,如果不写,就是删除整张表

     DataSupport.deleteAll(Book.class,"name is ?","The Last");//删除名字为The Last的数据
     DataSupport.deleteAll(Book.class,"name is ? and price is ?","The Last","15");//删除名字为The Last,价格为15的的数据
        DataSupport.deleteAll(Book.class,"price < ?","16");//删除价格低于16的数据

5.查找数据

查找方法调用的DataSupport的findAll方法即可,下面给出示例代码

  select指定查询列,where查找出符合约束条件的数据,order将查询结果排序,limit限制查询数据数目

     List<Book> books = DataSupport.findAll(Book.class);//查找Book这张表的全部数据,返回的是一个List
        List<Book> books1 = DataSupport.select("name","price").find(Book.class);//指定查询Book这张表中的name与price两列的数据,返回的也是一个List
        List<Book> books2 = DataSupport.where("price > ?","16").find(Book.class);//指定在Book这张表查找符合价格大于16(约束条件)的数据,返回的是一个List
        List<Book> books4 = DataSupport.order("price desc").find(Book.class);//将查询结果按照价格从高到低排序(desc 降序),不写或者asc则是升序
        List<Book> books5 = DataSupport.limit(3).find(Book.class);//查询Book表中的前三条数据
 值得一提的是,可以使用findBySQL方法进行原生的查询,也就是之前使用内置数据库的方法,返回的是一个Cursor对象,这里我就不使用了

 

1210268-20171228130315394-1493259055.jpg

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK