关于iBatis/iBatis.net中parameterMap使用的一个技巧(亲自实践)

时间:2022-02-03 21:40:11

在iBatis中

当用parameterMap作为ibatis映射输入参数时,要在ibatis的配置文件中作相应的声明。

但我们也可以不在ibatis映射文件中作声明,应用方法如下:
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;
}

这样做在调用程序中,直接传入类型是HashMap 的变量parameter,而不需要在ibatis映射文件sqlmap.xml中配置对应的parameterMap了.

减少工作量,同时降低出错的几率

 

注:

经本人实验(VB 2008),在iBatis.net中,该方法同样实用,需要改变传入参数的类型:

1.ibatis映射文件sqlmap.xml中: parameterClass="Hashtable">

2.调用程序中:

Dim parameter As New Hashetable

parameter.Add(("USERID", userId)

parameter.Add(("ID", edition)

Try
     sqlMapClient.update("mysqlibatis.update", parameter)
Catch ex As Exception

    return false
End Try