ibatis中update参数为Map的使用方式

2 篇文章 0 订阅
1 篇文章 0 订阅

使用ibatis,如果要更新表记录,一般常用的做法就是,查找出记录,然后修改部分字段,进行update操作.

例如:

User  user =  userDAO.findById(1);
user .setName("zhangsan");
user DAO.update( user );

 

这种是最常用的方法.在很多应用场景下完全没有问题.
但是,如果user表中存在一个或者多个text(或者blob)字段.难道仅仅为了更新一个name字段,需要重新update那些本不需要更新的text/blob字段吗?

 

人们又想出了一个办法,参数采用map,把需要更新的字段put到map中,

 

应用方法如下: 
ibatis映射文件sqlmap.xml中: 
<update id="update" parameterClass="java.util.HashMap"> 
UPDATE TAB SET EDITION=#ID# WHERE USERID=#USERID# 
</update> 
在我们要调用sql查询语句的java方法中有: 
Map<String, Object> parameter = new HashMap<String, Object>(); 
parameter.put("USERID", userId); 
parameter.put("ID", edition); 
try { 
sqlMapClient.update("mysqlibatis.update", parameter); 
} catch (SQLException e) { 
return false; 


在此处对上面用到的参数作说明,sqlMapClient.update("mysqlibatis.update", parameter);中的"mysqlibatis"是ibatis映射文件的 
名称,"update"是<update>标签的id,而parameter是传入的map参数名称,并且parameter参数中必须要有和 
<update id="update" parameterClass="java.util.HashMap"> 
UPDATE TAB SET EDITION=#ID# WHERE USERID=#USERID# 
</update> 
中对应的key值,如上,就是在parameter中要有ID和USERID。并且,<update>标签的parameterClass的 
一定要是"java.util.HashMap".向上面这样做就减轻了我们的工作量,不用在ibatis中写parameterMap的映射了。

 

 

 

参考:http://duqiangcise.iteye.com/blog/300459

http://www.blogjava.net/stone2083/archive/2008/06/26/210969.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值