概念:LitePal是一款开源的Android数据库框架,它采用了对象关系映射(ORM)的模式。并将我们平时开发最常用到的一些数据库功能进行了封装。LitePal详细使用文档:https://github.com/LitePalFramework.
1、配置LitePal
编辑app/build.gradle文件
在dependencies闭包中添加如下内容
dependencies{
……
compile 'org.litepal.android:core:1.4.1'
}
配置litepal.xml文件。
右击app/src/main目录→New→Directory,创建一个assets目录,然后在assets目录下在新建一个litepal.xml文件,接着编辑litepal文件的内容。
如下所示:
<?xml version="1.0" encoding="utf-8?> <litepal> <dbname value="BookStore"></dbname> <version value="1"></version> <list> </list> </litepal>
其中<dbname>标签用于指定数据库名,<version>标签用于指定数据库版本号,<list>标签用于指定所有的映射模型。
配置AndroidManifest.xml的代码,如下所示。
将
android:name="org.litepal.LitepalApplication"
2、创建和升级数据库
1)创建表
譬如我们要创建一个关于Book的表
首先创建相应的类
public class Book extends DataSupport{ //以便使用litepal的各种操作 private int id;
public int getId(){ return id; } public String getAuthor(){ return author; } public void setId(int id){ this.id=id; } public void setAuthor(String author){ this.author=author; } }
上述代码是一个典型的Java Bean。
接下还需要将表
添加到映射模型列表当中
在litepal.xml的list标签内添加
<mapping class="com.example.litepaltest.Book"></mapping>
数据库的创建
只要进行任何一次数据库操作BookStore.db
数据库应该就会自动创建出来。
备注:如果想要更新数据库只要在litepal.xml下将version版本加1即可完成更新。
3、LitePal下的各种数据库操作。
添加数据操作
还是用前面的Book做例子
private String author;
Book book=new Book(); book.setId=1; book.setAuthor("god"); book.save();
更新数据
book.setAuthor("human"); book.updateAll("id=?",1);
设置初始值
book.setToDefault("author");//""内填写要设置初始值的字段
删除数据
1、调用对象的delete();
2、
DataSupport.delteAll(Book.class,"id<?","10");
查询数据
List<Book> books=DataSupport.findAll(Book.class);
这个语句将所有的Book对象提取存储在线性表中。
可以通过对线性表的访问获取数据。
查询第一条数据和最后一条数据
Book firstBook=DataSupport.findFirst(Book.class); Book lastBook=DataSupport.findLast(Book.class);
select()用于指定查询哪几列的数据
List<Book> books=DataSupport.select("author").find(Book.class);
where()方法用于指定查询的约束条件。
order()方法用于指定结果的排序方式 desc降序 asc或者不写表示升序排列。
limit()用于指定查询结果的数量。前x条。
offset()方法用于指定查询结果的偏移量在limit()的基础上+n; 例如你想查前x条 用了offset(1)就变成 1+1(2)到(x+1)的数据了。
五条语句的综合使用实例;
List<Book> books =DataSupport.select("id").where("id>?","20").order("id desc").limit(1).offset(5).find(Book.class);