DbUtils的使用

其实在网上有很多关于dbutils的使用方法,但是,我发现基本上很多都是一篇博客复制粘贴,有很多方法自己想要使用的根本要不到,实在让人很无奈,所以自己经历过这些之后,就把自己所遇到的一些问题放出来吧,不喜勿喷.

DbUtils是什么?

说起xUtils可能大家都不陌生吧!快速开发框架必备呀,它集成了网络请求,图片加载,ViewUtils模块还有一个模块,就是今天我们要说的DbUtils模块,它很好的集成了数据库的增删改查,不用我们自己去建表,也不用我们自己一句一句的去写查询语句,这简直就是福音呀!

DbUtils的使用
  1. 初始化数据库:
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //一般在onCreate的方法中初始化
private DbUtils db=db = DbUtils.create(this);//初始化数据库
    }
  1. 存储数据:
public class PublicMessageBean implements Serializable {
    private static final long serialVersionUID = 1L;
    //一定要添加的,要不然查询的时候取不出数据
    @Id
    public int id;
    public int messageType;
    public String urlLink;
    public String openId;
    public int isRead;
    public String type;
    public int cid;
    public int dataType;
    }

//pushBean就是一个javaBean
 db.save(pushBean);

看起来是不是特别简单,但是我告诉你,这个bean是千万不能嵌套(不能存在内部类),如果嵌套的话存进去之后内部类是读不出来的[注:数组也是读不出来的]因此必须把内部类给拿出来,可以进行JavaBean的重构或者不解析作为字符串存储.

  1. 读取数据:也就是数据库的查询
List<ClassAndCommunityMessageBean> list = db.findAll(Selector.from(ClassAndCommunityMessageBean.class).where("type", "=", "class").and("openId", "=", openid).orderBy("createdatetime", true));
findAll:查找全部
Selector.from:从xx查询
where:条件
and:与where并列的条件
orderBy:根据xx排序 
合起来这句话的意思就是:查找数据库中ClassAndCommunityMessageBean类中type="class"并且openId=openid,根据"createdatetime"字段的正序排列
ClassAndCommunityMessageBean classBean = db.findFirst(Selector.from(ClassAndCommunityMessageBean.class).where("type", "=", "class").and("openId", "=", openid).orderBy("createdatetime", true));
findFirst:查找第一个
这段代码和上面的类似,只是这段代码只是查找第一个而已
  1. 数据的更改
 ClassAndCommunityMessageBean messageBean = new ClassAndCommunityMessageBean();

 messageBean.isRead = 0;

db.update(messageBean, WhereBuilder.b("openId", "=", openid).and("type", "=", "community").and("isRead", ">", 0), "isRead");
update:更改
WhereBuilder:条件语句
and:与一个条件并列的条件语句
这句语句的意思就是:更改与messageBean类型相同的,并且openId=openid;type="community",并且"isRead"字段>0的,更改的是"isRead"字段,并且这个字段改为和messageBean.isRead的值相同.
理解起来会有点绕,但是它的语言就是这样....
  1. 删除
 try {
            db.deleteById(ClassAndCommunityMessageBean.class,message.id);
        } catch (DbException e) {
            e.printStackTrace();
        }

deleteById:根据id删除,还记得我们创建bean的时候为什么一定要加一个注解的id了么?这是每条数据的唯一标识呀!
当然除了这个删除还有
 db.delete(ClassAndCommunityMessageBean.class,WhereBuilder.b("openId", "=", openid).and("type", "=", "community").and("isRead", ">", 0));


delete:根据条件进行删除

或许上面的这些也不够齐全,因为它提供的方法确实比较多,因此我们知道常用的就行了,还有一些不怎么常用的就需要我们去看源码来理解他的原理,只有知道了它是如何实现的,我们才能用的更加顺手

注:DbUtils本身也是一个单例模式,因此不要随手就close了哦,会报错的哦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值