1.LitePal简介
LitePal是一款开源的Android数据库框架,它采用了对象关系映射(ORM)的模式,并将我们平时开发最常用到的一些数据库功能进行了封装,使得不用编写一行SQL语句就可以完成各种建表和增删改查的操作,LitePal的项目主页上也有详细的使用文档,地址是:http://github.com/LitePalFramework/LitePal
2.配置LitePal
要使用LitePal,第一步就是编辑app/build.gradle文件,在dependencies闭包中添加如下内容:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:25.3.1'
testCompile 'junit:junit:4.12'
compile 'org.litepal.android:core:1.3.2'
}
添加的这一行声明中,前面的部分是固定的,最后的1.3.2是版本号的意思,最新的版本号可以到LitePal的项目主页上去查看
这样我们就把LitePal成功引入到当前的项目中了,然后配置litepal.xml文件,右击app/src/main目录–New–Directory,创建一个assets目录,然后在assets目录下再新建一个litepal.xml文件,然后编辑
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="BookStore" ></dbname>
<version value="1" ></version>
<list>
</list>
</litepal>
其中dbname标签用于指定数据库名,version标签用于指定数据库版本号,list标签用于指定所有的映射模型
最后还需要在配置一下LitePalApplication,修改AndroidManifest.xml中的代码
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.litepaltest">
<application
android:name="org.litepal.LitePalApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
...
</application>
</manifest>
这里将项目的application配置为org.litepal.LitePalApplication,这样才能让LitePal的所有功能都可以正常工作.
现在LitePal的配置工作已经全部结束,下面就是如何使用
3.创建和升级数据库
LitePal采用的是对象关系映射(ORM)的模式,那么什么是关系映射,简单的说,我们使用的编程语言是面向对象语言,而使用的数据库则是关系型数据库,那么将面向对象的语言和面向关系的数据库之间建立一种映射关系,这就是对象关系映射了.
对象关系映射模式,就是可以用面向对象的思维来操作数据库,而不用再和SQL语句打交道,比如,为了创建一张Book表,需要先分析表中应该包含那些列,然后再编写出一条建表语句,最后在自定义SQLiteOpenHelper中执行这条建表语句,但是使用LitePal,你就可以用面向对象的思维来实现同样的功能,定义一个Book类,代码如下:
public class Book {
private int id;
private String author;
private double price;
private int pages;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getPages() {
return pages;
}
public void setPages(