java代码在ibatis里调用存储过程配置
java代码在ibatis里调用存储过程配置和其他sqlMap调用没什么区别,只是在sql里的写法不同
如下:
<procedure id="findProcedure" resultMap="payMap" parameterClass="pay">
<![CDATA[
{call p_personal_pay (#beginDate:VARCHAR#, #endDate:VARCHAR#, #modeKey:INTEGER#, #tranNo:VARCHAR#, #paId:INTEGER#, #paName:VARCHAR#, #payState:CHAR#, #firstResult:INTEGER#, #pageSize:INTEGER#, #totalCount:INTEGER#)}
]]>
</procedure>
总结:
表示为: <![CDATA[ {call 存储过程名 (参数1,参数2.。。。。。参数n)} ]]>
获得out返回值,需要配置参数列表,如:
<parameterMap id="loginQuery" class="com.shunwang.passport.inteface.pojo.LoginQuery">
<parameter property="memberName" jdbcType="VARCHAR"
javaType="java.lang.String" mode="IN" />
<parameter property="memberPwd" jdbcType="VARCHAR"
javaType="java.lang.String" mode="IN" />
<parameter property="loginFrom" jdbcType="VARCHAR"
javaType="java.lang.String" mode="IN" />
<parameter property="clientIp" jdbcType="VARCHAR"
javaType="java.lang.String" mode="IN" />
<parameter property="memberId" jdbcType="INTEGER"
javaType="java.lang.Integer" mode="OUT" />
</parameterMap>
<procedure id="subLoginWeb" parameterMap="loginQuery">
<![CDATA[
{call dbo.p_member_logon_web(?,?,?,?,?)}
]]>
</procedure>
Java代码:
public int callSubSiteLoginStorage(LoginQuery query){
getSqlMapClientTemplate().queryForObject(getStatementNameWrap("subLoginWeb"),query);
return query.getMemberId();
}