一、简介
LitePal是开源的Android库,为开发者使用SQLite数据库提供帮助。使用LitePal,开发者使用SQLite不再需要编写SQL语句块,例如创建升级表,CRUD操作,以及统计函数。LitePal的安装使用也是非常简单,不超过5分钟,你就可以把这整合到你的项目里面.
二、特性
- 使用ORM模式
- 很少的配置文件(仅仅一个配置文件,其中包含一些属性)
- 自动维护表(例如增加、删除、和修改表)
- 提供操作API,避免写SQL语句
- 提供强大的聚合查询功能
- 同时支持使用SQL语句
三、项目整合
1. 引入JAR包
本例中使用的是litepal-1.1.1.jar版本,拷贝到libs目录,如下图所示:![]()
LitePal 开源项目使用 2. 配置litepal.xml
在项目的assets目录下面创建litepal.xml文件,并编辑文件内容如下:
<?xml version="1.0" encoding="utf-8"?> <litepal> <!-- <dbname>用于设定数据库的名字 --> <dbname value="demo" /> <!-- <version>用于设定数据库的版本号,如果你想要升级数据库,增加这个值 --> <version value="1" /> <!-- <list>用于设定所有的映射模型 --> <list> <mapping class="com.gj.litepaldemo.News"></mapping> </list> </litepal>
3. 配置LitePalApplication
为了防止每次都传递参数Context上下文,只需在AndroidManifest.xml文件中配置LitePalApplication即可,如下文所示:
<manifest> <application android:name="org.litepal.LitePalApplication"
四、开始使用
1. 创建表
- 创建实体类,需要继承DataSupport类,如果某些属性在创建表时不需要作为表的相应字段,只要声明为非private即可,如下所示:
注意:id属性可以不用声明,工具类会自动创建一个递增主键idpublic class News extends DataSupport { private int id; private String title; private String content; protected int commentCount; Get....set.... }
- 配置litepal.xml文件,添加映射类
这样,在下次操作数据库时,News表就会自动生成,例如下面获得SQLiteDatabase的代码:<list> <mapping class="com.gj.litepaldemo.News"></mapping> </list>
2. 增加记录SQLiteDatabase db = Connector.getDatabase();
3. 更改记录News news = new News(); news.setTitle("title"); news.setContent("content1"); boolean result = news.save();
4. 删除记录News news = new News(); news.setTitle("title1"); news.setContent("content1"); int rows = news.update(1);
5. 查询记录DataSupport.delete(News.class, 1);
- 按ID查询单条记录
News news = DataSupport.find(News.class, 2); //查询ID值为2的那条记录
- 全部查询
List<News> newsList = DataSupport.findAll(News.class);
- 按条件查询
List<News> queryList = DataSupport.where("title = ?", "title3").find(News.class); //查询title的值为"title3"的记录
五、数据库升级
如果软件的正式版本已经发布上线,在后续的版本更新中,如果需要对数据库表进行增加或者字段修改,那么就需要用到数据库表升级的功能,而使用LitePal进行数据库升级是十分容易的,具体如何使用LitePal进行表的升级控制,如下所示:
- 新增表
1) 首先新增实体类,如新增实体类addDemo
2) 配置assets\litepal.xml文件,在<list></list>中增加映射关系,参考上面的创建表的内容
3) 修改litepal.xml文件中的版本号,需要+1
- 表字段修改
1) 直接修改对应的实体类
2) 修改litepal.xml文件中的版本号,需要+1
六、LitePal Github 地址
https://github.com/LitePalFramework/LitePal#latest-downloads