Android数据库——LitePal

一,快速配置
1,引入Jar包或源码
首先我们需要将LitePal的jar包引入到项目当中,可以点击这里查看LitePal的最新版本

dependencies {
    compile 'org.litepal.android:core:1.3.1'
}

2, 配置litepal.xml
在项目的assets目录下面新建一个litepal.xml文件

<?xml version="1.0" encoding="utf-8"?>
<litepal>

    <dbname value="demo" ></dbname>


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


    <list>
          <mapping class="com.test.model.Reader"></mapping>
          <mapping class="com.test.model.Magazine"></mapping>
    </list>

 </litepal>

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

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

如果有自己的Application,继承它就行了。

二,建表

public class News extends DataSupport{
    private int id;
    private String title;
    private String content;

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

其中id这个字段可写可不写,因为即使不写这个字段,LitePal也会在表中自动生成一个id列,毕竟每张表都一定要有主键的嘛。
根据LitePal的数据类型支持,可以进行对象关系映射的数据类型一共有8种,int、short、long、float、double、boolean、String和Date。只要是声明成这8种数据类型的字段都会被自动映射到数据库表中,并不需要进行任何额外的配置。
如果News类中有一个字符串字段我并不想让它映射到数据库表中,这该怎么办呢?对此,LitePal同样采用了一种极为轻量的解决方案,只有声明成private修饰符的字段才会被映射到数据库表中,如果你有某一个字段不想映射的话,只需要将它改成public、protected或default修饰符就可以了。

然后编辑litepal文件

<litepal>
    <dbname value="demo"></dbname>
    <version value="1"></version>
    <list>
        <mapping class="com.app.liulongbing.green.News"></mapping>
    </list>
</litepal>

三,存储

private void add() {
        News news = new News();
        news.setTitle("test");
        news.setContent("1234");
        news.save();
    }

四,查询数据
查询news表中id为1的这条记录

News news= DataSupport.find(News.class,1);

获取news表中的第一条数据或者最后一条数据:

News news= DataSupport.findFirst(News.class);

News news= DataSupport.findLast(News.class);

查询所有的

List<News> allNews=DataSupport.findAll(News.class);

连缀查询

List<News> newsList = DataSupport.select("title", "content")  
        .where("commentcount > ?", "0")  
        .order("publishdate desc").limit(10).offset(10)  
        .find(News.class); 

五,修改数据
修改id为1的

News news=new News();
news.setTitle("上海");
news.update(1);

将title=上海的所有新闻全部改掉

News news=new News();
news.setTitle("上海今天下雨");
news.updateAll("title=?","上海");

六,删除数据
删除id为1的

DataSupport.delete(News.class,1);

删除title为**的所有新闻

DataSupport.deleteAll(News.class, "title = ?", "**");
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值