ibatis参数传递小技巧 - 疯狂的菠菜 - ITeye技术网站

ibatis参数传递小技巧 - 疯狂的菠菜 - ITeye技术网站使用ibatis操作数据库的时候, 如果这个操作需要一些参数, 一般我们会使用map将这些参数封装起来, 然后调用SqlMapClient或者SqlMapClientTemplate的update, insert, queryForXxx方法. 每次构造这个map, 重复性的东东比较多, 于是改进了一下. 在基类DAO中构建了一个内部类:
Java代码 ?
  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的参数:
Java代码 ?
  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. }??

具体使用:
Java代码 ?
  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. }??

如果是原来的话, 需要这样写:
Java代码 ?
  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. }??

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



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。