美文网首页
数据库LitePal

数据库LitePal

作者: 若兮生生 | 来源:发表于2017-05-19 15:54 被阅读113次

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);

以上语法可以连缀

相关文章

网友评论

      本文标题:数据库LitePal

      本文链接:https://www.haomeiwen.com/subject/npyyxxtx.html