java ibatis 调用存储过程

存储过程的调用是使用<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>

如果你的存储过程返回一个结果集,那么使用queryForList()或者queryForObject来调用, 如果你的存储过程既返回结果集又更新数据库数据,那么需要配置<transactionManager>的commitRequired=’true’

如果存储过程不返回结果集,或者仅仅以输出参数的形式返回结果集,那么应该使用update()方法。如果使用queryForList()或者queryForObject来调用,会导致线程阻塞,无法往下执行,特别是在定时器的时候,定时器就不循环执行了

<procedure id=”swapEmailAddresses” parameterMap=”swapParameters” >

  {call swap_email_address (?, ?)}

</procedure>

你可能感兴趣的:(java,ibatis)