[置顶] Android xUtils框架(一) DbUtils
2015-03-05 18:41
183 查看
框架地址: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 唯一约束
一些常用方法
db相关类库结构:
需要的权限
<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)")); ... //例:分组聚合查询出 Parent表中 非重复的name和它的对应数量 List<DbModel> dbModels = db.findDbModelAll(Selector.form(Parent.class).select("distinct name,count(name) as num").groupBy("name")); db.execNonQuery("sql") // 执行自定义sql ...
db相关类库结构:
com.lidroid.xutils.db.annotation Check.java Column.java Finder.java Foreign.java Id.java NoAutoIncrement.java NotNull.java Table.java Transient.java Unique.java com.lidroid.xutils.db.converter BooleanColumnConverter.java ByteArrayColumnConverter.java ByteColumnConverter.java CharColumnConverter.java ColumnConverter.java ColumnConverterFactory.java DateColumnConverter.java DoubleColumnConverter.java FloatColumnConverter.java IntegerColumnConverter.java LongColumnConverter.java ShortColumnConverter.java SqlDateColumnConverter.java StringColumnConverter.java com.lidroid.xutils.db.sqlite ColumnDbType.java CursorUtils.java DbModelSelector.java FinderLazyLoader.java ForeignLazyLoader.java Selector.java SqlInfo.java SqlInfoBuilder.java WhereBuilder.java com.lidroid.xutils.db.table Column.java ColumnUtils.java DbModel.java Finder.java Foreign.java Id.java KeyValue.java Table.java TableUtils.java
相关文章推荐
- android高级框架xUtils之DbUtils
- Android xUtils框架(一) DbUtils
- Android xUtils框架(一) DbUtils
- Android Xutils框架使用之DBUtils
- Android:开源框架xutils介绍之 DbUtils
- android开发步步为营之109:好框架推荐android xutils之dbutils
- Android高级之xUtils框架(四):DBUtils的用法
- Android高级之xUtils框架(四):DBUtils的用法
- Android开发框架xUtils3.x新手教学(一)SQLite数据库访问神器dBUtils
- [置顶] Android xUtils框架(二) ViewUtils
- Android最火的快速开发框架XUtils
- Android Xutils 开发框架
- [置顶] Android Afinal框架学习(一) FinalDb 数据库操作
- Android开发框架xUtils
- Android 最火框架XUtils之注解机制详解
- android快速开发框架xUtils
- Android 最火的快速开发框架XUtils
- Android 最火的快速开发框架XUtils
- 最近比较火的框架Android Xutils 框架
- Android 最火的快速开发框架XUtils