Android xUtils框架(一) DbUtils

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

需要的权限

"android.permission.INTERNET"/>

"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 NULLParent Parent = db.findFirst(Selector.from(Parent.class).where("name","=", null));// IS NOT NULLParent 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 pageOffsetList<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…

db相关类库结构:

com.lidroid.xutils.db.annotationCheck.javaColumn.javaFinder.javaForeign.javaId.javaNoAutoIncrement.javaNotNull.javaTable.javaTransient.javaUnique.javacom.lidroid.xutils.db.converterBooleanColumnConverter.javaByteArrayColumnConverter.javaByteColumnConverter.javaCharColumnConverter.javaColumnConverter.javaColumnConverterFactory.javaDateColumnConverter.javaDoubleColumnConverter.javaFloatColumnConverter.javaIntegerColumnConverter.javaLongColumnConverter.javaShortColumnConverter.javaSqlDateColumnConverter.javaStringColumnConverter.javacom.lidroid.xutils.db.sqliteColumnDbType.javaCursorUtils.javaDbModelSelector.javaFinderLazyLoader.javaForeignLazyLoader.javaSelector.javaSqlInfo.javaSqlInfoBuilder.javaWhereBuilder.javacom.lidroid.xutils.db.tableColumn.javaColumnUtils.javaDbModel.javaFinder.javaForeign.javaId.javaKeyValue.javaTable.javaTableUtils.java

收敛自己的脾气,偶尔要刻意沉默,

Android xUtils框架(一) DbUtils

相关文章:

你感兴趣的文章:

标签云: