1.简介
litepal是android开源数据库框架,采用对象关系映射的模式,不使用SQL语句就可完成数据库的操作。github主页:https://github.com/LitePalFramework/LitePal
2.Android Studio 配置Litepal
a.添加依赖
dependencies {
compile 'org.litepal.android:core:1.5.1'
}
b.新建litepal.xml文件
在app/src/main目录下新建一个assets目录,在assets目录下新建litepal.xml文件,接着编辑litepal.xml文件的内容。
<?xml version="1.0" encoding="utf-8" ?>
<litepal>
<dbname value="BookStore"></dbname>
<version value="2"></version>
<list>
<mapping class="com.example.jyj.myapplication.databaseModel.Book"></mapping>
<mapping class="com.example.jyj.myapplication.databaseModel.Animals"></mapping>
</list>
</litepal>
其中</dbname>标签用于指定数据库名称,</version>标签用于指定数据库版本号, <list>标签用于指定所有的映射类型。
c.配置application
在清单文件的<application 里面配置为:android:name="org.litepal.LitePalApplication".
如果你有自己的Application,则在Application的onCreat里面对数据库进行初始化
@Override
public void onCreate() {
super.onCreate();
LitePal.initialize(this);
}
3.使用
对象关系映射模式,用面向对象的思维来编辑数据库
我对书创建一个数据库:这是一个典型的Java bean,
继承DataSupport,是为了CRUD操作
public class Book extends DataSupport{
private String name;
private int price;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
}
我们要把Book类添加到映射模型当中,修改第二步的litepal.xml中的代码,
<mapping class="com.example.jyj.myapplication.databaseModel.Book"></mapping>
这里使用</mapping>标签来声明我们配置的映射模型类,注意一定要使用完整的类名。
不管有多少模型需要映射,使用</mapping>标签配置在 </list>标签下即可。
4.调用
创建数据库,只需要一个简单的语句就好
Connector.getDatabase();
往数据库里面添加数据
Book book=new Book();
book.setName("浮生六记");
book.setPrice(25);
book.save();
sava()方法是DataSupport类中继承而来的,能完成数据的添加操作。调用save()后,数据保存到数据库的表中。每个model类就是一张表
更新数据
book.updateAll("name = ? and price=?","秦时明月","30");
删除数据
DataSupport.deleteAll(Book.class,"price < ?","15");
Book.class用于指定哪张表,后面是限定条件
查询数据
List<Book> books=DataSupport.findAll(Book.class);
查询的结果放在list集合里面,可以随便操作了
其他查询方式
查询那几列?
List<Book> books=DataSupport.select("name","price").find(Book.class);
指定约束条件查询
List<Book> books=DataSupport.where("price > ?","20").find(Book.class);
查询降序排列,desc表示降序,不写或者asc表示升序
List<Book> books=DataSupport.order("price desc").find(Book.class);
指定查询数量
查找前3条
List<Book> books=DataSupport.limit(3).find(Book.class);
查询结果偏移量
查询3条,从第二条开始,如下是2.3.4条数据
List<Book> books=DataSupport.limit(3).offset(1).find(Book.class);
以上语法可以连缀
网友评论