xUtils中用DbUtils,ViewUtils的用法
一、有关xUtils的简介
xUtils 包含了很多实用的android工具。
xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词),
拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...
xUitls最低兼容android 2.2 (api level 8)
二、总共包含4个功能模块:
(1)DbUtils模块:
android中的orm框架,一行代码就可以进行增删改查;
支持事务,默认关闭;
可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约束,CHECK约束等(需要混淆的时候请注解表名和列名);
支持绑定外键,保存实体时外键关联实体自动保存或更新;
自动加载外键关联实体,支持延时加载;
支持链式表达查询,更直观的查询语义,参考下面的介绍或sample中的例子。
(2)ViewUtils模块
android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定;
新的事件绑定方式,使用混淆工具混淆后仍可正常工作;
目前支持常用的20种事件绑定,参见ViewCommonEventListener类和包com.lidroid.xutils.view.annotation.event。
(3)HttpUtils模块:
支持同步,异步方式的请求;
支持大文件上传,上传大文件不会oom;
支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT请求;
下载支持301/302重定向,支持设置是否根据Content-Disposition重命名下载的文件;
返回文本内容的请求(默认只启用了GET请求)支持缓存,可设置默认过期时间和针对当前请求的过期时间。
(4)BitmapUtils模块:
加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;
支持加载网络图片和本地图片;
内存管理使用lru算法,更好的管理bitmap内存;
可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等...
三、我目前使用的:
(1)ViewUtils
@ViewInject(R.id.id_name_input)
private EditText nameText;
在onCreate()方法添加:
ViewUtils.inject(this);
减少了很大一部分findViewById操作
(2)DbUtils操作
1)需要的权限
<uses-permissionandroid:name="android.permission.INTERNET"/>
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2)创建数据库
DaoConfig config = new DaoConfig(context);
//数据库的名字
config.setDbName("xUtils-demo");
//版本号
config.setDbVersion(1);
//db还有其他的一些构造方法,比如含有更新表版本的监听器的
DbUtils db = DbUtils.create(config);
3)创建表
//创建一个表Student
db.createTableIfNotExist(Student.class);
//在表中保存一个student对象。最初执行保存动作时,也会创建Student表
db.save(student);
4)删除表
db.dropTable(Student.class);
5)开启事务
db.configAllowTransaction(true);
6)db相关Annotation
@Check check约束
@Column 列名
@Finder 一对多、多对一、多对多关系(见sample的Parent、Child中的使用)
@Foreign 外键
@Id 主键,当为int类型时,默认自增。 非自增时,需要设置id的值
@NoAutoIncrement 不自增
@NotNull 不为空
@Table 表名
@Transient 不写入数据库表结构
@Unique 唯一约束
(3)常见数据库操作
1)查询
DbUtils db = DbUtils.create(this);
List<Grade> stus = db.findAll(Selector.from(Grade.class).where("class_name", "=", ""));
List<Student>list = db.findAll(Selector.from(Student.class)
.where("id","<", 34)
.and(WhereBuilder.b("age",">", 15).or("age", " < ", 20))
.orderBy("id")
.limit(pageSize)
.offset(pageSize* pageIndex));
Studenttest = db.findFirst(Selector.from(Student.class).where("id","in", new int[]{1, 2, 3}));
Studenttest = db.findFirst(Selector.from(Student.class).where("id","between", new String[]{"2", "5"}));
DbModeldbModel =db.findDbModelAll(Selector.from(Student.class).select("name"));//select("name")只取出name列
List<DbModel>dbModels =db.findDbModelAll(Selector.from(Student.class).groupBy("name").select("name","count(name)"));
2)自定义查询(常用到的链接查询可以这样写)
SqlInfo sqlInfo = new SqlInfo();
sqlInfo.setSql("select * from tbl_Student a,tbl_class b where a.stu_class_id = b.id and a.id > ?");
sqlInfo.addBindArg(2);
List<DbModel> StudentByInfo = db.findDbModelAll(sqlInfo);
3)删除,包含三种方法:删除list集合,根据Id删除,删除一个对象
List<Grade> stus = db.findAll(Selector.from(Grade.class).where("class_name", "=", ""));
db.deleteAll(stus);
db.deleteById(Grade.class, 2);
db.delete(stus.get(3));
4)更新操作和删除操作类似,这里就一一列举
四、有关xUtils
开源项目地址以及作者:https://github.com/wyouflf/xUtils
xUtils api地址
http://xutilsapi.oschina.mopaas.com/
xUtils中用DbUtils,ViewUtils的用法的更多相关文章
- xUtils介绍 -- DbUtils、ViewUtils、HttpUtils、BitmapUtils
转载注明出处:https://github.com/wyouflf/xUtils xUtils简单介绍 xUtils 包括了非常多有用的android工具. xUtils 支持大文件上传,更全面的ht ...
- 3. Android框架和工具之 xUtils(DbUtils )
1. xUtils简介 xUtils 包含了很多实用的android工具.xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓 ...
- oracle中用comment on的用法
oracle中用comment on命令给表或字段加以说明,语法如下:COMMENT ON { TABLE [ schema. ] { table | view } | COLUMN [ s ...
- XUtils框架之初步探索
Xutils分为四大模块. BitmapUtils DBUtils ViewUtils HttpUtils
- xUtils怎样通过注解对FindViewById进行封装
之前讲到了介绍了一下xUtils的基本用法,今天我们就来具体介绍一下关于xUtils中的ViewUtils模块. 在ViewUtils模块中我们首先看到的是它採用了一种注解的方式进行声明,那么我们首先 ...
- xUtils如何通过注解对FindViewById进行封装
之前讲到了介绍了一下xUtils的基本使用方法,今天我们就来详细介绍一下关于xUtils中的ViewUtils模块. 在ViewUtils模块中我们首先看到的是它采用了一种注解的方式进行声明,那么我们 ...
- GitHub Top 100的Android开源库
摘要: 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据GitHub搜索Java语言选择「Best M... 本项目主要对目前 GitH ...
- 【转】GitHub 排名前 100 的安卓、iOS项目简介
GitHub Android Libraries Top 100 简介 排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不 ...
- [转]Android App整体架构设计的思考
1. 架构设计的目的 对程序进行架构设计的原因,归根到底是为了提高生产力.通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合.这样做的好处是使得程序在开发的过程中,开发人员只需要专注于一点, ...
随机推荐
- ThinkPHP -- 基础入门
ThinkPHP文件结构说明: |——ThinkPHP.php 框架入口文件 |——Common 框架公共文件目录 |——Conf ...
- BZOJ 4443: [Scoi2015]小凸玩矩阵 最大流
4443: [Scoi2015]小凸玩矩阵 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4443 Description 小凸和小方是好 ...
- 2015 UESTC 搜索专题M题 Palindromic String 马拉车算法
Palindromic String Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/s ...
- 线程,线程安全与python的GIL锁
今天看到一篇文章,讲述的是几个提升python性能的项目:传送门 在看的过程中,接触到一个名词,一个从学python开始就一直看到,但是从来都是一知半解的名词,心里不开心,必须把它搞明白,对了,这个词 ...
- MSChart使用小结
在用到图表展示某项.多项信息的统计情况,很正常联想到MSChart控件. 以VS2008开发为例,在工具箱也中右击,选择”choose items“,打开对话框,选择COM组件T ...
- 给WebAPI的REST接口添加测试页面(二)
在上篇文章中,我对Swagger-UI的基本功能进行了一些介绍,今天在这里介绍一下如何在WebAPI中集成Swagger-UI.这里以一个简单的CRUD的REST服务为例. /// <summa ...
- JLink v8克隆版破解向导
JLink v8克隆版破解向导 摘要 Jlink 4.5版本之后驱动会识别老的克隆版的JlinkV8,Jlink软件在启动时会提示为克隆版本后退出. 目前主流的破解方式主要有两种: 方法一,继续使用老 ...
- XY8782S00 BL-W8782 BL-R8782MS1 SDIO接口 高性能、低功耗、体积小 wifi无线模块
1.产品简介 BL-8782是一款高性能.低功耗.体积小SDIO接口无线模组,符合IEEE802.11N标准,并向下兼容IEEE802.11B/G标准,支持IEEE 802.11i安全协议,以及IEE ...
- hdu4445 CRAZY TANK 2012金华赛区现场赛D题
简单推下物理公式 对角度枚举 物理公式不会推啊智商捉急啊.... 到现在没想通为什么用下面这个公式就可以包括角度大于90的情况啊... #include<iostream> #inclu ...
- JavaScript中数组的各种操作方法
[监测数组] 使用instanceof操作符,进行检测 ar arr = [1,2,3]; // arr = '非非'; if(arr instanceof Array){ console.log(' ...