LitePal

Posted mystic

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LitePal相关的知识,希望对你有一定的参考价值。

 

 

Litepal采用的是对象关系映射(ORM)模式
 
LitePal的配置工作。
1.添加依赖 
compile \'org.litepal.android:core:1.3.2\'

2.配置litepal.xml文件  在src/main创建assets目录 然后在目录下创建一个litepal.xml文件

<?xml version="1.0" encoding="utf-8"?>
<litepal>
    <dbname value="BookStore"></dbname>

    <version value="1"></version>

    <list></list>

    <!--dbname标签用于指定数据库名
    version用于指定数据库版本号
    list标签用于指定所有的映射模型-->
</litepal>

3.配置LitepalApplication 修改AndroidManifest中的代码

<application
        android:name="org.litepal.LitePalApplication"

创建和升级数据库

创建:

1.写一个java bean
2.将写的java bean 的类添加到影射模型列表中
修改litepal.xml里的list标签
<list>
    <mapping class="co.example.leo.litepal.Book"></mapping>
    <!--使用mapping标签声明我们要配置的映射模型类,一定要使用完整的类名-->
</list>
3.调用创建数据库
Connector.getDatabase();    

升级:

如果想要添加一个列 只需直接修改Book类中代码 添加一个字段即可
如果需要添加一个表 只需新建一个java bean 然后将版本号加1 并将类添加到映射模型列表中
 
Litepal 添加数据
Litepal进行表管理的操作时不需要模型类有任何的继承结构,但进行CRUD的时候,必须要继承自DataSupport类才可以
1、让模型类继承自DataSupport 
2. 设置数据 调用save方法
Button addData = (Button)findViewById(R.id.add_data);
    addData.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Book book = new Book();
            book.setName("The Da Vinci Code");
            book.setAuthor("Dan Brown");
            book.setPages(454);
            book.setPrice(16.96);
            book.setPress("Unknow");
            book.save();
        }
    });

Litepal 更新数据

最简单的一种更新方式就是对已经存储的对象重新设值 然后重新调用save()方法即可
已存储的对象: 对象是否以存储就是根据调用model.isSaved()方法的结果来进行判断即可,返回true表示已存储,false表示未存储 
一种情况是已经调用过modle.save()方法去添加数据了
另一种情况是model对象是通过Litepal提供的查询API查出来的
这两种情况都会返回true
 1 Button updateData = (Button)findViewById(R.id.update_data);
 2     updateData.setOnClickListener(new View.OnClickListener() {
 3         @Override
 4         public void onClick(View v) {
 5             Book book = new Book();
 6             book.setName("The Da Vinci Code");
 7             book.setAuthor("Dan Brown");
 8             book.setPages(454);
 9             book.setPrice(16.96);
10             book.save();
11             book.setPages(124);
12             book.save();
13         }
14     });
显示添加了一条Book数据 
然后调用setPages对书的页数进行了修改,之后再次调用save方法。
第二种方式
public void onClick(View v) {
        Book book = new Book();
        book.setPages(123);
        book.updateAll("name = ?","The Da Vinci Code");
    }
 
设置默认值
Book book = new Book()
book.setDefault("pages");
book.updateAll();

 

删除数据

    //第一个参数用于指定删除那张表的数据 后面的参数用于指定约束条件
    DataSupport.deleteAll(Book.class,"price < ?","15");

查询数据

List<Book> books = DataSupport.findAll(Book.class);
for(Book book : books){
   
}

Litepal的其他查询API

 

 

 

 

 

以上是关于LitePal的主要内容,如果未能解决你的问题,请参考以下文章

Litepal开源数据库ORM框架

LitePal

使用LitePal建立表关联

Android配置LitePal

LitePal遇到的坑

LitePal遇到的坑