LitePal简单用法

 

简单介绍一下LitePal:

LitePal是一款开源的Android数据库框架,采用了对象关系映射(ORM)的模式,将平时开发时最常用的一些数据库功能进行了封装,使得开发者不用编写一行SQL语句就可以完成各种建表、増删改查的操作。并且LitePal很“轻”,jar包大小不到100k,而且近乎零配置,这一点和Hibernate这类的框架有很大区别。目前LitePal的源码已经托管到了GitHub上。

1、准备需要的JAR包 这里下载

下载好了jar包之后,复制到项目的libs目录中然后引用

当然如果不想用jar包的话,也可以把LitePal的源码下载下来,然后作为一个library库导入到项目当中,再引用这个library库就可以了。

这里我使用的事JAR包进行介绍

2、设置litepal.xml文件,这里比较重要

首先我们需要建一个assets文件夹,这个文件夹和java文件平级

其次在assets文件下新建一个litepal.xml,为了快速可以直接copy一个进去

<?xml version="1.0" encoding="utf-8"?> 
<litepal> 
    <dbname value="demo" ></dbname> 库名称
   
    <version value="1" ></version> 库版本,可升级
   
    <list> 
这里是添加表名,后面讲
    </list> 
</litepal> 

<dbname>用于设定数据库的名字,<version>用于设定数据库的版本号,<list>用于设定所有的映射模型

3、需要配置Application

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

可能有些程序可能会有自己的Application,并在这里配置过了,那么我们就用其他办法解决,那就只需要修改一下myApplication的继承结构,让它不要直接继承Application类,而是继承我们定义的LitePalApplication类

到了这里我们的准备工作已经做完了,接下来我们就可以开始建表了

4、根据对象关系映射模式的理念,每一张表都应该对应一个模型(Model),也就是说,如果我们想要建一张news表,就应该有一个对应的News模型类。新建一个News类,LitePal要求所有的实体类都要继承自DataSupport这个类

public class News extends DataSupport {
//id这个字段可写可不写,因为即使不写这个字段,LitePal也会在表中自动生成一个id列,毕竟每张表都一定要有主键的
    private int id;

    private String title;

    private String content;

    private Date publishDate;

    private int commentCount;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public Date getPublishDate() {
        return publishDate;
    }

    public void setPublishDate(Date publishDate) {
        this.publishDate = publishDate;
    }

    public int getCommentCount() {
        return commentCount;
    }

    public void setCommentCount(int commentCount) {
        this.commentCount = commentCount;
    }
}

LitePal的映射规则是非常轻量级的,不像一些其它的数据库框架,需要为每个模型类单独配置一个映射关系的XML,LitePal的所有映射都是自动完成的,LitePal的数据类型支持,可以进行对象关系映射的数据类型一共有8种,int、short、long、float、double、boolean、String和Date。只要是声明成这8种数据类型的字段都会被自动映射到数据库表中,并不需要其他的任何配置。

现在表已经建好,我们需要将表名在assets的litepal.xml中申明(写进去映射)

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

    <!--表-->
    <list>
        <mapping class="com.example.administrator.mylitepal.News"></mapping>
    </list>
</litepal>

现在基本已经完成,现在只要你对数据库有任何的操作,news表就会被自动创建出来。比如说LitePal提供了一个便捷的方法来获取到SQLiteDatabase的实例,在onCreate中调用

SQLiteDatabase db = Connector.getDatabase();

这里初始化一下

public class myApplication extends LitePalApplication {
    @Override
    public void onCreate() {
        super.onCreate();
        LitePal.initialize(this);
    }
}

此时news表就应该已经创建成功了。

LitePal存储

LitePal数据存储

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值