一、有关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的用法的更多相关文章

  1. xUtils介绍 -- DbUtils、ViewUtils、HttpUtils、BitmapUtils

    转载注明出处:https://github.com/wyouflf/xUtils xUtils简单介绍 xUtils 包括了非常多有用的android工具. xUtils 支持大文件上传,更全面的ht ...

  2. 3. Android框架和工具之 xUtils(DbUtils )

    1. xUtils简介 xUtils 包含了很多实用的android工具.xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓 ...

  3. oracle中用comment on的用法

    oracle中用comment on命令给表或字段加以说明,语法如下:COMMENT ON  { TABLE [ schema. ]    { table | view }  | COLUMN [ s ...

  4. XUtils框架之初步探索

    Xutils分为四大模块. BitmapUtils  DBUtils ViewUtils HttpUtils

  5. xUtils怎样通过注解对FindViewById进行封装

    之前讲到了介绍了一下xUtils的基本用法,今天我们就来具体介绍一下关于xUtils中的ViewUtils模块. 在ViewUtils模块中我们首先看到的是它採用了一种注解的方式进行声明,那么我们首先 ...

  6. xUtils如何通过注解对FindViewById进行封装

    之前讲到了介绍了一下xUtils的基本使用方法,今天我们就来详细介绍一下关于xUtils中的ViewUtils模块. 在ViewUtils模块中我们首先看到的是它采用了一种注解的方式进行声明,那么我们 ...

  7. GitHub Top 100的Android开源库

    摘要: 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据GitHub搜索Java语言选择「Best M... 本项目主要对目前 GitH ...

  8. 【转】GitHub 排名前 100 的安卓、iOS项目简介

    GitHub Android Libraries Top 100 简介 排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不 ...

  9. [转]Android App整体架构设计的思考

    1. 架构设计的目的 对程序进行架构设计的原因,归根到底是为了提高生产力.通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合.这样做的好处是使得程序在开发的过程中,开发人员只需要专注于一点, ...

随机推荐

  1. [转]Android Studio开发入门-引用jar及so文件

    注意: 1.jar包在app的libs目录 2.so文件放在src/main”目录中名为“jniLibs”的目录 一.引用jar文件    1.将jar文件复制.粘贴到app的libs目录中:    ...

  2. poj 2828 buy Tickets 用线段树模拟带插入的队列

    Buy Tickets Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2 ...

  3. 读书笔记_Effective_C++_条款二十六:尽可能延后变量定义式的出现时间

    这个条款从字面意思还是很好理解的,就是在使用这个变量前才去定义,而不是很早就定义了它,而在很后面的时候才去使用.这个条款只适用于对变量声明位置没有要求的语言,比如C++.对于像C或者一些脚本语言,语法 ...

  4. How to open a web site with the default web browser in a NEW window

    http://delphi.about.com/cs/adptips2004/a/bltip0504_4.htm When using ShellExecute (as explained in th ...

  5. 在Visual Studio项目中根据系统平台自动引用32或64位的DLL

    最近在使用Noesis.Javascript.dll,但是这个DLL是有X86与X64二种版本的,我自己的电脑是64位的,但是别人的电脑是32位的.所以在别人那里使用的时候出了问题. 在VS里怎么引用 ...

  6. JSON还原为结构体

    JSON还原为结构体 1)JSON字符串还原为结构体: 2)访问结构体的字段值: 本例运行效果图: uses SynCommons; const // JSON字符串 JSON1 = '{' + #1 ...

  7. ASP.NET MVC:看 MVC 源码,学习:如何将 Area 中的 Controller 放到独立的程序集?

    背景 本文假设您已经熟悉了 ASP.NET MVC 的常规开发方式.执行模型和关键扩展点,这里主要说一下如何使用 ASP.NET MVC 的源代码解决一些问题. 如何将 Area 中的 Control ...

  8. 深度学习Deep learning

    In the last chapter we learned that deep neural networks are often much harder to train than shallow ...

  9. 7.volatile关键字

    volatile:一个线程修改了某一个共享变量的值,其他线程也是否能够立即知道这个修改的 1.主要是让该“变量”在多个线程中可见,在java中每一个线程都有一块自己的工作区,其中就存放着所有线程“共享 ...

  10. POJ 1737 Connected Graph 题解(未完成)

    Connected Graph Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 3156   Accepted: 1533 D ...