LitePal开源项目地址:https://github.com/LitePalFramework/LitePal
1. 什么是LitePal:
百度百科这么说的,LitePal是一款开源的Android数据库框架,采用了对象关系映射(ORM)的模式,将平时开发时最常用的一些数据库功能进行了封装,使得开发者不用编写一行SQL语句就可以完成各种建表、増删改查的操作。并且LitePal很“轻”,jar包大小不到100k,而且近乎零配置,这一点和Hibernate这类的框架有很大区别。目前LitePal的源码已经托管到了GitHub上。
2. 配置LitePal
配置LitePal虽然稍微麻烦了点,但是这是一本万利的买卖,配置成功,就可以体检极其便利的数据库操作。
LitePal的Github地址在这里下载jar包引入项目中
编辑gradle.build文件,添加以下代码
dependencies {
compile 'org.litepal.android:core:1.3.1'
}
<litepal>
<dbname value="demo" >dbname>
<version value="1" >version>
<list>
list>
litepal>
"org.litepal.LitePalApplication"
...
>
...
但是一般的项目我们一般已经配置过Application来获取全局对象了,例如:
"com.example.MyOwnApplication"
...
>
...
不要心慌,不要着急,而且还有有些程序可能会遇到一些更加极端的情况,比如说MyApplication需要继承另外一个AnotherApplication,并且这个AnotherApplication还是在jar包当中的,不能修改它的代码。这种情况应该算是比较少见了,但是如果你遇到了的话也不用急,我们可以调用LitePalApplication.initialize(context) 方法即可
public class MyOwnApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
LitePalApplication.initialize(this);
}
...
}
3. 开始使用LitePal
我们来建立两个表,一个Album一个Song,get和set方法自己添加即可,主要用于后面的数据的操作
package com.example.kevin.learnsqlite.model;
import org.litepal.annotation.Column;
import org.litepal.crud.DataSupport;
import java.util.ArrayList;
import java.util.List;
/**
* 作者:Created by Kevin on 2016/3/9.
* 邮箱:[email protected]
* 描述:
*/
public class Album extends DataSupport {
@Column(unique = true, defaultValue = "unknown")
private String name;
private float price;
private byte[] cover;
private List songs = new ArrayList();
}
package com.example.kevin.learnsqlite.model;
import org.litepal.annotation.Column;
import org.litepal.crud.DataSupport;
/**
* 作者:Created by Kevin on 2016/3/9.
* 邮箱:[email protected]
* 描述:
*/
public class Song extends DataSupport {
@Column(nullable = false)
private String name;
private int duration;
@Column(ignore = true)
private String uselessField;
private Album album;
}
最后一步,就是将它配置到映射列表当中。编辑assets目录下的litepal.xml文件,在标签中加入Album和Song模型类的声明:(记得修改为自己的包名)
<list>
<mapping class="com.example.kevin.learnsqlite.model.Album">mapping>
<mapping class="com.example.kevin.learnsqlite.model.Song">mapping>
list>
所有工作做完,只需要在获取SQLiteDatabase的实例即可,SQLiteDatabase db = Connector.getDatabase();
导出后看到数据库已经创建成功,这就是对象关系映射(ORM),是不是很直观。
private Date releaseDate;
public class Album extends DataSupport {
@Column(unique = true, defaultValue = "unknown")
private String name;
private float price;
private Date releaseDate;
private byte[] cover;
private List songs = new ArrayList();
}
然后将litepal.xml文件中的版本号改为2即可。
Android数据库SQLite操作详解及LitePal用法详解(四)
接下来继续学习使用LitePal进行数据库的操作