ibatis中update参数为Map的使⽤⽅式
使⽤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映射⽂件l中:
<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) {
parameter是什么意思啊
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的映射了。
参考:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。