DbUtils的使用

来源:互联网 发布:软件打不开的原因 编辑:程序博客网 时间:2024/06/05 16:27

其实在网上有很多关于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
原创粉丝点击