ibatis参数传递小技巧 - 疯狂的菠菜 - ITeye技术网站
body
{
font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif;
font-size: 10.5pt;
line-height: 1.5;
}
html, body
{
}
h1 {
font-size:1.5em;
font-weight:bold;
}
h2 {
font-size:1.4em;
font-weight:bold;
}
h3 {
font-size:1.3em;
font-weight:bold;
}
h4 {
font-size:1.2em;
font-weight:bold;
}
h5 {
font-size:1.1em;
font-weight:bold;
}
h6 {
font-size:1.0em;
font-weight:bold;
}
img {
border:0;
max-width: 100%;
}
blockquote {
margin-top:0px;
margin-bottom:0px;
}
table {
border-collapse:collapse;
border:1px solid #bbbbbb;
}
td {
border-collapse:collapse;
border:1px solid #bbbbbb;
}
ibatis参数传递小技巧 - 疯狂的菠菜 - ITeye技术网站使用ibatis操作数据库的时候, 如果这个操作需要一些参数, 一般我们会使用map将这些参数封装起来,
然后调用SqlMapClient或者SqlMapClientTemplate的update, insert, queryForXxx方法.
每次构造这个map, 重复性的东东比较多, 于是改进了一下. 在基类DAO中构建了一个内部类:
- /**
- * 用来封装多个参数, 并实现连接操作
- *
- */
- protected static class Parameter extends HashMap<String, Object> {
- private static final long serialVersionUID = -1756000414146772526L;
- public Parameter addParameter(String key, Object value) {
- this.put(key, value);
- return this;
- }
- }
/**
* 用来封装多个参数, 并实现连接操作
*
*/
protected static class Parameter extends HashMap<String, Object> {
private static final long serialVersionUID = -1756000414146772526L; public Parameter addParameter(String key, Object value) {
this.put(key, value);
return this;
}
}
然后在基类中加一个createParameter()方法用来给子类调用, 添加key-value的参数:
- /**
- * 用于支持连写
- * @param key
- * @param value
- * @return
- */
- protected static Parameter createParameter(String key, Object value) {
- return new Parameter().addParameter(key, value);
- }
/**
* 用于支持连写
* @param key
* @param value
* @return
*/
protected static Parameter createParameter(String key, Object value) {
return new Parameter().addParameter(key, value);
}
具体使用:
- public int update(String id, int quantity) throws DAOException {
- Parameter parameter = createParameter("id", id)
- .addParameter("quantity", quantity);
- return executeUpdate(getSqlId("update"), parameter);
- }
public int update(String id, int quantity) throws DAOException {
Parameter parameter = createParameter("id", id)
.addParameter("quantity", quantity);
return executeUpdate(getSqlId("update"), parameter);
}
如果是原来的话, 需要这样写:
- public int update(String id, int quantity) throws DAOException {
- Map<String, Object> parameter = new HashMap<String, Object>();
- parameter.put("id", id);
- parameter.put("quantity", quantity);
- return executeUpdate(getSqlId("update"), parameter);
- }
public int update(String id, int quantity) throws DAOException {
Map<String, Object> parameter = new HashMap<String, Object>();
parameter.put("id", id);
parameter.put("quantity", quantity);
return executeUpdate(getSqlId("update"), parameter);
}
其实也没什么, 只是有时候我这个人比较懒, 少打了几个字而已.
ibatis参数传递小技巧 - 疯狂的菠菜 - ITeye技术网站的更多相关文章
- iBATIS 3 试用手记 - The FUTURE - ITeye技术网站
body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...
- TCL/Expect交互式自动化测试概要 - - ITeye技术网站
TCL/Expect交互式自动化测试概要 - - ITeye技术网站 expect是一种基于TCL,能与交互式程序进行"可程序化"会话的脚本语言,是一种可以提供"分支和嵌 ...
- 总结2015搭建日志,监控,ci,前端路由,数据平台,画的图与界面 - hugo - ITeye技术网站
总结2015搭建日志,监控,ci,前端路由,数据平台,画的图与界面 - hugo - ITeye技术网站 极分享:高质分享+专业互助=没有难做的软件+没有不得已的加班 极分享:高质分享+专业互助=没有 ...
- 阿里巴巴开源项目:分布式数据库同步系统otter(解决中美异地机房) - agapple - ITeye技术网站
阿里巴巴开源项目:分布式数据库同步系统otter(解决中美异地机房) - agapple - ITeye技术网站 阿里巴巴开源项目:分布式数据库同步系统otter(解决中美异地机房)
- Mysql 官方Memcached 插件初步试用感受 - schweigen - ITeye技术网站
Mysql 官方Memcached 插件初步试用感受 - schweigen - ITeye技术网站 Mysql 官方Memcached 插件初步试用感受
- python 内存泄露的诊断 - 独立思考 - ITeye技术网站
python 内存泄露的诊断 - 独立思考 - ITeye技术网站 python 内存泄露的诊断 博客分类: 编程语言: Python Python多线程Blog.net 对于一个用 python ...
- http_load安装与测试参数分析 - 追求自由自在的编程 - ITeye技术网站
http_load安装与测试参数分析 - 追求自由自在的编程 - ITeye技术网站 http_load -p 50 -s 120 urls
- JAVA中浅复制与深复制 - coolmist - ITeye技术网站
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- Apache Shiro 使用手册(一)Shiro架构介绍 - kdboy - ITeye技术网站
转载 原文地址 http://kdboy.iteye.com/blog/1154644 一.什么是Shiro Apache Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理 ...
随机推荐
- label自适应
//label自适应 self.label = [UILabel new]; self.label.font = [UIFont systemFontOfSize:14]; NSString *tit ...
- asp之Eval()函数
运行字符串: a=Eval("1+1") 结果为:a=2 运行函数: function aa(a) aa=a+1 end function b=Eval("aa(2)&q ...
- subversion-fundamental concepts
1.在使用svn 的时候,版本号version的问题一直困恼. 如在目录/app/controller上面右键选择查看该目录的 show log ,弹出的窗口显示的Revision log.单击每一条 ...
- Java BigDecimal Class
Using BigDecimal to perform precise calculations with floats. BigDecimal is a class type. So declare ...
- php 版本比较
判断当前运行的 PHP 版本是否高于或等于你提供的版本号. function is_php($version) { static $_is_php; $version = (string) $vers ...
- 后台如何解析json
1.以前倒是没有怎没遇到过需要后台解析的,由于json传到后台实际上是传的一个字符串通常用到批量删除时 var rows = $('#tt').datagrid('getSelections'); v ...
- 异步加载AsyncTask
private void huodeshuju() { new AsyncTask<String, Void, String>() { @Overrid ...
- css05 字体以及行间距
<head><meta charset="utf-8"><title>无标题文档</title><style>#box{ ...
- HDU 1232 畅通工程(最小生成树+并查集)
畅通工程 Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submissi ...
- java开发第一天
今天是项目开始的时间,整体来说还是算顺利的.提前分好组,然后是听课时可以有人帮忙占座位的,感觉上是挺好的. 项目开发的难度看了看,由于有了第一次MFC开发的经验,所以这次听课感觉非常的有目标性,而且总 ...