LitePal 开源项目使用

来源:互联网 发布:acrobat pro dc mac 编辑:程序博客网 时间:2024/06/06 00:19

一、简介

LitePal是开源的Android库,为开发者使用SQLite数据库提供帮助。使用LitePal,开发者使用SQLite不再需要编写SQL语句块,例如创建升级表,CRUD操作,以及统计函数。LitePal的安装使用也是非常简单,不超过5分钟,你就可以把这整合到你的项目里面.

二、特性

  • 使用ORM模式
  • 很少的配置文件(仅仅一个配置文件,其中包含一些属性)
  • 自动维护表(例如增加、删除、和修改表)
  • 提供操作API,避免写SQL语句
  • 提供强大的聚合查询功能
  • 同时支持使用SQL语句
三、项目整合

1. 引入JAR包

本例中使用的是litepal-1.1.1.jar版本,拷贝到libs目录,如下图所示:

2. 配置litepal.xml

在项目的assets目录下面创建litepal.xml文件,并编辑文件内容如下:

[html] view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <litepal>  
  3.     <!-- <dbname>用于设定数据库的名字 -->  
  4.     <dbname value="demo" />  
  5.     <!-- <version>用于设定数据库的版本号,如果你想要升级数据库,增加这个值 -->  
  6.     <version value="1" />  
  7.     <!-- <list>用于设定所有的映射模型 -->  
  8.     <list>  
  9.         <mapping class="com.gj.litepaldemo.News"></mapping>    
  10.     </list>  
  11. </litepal>  

3. 配置LitePalApplication

为了防止每次都传递参数Context上下文,只需在AndroidManifest.xml文件中配置LitePalApplication即可,如下文所示:

[html] view plain copy
  1. <manifest>  
  2. <application  
  3.         android:name="org.litepal.LitePalApplication"  
四、开始使用

1. 创建表

  • 创建实体类,需要继承DataSupport类,如果某些属性在创建表时不需要作为表的相应字段,只要声明为非private即可,如下所示:

[java] view plain copy
  1. public class News extends DataSupport {  
  2.     private int id;  
  3.     private String title;  
  4.     private String content;  
  5.     protected int commentCount;  
  6.     Get....set....  
  7. }  

注意:id属性可以不用声明,工具类会自动创建一个递增主键id

  • 配置litepal.xml文件,添加映射类

[html] view plain copy
  1. <list>  
  2.        <mapping class="com.gj.litepaldemo.News"></mapping>    
  3.    </list>  

这样,在下次操作数据库时,News表就会自动生成,例如下面获得SQLiteDatabase的代码:

[java] view plain copy
  1. SQLiteDatabase db = Connector.getDatabase();  

2. 增加记录

[java] view plain copy
  1. News news = new News();  
  2. news.setTitle("title");  
  3. news.setContent("content1");  
  4. boolean result = news.save();  

3. 更改记录

[java] view plain copy
  1. News news = new News();  
  2. news.setTitle("title1");  
  3. news.setContent("content1");  
  4. int rows = news.update(1);  

4. 删除记录

[java] view plain copy
  1. DataSupport.delete(News.class1);  

5. 查询记录

  • 按ID查询单条记录
[java] view plain copy
  1. News news = DataSupport.find(News.class2); //查询ID值为2的那条记录  
  • 全部查询
[java] view plain copy
  1. List<News> newsList = DataSupport.findAll(News.class);  
  • 按条件查询

[java] view plain copy
  1. 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

原创粉丝点击