简单介绍一下LitePal:
LitePal是一款开源的Android数据库框架,采用了对象关系映射(ORM)的模式,将平时开发时最常用的一些数据库功能进行了封装,使得开发者不用编写一行SQL语句就可以完成各种建表、増删改查的操作。并且LitePal很小,jar包大小不到100k,而且近乎零配置,这一点和Hibernate这类的框架有很大区别。目前LitePal的源码已经托管到了GitHub上。
1、准备需要的JAR包 这里下载
下载好了jar包之后,复制到项目的libs目录中然后引用
当然如果不想用jar包的话,也可以把LitePal的×××下来,然后作为一个library库导入到项目当中,再引用这个library库就可以了。
这里我使用的事JAR包进行介绍
2、设置litepal.xml文件,这里比较重要
首先我们需要建一个assets文件夹,这个文件夹和java文件平级
其次在assets文件下新建一个litepal.xml,为了快速可以直接copy一个进去
库名称
库版本,可升级
这里是添加表名,后面讲
用于设定数据库的名字,用于设定数据库的版本号,用于设定所有的映射模型
3、需要配置Application
由于操作数据库时需要用到Context,而我们显然不希望在每个接口中都去传一遍这个参数,那样操作数据库就显得太繁琐了。因此,LitePal使用了一个方法来简化掉Context这个参数,只需要在AndroidManifest.xml中配置一下Application,所有的数据库操作就都不用再传Context了
可能有些程序可能会有自己的Application,并在这里配置过了,那么我们就用其他办法解决,那就只需要修改一下myApplication的继承结构,让它不要直接继承Application类,而是继承我们定义的LitePalApplication类
到了这里我们的准备工作已经做完了,接下来我们就可以开始建表了
4、根据对象关系映射模式的理念,每一张表都应该对应一个模型(Model),也就是说,如果我们想要建一张news表,就应该有一个对应的News模型类。新建一个News类,LitePal要求所有的实体类都要继承自DataSupport这个类
public class News extends DataSupport {
//id这个字段可写可不写,因为即使不写这个字段,LitePal也会在表中自动生成一个id列,毕竟每张表都一定要有主键的
private int id;
private String title;
private String content;
private Date publishDate;
private int commentCount;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}无锡×××医院 https://yyk.familydoctor.com.cn/20612/
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Date getPublishDate() {
return publishDate;
}
public void setPublishDate(Date publishDate) {
this.publishDate = publishDate;
}
public int getCommentCount() {
return commentCount;
}
public void setCommentCount(int commentCount) {
this.commentCount = commentCount;
}
}
LitePal的映射规则是非常轻量级的,不像一些其它的数据库框架,需要为每个模型类单独配置一个映射关系的XML,LitePal的所有映射都是自动完成的,LitePal的数据类型支持,可以进行对象关系映射的数据类型一共有8种,int、short、long、float、double、boolean、String和Date。只要是声明成这8种数据类型的字段都会被自动映射到数据库表中,并不需要其他的任何配置。
现在表已经建好,我们需要将表名在assets的litepal.xml中申明(写进去映射)
现在基本已经完成,现在只要你对数据库有任何的操作,news表就会被自动创建出来。比如说LitePal提供了一个便捷的方法来获取到SQLiteDatabase的实例,在onCreate中调用
SQLiteDatabase db = Connector.getDatabase();
这里初始化一下
public class myApplication extends LitePalApplication {
@Override
public void onCreate() {
super.onCreate();
LitePal.initialize(this);
}
}
此时news表就应该已经创建成功了。