【android LitePal框架的用法】

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/da_caoyuan/article/details/61200571

下面讲述一下 LitePal 数据库的用法。

一:基本使用

1.数据库的配置

首先添加一个依赖:

 dependencies {
        ......
    compile 'org.litepal.android:core:1.5.1'

}

然后如下图一样,创建出红框中的目录:

这里写图片描述

在 litepal.xml 中完成如下配置:

<?xml version="1.0" encoding="utf-8" ?>
<litepal>
    <dbname value="BookStore"></dbname>   <!-- 数据库的名字 -->
    <version value="1"></version>  <!-- 数据库的版本号 -->

    <list>
        <!-- 配置数据库中相应的表,暂时不写 -->

    </list>
</litepal>

最后, 配置LitePalApplication。由于操作数据库时需要用到Context,而我们显然不希望在每个接口中都去传一遍这个参数,那样操作数据库就显得太繁琐了。因此,LitePal使用了一个方法来简化掉Context这个参数,只需要在AndroidManifest.xml中配置一下LitePalApplication,所有的数据库操作就都不用再传Context了,如下所示:

<manifest>  
    <application  
        android:name="org.litepal.LitePalApplication"  
        ...  
    >  
    ...  
    </application>  
</manifest>  

有些程序可能会有自己的Application,这时只需要修改一下MyApplication的继承结构,让它不要直接继承Application类,而是继承LitePalApplication类,就可以使用一切都能正常工作了。

2.创建表

那么接下来我们就看一看LitePal中是如何建表的吧。根据对象关系映射模式的理念,每一张表都应该对应一个模型(Model),也就是说,如果我们想要建一张book表,就应该有一个对应的Book模型类。新建一个Book类,如下所示:

public class Book extends DataSupport{

    private int id;

    private String author;

    private double price;

    private int pages;

    private String name;

    private String press;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
    ...... 生成相应的set,get方法。

现在模型类已经建好了,我们还差最后一步,就是将它配置到映射列表当中。编辑assets目录下的litepal.xml文件,在标签中加入Book模型类的声明:

<?xml version="1.0" encoding="utf-8" ?>
<litepal>
    <dbname value="BookStore"></dbname>
    <version value="1"></version>
    <list>
        <mapping class="com.everyoo.bean.Book"></mapping><!-- 配置Book模型类,这里是Book 类的路径 -->

    </list>
</litepal>

好,目前基本上已经差不多了。调用一下面的方法,book表就应该已经创建成功了。

SQLiteDatabase db = Connector.getDatabase();  

个人测试发现,该方法最好放在子线程中去执行。因为当我在UI线程中执行时,发现会报类似于这样的信息‘在主线程做了太对的工作’。而且感觉我的UI操作,有不到1s的卡顿情况。

3.插入数据

4.删除数据

5.更新数据

二:数据库的升级处理

关于数据库的升级处理,LitePal框架做的还是比较好的。

三:LitePal 的多数据操作

细心的人会发现,以上的操作,都是在一个数据库中的。自 LitePal 的1.4.0版本之后,才支持创建多个数据库的功能。


参考博客:

郭林的博客:
http://blog.csdn.net/sinyu890807/article/category/2522725

框架git地址

没有更多推荐了,返回首页