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中构建了一个内部类:

  1. /** 
  2. * 用来封装多个参数, 并实现连接操作 
  3. *  
  4.  */  
  5. protected static class Parameter extends HashMap<String, Object> {  
  6.     private static final long serialVersionUID = -1756000414146772526L;  
  7.   
  8.     public Parameter addParameter(String key, Object value) {  
  9.         this.put(key, value);  
  10.         return this;  
  11.     }  
  12. }  
  1. /**
  2. * 用来封装多个参数, 并实现连接操作
  3. *
  4. */
  5. protected static class Parameter extends HashMap<String, Object> {
  6. private static final long serialVersionUID = -1756000414146772526L;
  7.  
  8. public Parameter addParameter(String key, Object value) {
  9. this.put(key, value);
  10. return this;
  11. }
  12. }

然后在基类中加一个createParameter()方法用来给子类调用, 添加key-value的参数:

  1. /** 
  2.  * 用于支持连写 
  3.  * @param key 
  4.  * @param value 
  5.  * @return 
  6.  */  
  7. protected static Parameter createParameter(String key, Object value) {  
  8.     return new Parameter().addParameter(key, value);  
  9. }  
  1. /**
  2. * 用于支持连写
  3. * @param key
  4. * @param value
  5. * @return
  6. */
  7. protected static Parameter createParameter(String key, Object value) {
  8. return new Parameter().addParameter(key, value);
  9. }

具体使用:

  1. public int update(String id, int quantity) throws DAOException {  
  2.     Parameter parameter = createParameter("id", id)  
  3.             .addParameter("quantity", quantity);  
  4.     return executeUpdate(getSqlId("update"), parameter);  
  5. }  
  1. public int update(String id, int quantity) throws DAOException {
  2. Parameter parameter = createParameter("id", id)
  3. .addParameter("quantity", quantity);
  4. return executeUpdate(getSqlId("update"), parameter);
  5. }

如果是原来的话, 需要这样写:

  1. public int update(String id, int quantity) throws DAOException {  
  2.     Map<String, Object> parameter = new HashMap<String, Object>();  
  3.             parameter.put("id", id);  
  4.             parameter.put("quantity", quantity);  
  5.     return executeUpdate(getSqlId("update"), parameter);  
  6. }  
  1. public int update(String id, int quantity) throws DAOException {
  2. Map<String, Object> parameter = new HashMap<String, Object>();
  3. parameter.put("id", id);
  4. parameter.put("quantity", quantity);
  5. return executeUpdate(getSqlId("update"), parameter);
  6. }

其实也没什么, 只是有时候我这个人比较懒, 少打了几个字而已.

ibatis参数传递小技巧 - 疯狂的菠菜 - ITeye技术网站的更多相关文章

  1. iBATIS 3 试用手记 - The FUTURE - ITeye技术网站

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  2. TCL/Expect交互式自动化测试概要 - - ITeye技术网站

    TCL/Expect交互式自动化测试概要 - - ITeye技术网站 expect是一种基于TCL,能与交互式程序进行"可程序化"会话的脚本语言,是一种可以提供"分支和嵌 ...

  3. 总结2015搭建日志,监控,ci,前端路由,数据平台,画的图与界面 - hugo - ITeye技术网站

    总结2015搭建日志,监控,ci,前端路由,数据平台,画的图与界面 - hugo - ITeye技术网站 极分享:高质分享+专业互助=没有难做的软件+没有不得已的加班 极分享:高质分享+专业互助=没有 ...

  4. 阿里巴巴开源项目:分布式数据库同步系统otter(解决中美异地机房) - agapple - ITeye技术网站

    阿里巴巴开源项目:分布式数据库同步系统otter(解决中美异地机房) - agapple - ITeye技术网站 阿里巴巴开源项目:分布式数据库同步系统otter(解决中美异地机房)

  5. Mysql 官方Memcached 插件初步试用感受 - schweigen - ITeye技术网站

    Mysql 官方Memcached 插件初步试用感受 - schweigen - ITeye技术网站 Mysql 官方Memcached 插件初步试用感受

  6. python 内存泄露的诊断 - 独立思考 - ITeye技术网站

    python 内存泄露的诊断 - 独立思考 - ITeye技术网站 python 内存泄露的诊断 博客分类: 编程语言: Python Python多线程Blog.net  对于一个用 python ...

  7. http_load安装与测试参数分析 - 追求自由自在的编程 - ITeye技术网站

    http_load安装与测试参数分析 - 追求自由自在的编程 - ITeye技术网站 http_load -p 50 -s 120 urls

  8. JAVA中浅复制与深复制 - coolmist - ITeye技术网站

    body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...

  9. Apache Shiro 使用手册(一)Shiro架构介绍 - kdboy - ITeye技术网站

    转载 原文地址 http://kdboy.iteye.com/blog/1154644 一.什么是Shiro Apache Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理 ...

随机推荐

  1. MVC验证生成的代码

  2. runtime关联属性示例

    前言 在开发中经常需要给已有的类添加方法和属性,但是Objective-C是不允许给已有类通过分类添加属性的,因为类分类是不会自动生成成员变量的.但是,我们可以通过运行时机制就可以做到了. 本篇文章适 ...

  3. UIView回调方法(可以在添加子视图等,做一些额外操作)

    didAddSubview didMoveToSuperview willMoveToSuperview didMoveToWindow willMoveToWindow willRemoveSubv ...

  4. 用 Swift 编写面向协议的网络请求

    和我一起参加9 月 1 日 - 9月 2 日在纽约举办的 Swift 社区庆典

  5. 删除 win8.1中的网络1,网络2,宽带连接1,宽带连接2等网络记录

    新建txt文本,保存如下内容为reg文档: Windows Registry Editor Version 5.00 [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\W ...

  6. JSON文件存入MySQL数据库

    目标:将不同格式的JSON文件存入MySQL数据库 涉及的点有: 1. java处理JSON对象,直接见源码. 2. java.sql.SQLException: Incorrect string v ...

  7. js滚动条

    /*滚动条在Y轴上的滚动距离*/function ScrollTop(){ var scrollTop = 0, bodyScrollTop = 0, documentScrollTop = 0; i ...

  8. Bootstrap学习 - JavaScript插件

     模态框 <div class="modal" id="myModal" tabindex="-1" role="dialo ...

  9. vim(ubuntu) 设置行号和缩进

    在终端 输入以下命令来编辑vimrc配置文件: sudo vim /etc/vim/vimrc 或者 sudo gedit /etc/vim/vimrc 1.显示行号 在文件末端添加一新行,输入 se ...

  10. 转:利用ant与jmeter实现负载测试自动化

    性能测试一直以来都是测试领域一个令人争议的话题.测试的参考标准.评判依据及测试的方法选择都很难有一个统一的说法.但无论如何,对于需要能够承受一定压力而运行的程序来说,进行其进行功能和性能测试是一个必不 ...