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);
}
其实也没什么, 只是有时候我这个人比较懒, 少打了几个字而已.
最新文章
- spring boot 调试 - 热部署
- Living one day at a time (update for a long time)
- WPF Step By Step 系列 - 开篇 &#183;
- VS合集/6.0/2005/2008/2010/2012/2013 绿色版精简版
- Codeforce 438D-The Child and Sequence 分类: Brush Mode 2014-10-06 20:20 102人阅读 评论(0) 收藏
- EasyUI-DataGrid之批量删除
- [Angular 2] Property Binding
- MS SQLSERVER通用存储过程分页
- 位记录——Windows 7已安装Sublime Text 3、cynwin、SublimeClang
- 在 InstantRails 环境下,安装使用 redMine
- JAVA printWriter中write()和println()区别
- React笔记:React基础(2)
- java web路径和spring读取配置文件
- windows 10 screenshot keyboard shortcut
- 解决idea创建Maven项目卡在running tmp archetypexxxtmp
- 随机指定范围内N个不重复的数
- golang 的 mysql 操作
- ScrollView嵌套ListView,禁止ListView的滚动,只让ScrollView可以滚动
- 转载 - java中接口的向上转型。和多态性
- EF Code First更新数据库时报错:provider: SQL Network Interfaces, error: 26
热门文章
- error while loading shared libraries: libmcrypt.so.4
- sql数据库删除表的外键约束(INSERT 语句与 FOREIGN KEY 约束";XXX";冲突。该冲突发生于数据库";XXX";,表";XXX";, column &#39;XXX)
- eclipse无法导入已有android项目
- cocos2d-x 不规则形状按钮的点击判定
- VS2010+PCL+openni配置
- JPA 系列教程5-双向一对多
- Debian 安装Nvidia显卡驱动
- sqlserver2008行锁
- css05 字体以及行间距
- hdu 3345 War Chess