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();
 }

posted @ 2013-08-23 13:54  alaricblog  阅读(403)  评论(0编辑  收藏  举报