我以前也碰到过,尤其是带多个返回参数的,查了无数资料,问了无数人。最后是用jdbc写的。

解决方案 »

  1.   

    存储过程
    SQL Map通过<procedure>元素支持存储过程。下面的例子说明如何使用具有输出参数的存储过程。
    <parameterMap id="swapParameters" class="map" >
    <parameter property="email1" jdbcType="VARCHAR" javaType="java.lang.String" mode="INOUT"/>
    <parameter property="email2" jdbcType="VARCHAR" javaType="java.lang.String" mode="INOUT"/>
    </parameterMap>
    <procedure id="swapEmailAddresses" parameterMap="swapParameters" >
    {call swap_email_address (?, ?)}
    </procedure>
    调用上面的存储过程将同时互换两个字段(数据库表)和参数对象(Map)中的两个email
    地址。如果参数的mode属性设为INOUT或OUT,则参数对象的值被修改。否则保持不变。
    注意!要确保始终只使用JDBC标准的存储过程语法。参考JDBC的CallableStatement文档以获得更详细的信息。