Android xUtils框架(一)DbUtils

转载 2015年07月09日 13:46:29

框架地址:https://github.com/wyouflf/xUtils


需要的权限

<uses-permissionandroid:name="android.permission.INTERNET"/>

    <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>


创建数据库

  DaoConfig config = new DaoConfig(context);

  config.setDbName("xUtils-demo"); //db名

  config.setDbVersion(1);  //db版本

  DbUtils db = DbUtils.create(config);//db还有其他的一些构造方法,比如含有更新表版本的监听器的


创建表

  db.createTableIfNotExist(User.class); //创建一个表User

    db.save(user);//在表中保存一个user对象。最初执行保存动作时,也会创建User表


删除表

  db.dropTable(User.class); 


开启事务

  db.configAllowTransaction(true);


db相关Annotation

  @Check    check约束
  @Column   列名
  @Finder   一对多、多对一、多对多关系(见sample的Parent、Child中的使用)
  @Foreign  外键
  @Id       主键,当为int类型时,默认自增。 非自增时,需要设置id的值
  @NoAutoIncrement  不自增
  @NotNull  不为空
  @Table    表名
  @Transient  不写入数据库表结构
  @Unique   唯一约束


一些常用方法

DbUtils db = DbUtils.create(this);
User user = new User(); //这里需要注意的是User对象必须有id属性,或者有通过@ID注解的属性
user.setEmail("wyouflf@qq.com");
user.setName("wyouflf");
db.save(user); // 使用saveBindingId保存实体时会为实体的id赋值

...
// 查找
Parent entity = db.findById(Parent.class, parent.getId());
List<Parent> list = db.findAll(Parent.class);//通过类型查找

Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","=","test"));

// IS NULL
Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","=", null));
// IS NOT NULL
Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","!=", null));

// WHERE id<54 AND (age>20 OR age<30) ORDER BY id LIMIT pageSize OFFSET pageOffset
List<Parent> list = db.findAll(Selector.from(Parent.class)
                                   .where("id" ,"<", 54)
                                   .and(WhereBuilder.b("age", ">", 20).or("age", " < ", 30))
                                   .orderBy("id")
                                   .limit(pageSize)
                                   .offset(pageSize * pageIndex));

// op为"in"时,最后一个参数必须是数组或Iterable的实现类(例如List等)
Parent test = db.findFirst(Selector.from(Parent.class).where("id", "in", new int[]{1, 2, 3}));
// op为"between"时,最后一个参数必须是数组或Iterable的实现类(例如List等)
Parent test = db.findFirst(Selector.from(Parent.class).where("id", "between", new String[]{"1", "5"}));

DbModel dbModel = db.findDbModelAll(Selector.from(Parent.class).select("name"));//select("name")只取出name列
List<DbModel> dbModels = db.findDbModelAll(Selector.from(Parent.class).groupBy("name").select("name", "count(name)"));
...

List<DbModel> dbModels = db.findDbModelAll(sql); // 自定义sql查询
db.execNonQuery(sql) // 执行自定义sql

xutils中dbutils的基础使用详解

主要是讲xutils下的dbutils的基础详细总结出来,感觉之前自己找不到什么资料。...
  • z358247505
  • z358247505
  • 2015年05月25日 18:38
  • 4880

xUtils DButils的详细用法

看了许多博客,都不是我想要的,我自己总结一下吧,,, 步骤 1.创建实体类 2.在实体类中添加注解(注意必须有@Id) 3.在activity中,配置属性,创建实例 4,,进一步增,删,改,查 //...
  • mxiaoyem
  • mxiaoyem
  • 2016年01月15日 10:24
  • 1280

xUtils系列之DbUtils-增,删,更新,替换操作

DbUtils实现了很方便的数据操作,基本一行代码就能搞定,所以实在是没啥写的,姑且贴下相关代码,方便之后查看. 增: public void save(Object entity) thro...
  • androidresearch
  • androidresearch
  • 2015年05月14日 00:09
  • 4209

xUtils系列之DbUtils-查询

其实DbUtils的代码已经很清楚了,所以举个例子 来描述具体用法. 首先,建立一个实体类Person: package com.example.entities; import com.lid...
  • androidresearch
  • androidresearch
  • 2015年05月24日 14:39
  • 3307

Android开发框架xUtils3.x新手教学(一)SQLite数据库访问神器dBUtils

废话不说,想把大象装冰箱,总共分几步? 零、假设一个需求 设计一个App,保存学生以及他们的考试成绩。学号是学生们的唯一身份标示,成绩分为数学 语文 英语 三类 要求: 1,添加 删除 查询学生 2,...
  • xujiayin
  • xujiayin
  • 2016年06月16日 14:47
  • 1574

xUtils系列之DbUtils-保存自定义类型

在DbUtils中,只支持4中数据类型: public enum ColumnDbType { INTEGER("INTEGER"), REAL("REAL"), TEXT("TEXT")...
  • androidresearch
  • androidresearch
  • 2015年05月13日 23:43
  • 1720

xUtils中的dbUtils中,在应用升级的时候修改表结构

我们在做数据缓存的时候经常用到数据库,数据库在进行存储的时候特别灵活也比较简单。虽然好用,但是存在一个问题,就是我们的应用在进行迭代的时候可能随着需求的变化,我们需要对表结构进行修改(一般是添加字段)...
  • u013320868
  • u013320868
  • 2016年04月19日 23:17
  • 2014

xUtils DbUtils 关于实体类注解 汇总

先来官方demo DbUtils db = DbUtils.create(this);      User user = new User(); //这里需要注意的是User对象必须有id属性,或者...
  • wjyyxzzjnws
  • wjyyxzzjnws
  • 2015年03月26日 16:20
  • 1763

利用Xutils框架进行断点续传下载

前面有两篇博文主要介绍了如何利用volley获取所有cookie信息和自定义一个request, 地址如下: Volley 添加Cookie和获取服务器返回的一条或多条Cookie 继承Volley...
  • qiang_xi
  • qiang_xi
  • 2016年02月16日 17:06
  • 7240

Xutils框架中关于DbUtils的使用

在安卓开发中,常用的数据存储方式无外乎网络存储、内存存储、file存储,而网络存储必须依赖网络,内存存储在app关闭后则荡然无存,为了更好的应对需求,持久化数据,此时我们只能选择file存储,而fil...
  • qq_33833831
  • qq_33833831
  • 2017年03月13日 10:45
  • 206
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android xUtils框架(一)DbUtils
举报原因:
原因补充:

(最多只允许输入30个字)