安卓数据存储之LitePal框架操作数据库

概念: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);


猜你喜欢

转载自blog.csdn.net/qq_41105058/article/details/79939557