标签:style blog http io ar os 使用 sp for
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的参数:
- ?
- ?
- ?
- ?
- ?
- ??
- 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技术网站
标签:style blog http io ar os 使用 sp for
原文地址:http://www.cnblogs.com/wang3680/p/461eb7e6be356af54ee39e64ae1e899e.html