LitePal简介
LitePal是一款开源的Android数据库框架,它采用了对象关系映射(ORM)的模式,并将我们平时开发时最常用到的一些数据库功能进行了封装,使得不用编写一行SQL语句就可以完成各种建表、増删改查的操作。并且LitePal很“轻”,jar包只有100k不到,而且近乎零配置,这一点和Hibernate这类的框架有很大区别。目前LitePal的源码已经托管到了GitHub上,地址是 https://github.com/LitePalFramework/LitePal 。
LitePal配置
1.添加LitePal支持,下载jar,放入工程中,这里是Android Studio加载了jar包后再build文件中的配置显示 compile files(‘libs/litepal-1.3.1-src.jar’)
2.新建assets文件夹,并新建一个litelpal.xml文件,添加如下内容
"1.0" encoding="utf-8"?>
//数据库名称
"sample" >
//数据库版本
"1" >
//添加的对应的java bean 模型 ,即创建的你要存储在数据库中的数据的模型
"com.bean.BookBean">
3.创建数据模型,下面提供BookBean的代码,创建的数据模型格式代码如下:
package com.bean;
//首先创建的bean需要继承DataSupport,后面所有的数据库操作基本都是基于这个类进行操作的
public class BookBean extends DataSupport{
private long id;
private String url;
private String urlTitle;
private String imageUrl;
private long timeStamp;
public long getTimeStamp() {
return timeStamp;
}
public void setTimeStamp(long timeStamp) {
this.timeStamp = timeStamp;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
@Override
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUrlTitle() {
return urlTitle;
}
public void setUrlTitle(String urlTitle) {
this.urlTitle = urlTitle;
}
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
@Override
public String toString() {
return "BookmarksBean{" +
"id=" + id +
", url='" + url + '\'' +
", urlTitle='" + urlTitle + '\'' +
", imageUrl='" + imageUrl + '\'' +
", timeStamp=" + timeStamp +
'}';
}
}
3.Application继承LitePalApplication,或者通过下面方式
public class MyApplication extends Application {
private static MyApplication instance;
@Override
public void onCreate() {
super.onCreate();
instance = this;
//初始化LitePalApplication
LitePalApplication.initialize(this);
}
public static MyApplication getInstance() {
return instance;
}
}
完成以上的步骤,那么数据库的基本配置就完成了,下面我们看下,LitelPal是如何操作数据库的增删改查操作的,当然,这里只给出部分功能的代码,其他的API,大家可以根据给出的示例,自行研究。
LitePal使用
1.数据库的插入操作
在这里提醒大家一句:使用litePal创建的不管是数据库的库还是数据库的表名,都是小写的名字,同时创建的数据库的表名是根据java bean的名字的所有小写格式创建的,所有数据表中的列名是根据实体类中属性的所有小写格式创建的。比如实体类名字是Bean ,则数据库的名字是bean;如果列名是timeStamp,则实际的列名是timestamp,即没有大写格式。
//完成以下代码,则会在数据表 bean 中创建一条下面所设置的信息的数据库语句。
Bean bean = new Bean();
bean.setUrl("baidu");
bean.setImageUrl("baidu.img");
bean.setTimeStamp(DateUtils.getCurrentTimestamp()-100000000+"");
bean.setTitle("百度");
bean.save();
2.数据库查询功能
//查询数据库中的第二行数据
DataSupport.find(Bean.class,1);
//查询数据库中所有数据
DataSupport.findAll(Bean.class);
//通过数据库语句进行数据查询
Cursor cursor = DataSupport.findBySQL("select * from historybean where timestamp between " + 条件1+ " and " + 条件2);
//offset偏移20,即从第20行开始进行查询
//limit 限制查询20条数据
List beans = DataSupport.order("id desc").offset(20).limit(20).find(Bean.class);
3.数据库删除功能
//下面的语句是删除所有数据,返回值为删除的数据库的行数
int i = DataSupport.deleteAll(Bean.class, "");
4数据库更新功能
ContentValues values = new ContentValues();
values.put("title", "微信");
DataSupport.update(Bean.class, values, 2);
好了,经过上述的代码呢,基本讲解了对LitePal的使用增删改查功能,当然,LitePal还有其他的一些统计,计数,获取最大最小值,获取首行数据,最后一行数据等功能,大家可以自己尝试着去使用一下,相对来说,litePal的API使用起来还是很简单的。