AndroidUtils-litepal的使用

litepal的使用

1 第一步build.gradle里配置

compile 'org.litepal.android:core:1.3.2'

2 第二步Applation继承 LitePalApplication

public class MyApplation extends LitePalApplication

3 第三步需要保存的类需要继承 DataSupport:extends DataSupport

4 第四步在assets目录下的litepal.xml文件中的list标签下添加声明

保存例子:


DBSearchHistoryBean dbSearchHistoryBean = new DBSearchHistoryBean();
dbSearchHistoryBean.setSearchName(searchStr);
dbSearchHistoryBean.setSearchTime(new Date());
dbSearchHistoryBean.setType(pageType);
boolean isSaveSuccess = dbSearchHistoryBean.saveIfNotExist("type=? and searchName=?", pageType + "", searchStr);

删除例子:

    
DataSupport.deleteAll(DBSearchHistoryBean.class, "type=?", pageType + "");
    

litepal数据库框架的详细使用文档

  • 可以进行对象关系映射的数据类型一共有8种,int、short、long、float、double、boolean、String和Date。
  • 一,配置:
    1:需要保存的类需要继承 DataSupport:extends DataSupport
    2:在assets目录下的litepal.xml文件中的list标签下添加声明:
    注意这里一定要填入News类的完整类名

  • 二,基本操作:
    1:增

	News news = new News();
	news.setTitle("这是一条新闻标题");
	news.setContent("这是一条新闻内容");
	news.save();
        返回值Boolean类型,存储成功或者失败

    2:删
        删除数据
        调用DataSupport的静态方法delete()可删除指定id的单条记录:
	DataSupport.delete(Song.class, id);
        也可调用静态方法deleteAll()删除多条记录:
	DataSupport.deleteAll(Song.class, "song_name = ?" , "沉默是金");
        比如说我们想把news表中标题为“今日iPhone6发布”且评论数等于0的所有新闻都删除掉,就可以这样写:
	DataSupport.deleteAll(News.class, "title = ? and commentcount = ?", "今日iPhone6发布", "0");
        在不指定约束条件的情况下,deleteAll()方法就会删除表中所有的数据了。

    3:改

        返回值是修改影响
        比如把news表中id为2的记录的标题改成“今日iPhone6发布”,就可以这样写:
	News updateNews = new News();
	updateNews.setTitle("今日iPhone6发布");
	updateNews.update(2);
        那么如果我们想把news表中标题为“今日iPhone6发布”且评论数量大于0的所有新闻的标题改成“今日iPhone6 Plus发布”,就可以这样写:
	News updateNews = new News();
	updateNews.setTitle("今日iPhone6 Plus发布");
	updateNews.updateAll("title = ? and commentcount > ?", "今日iPhone6发布", "0");
    4:查

        查询news表中的所有数据:
	List<News> allNews = DataSupport.findAll(News.class);
        比如我们想查询news表中所有评论数大于零的新闻,就可以这样写:
	List<News> newsList = DataSupport.where("commentcount > ?", "0").find(News.class);
        但是这样会将news表中所有的列都查询出来,也许你并不需要那么多的数据,而是只要title和content这两列数据。那么也很简单,我们只要再增加一个连缀就行了,如下所示:
	List<News> newsList = DataSupport.select("title", "content").where("commentcount > ?", "0").find(News.class);
        我希望将查询出的新闻按照发布的时间倒序排列,即最新发布的新闻放在最前面,那就可以这样写:
	List<News> newsList = DataSupport.select("title", "content")
	.where("commentcount > ?", "0")
	.order("publishdate desc").find(News.class);
        只查询出前十条数据:.limit(10)
  • 三,项目常用数据库操作:

    增:
    
	news.save();//数据库保存News类
    删:
	DataSupport.deleteAll(Song.class, "song_name = ?" , "沉默是金");//数据库删除指定sql语句的Song对象
	DataSupport.deleteAll(Song.class);//数据库删除全部的Song表中的数据
    改:
	News updateNews = new News();
	updateNews.setTitle("今日iPhone6 Plus发布");
	updateNews.updateAll("title = ? and commentcount > ?", "今日iPhone6发布", "0");
        //数据库根据指定sql条件更改数据
    查:
	List<News> allNews = DataSupport.findAll(News.class); //查询news表中的所有数据
	List<News> newsList = DataSupport.where("commentcount > ?", "0").find(News.class); //根据指定条件查询news表中的数据

个人博客地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Crazy丶code

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值