mybatis调用存储过程

来源:互联网 发布:网络大电影成本预算 编辑:程序博客网 时间:2024/04/25 02:16

1.首先在oracle中创建存储过程 PRO_GET_FAX_TASK

2.在配置文件xml中:

<select id="getAllFaxTaskCallable" statementType="CALLABLE" parameterType="java.util.HashMap"><![CDATA[  {call  PRO_GET_FAX_TASK(#{userId,mode=IN,jdbcType=NUMERIC},#{subject,mode=IN,jdbcType=VARCHAR},#{taskNumber,mode=IN,jdbcType=VARCHAR},#{dateStart,mode=IN,jdbcType=VARCHAR},#{dateEnd,mode=IN,jdbcType=VARCHAR},#{pageSize,mode=IN,jdbcType=NUMERIC},#{pageNo,mode=IN,jdbcType=NUMERIC},#{orderBy,mode=IN,jdbcType=VARCHAR},#{rowSum,mode=OUT,jdbcType=NUMERIC},#{pageSum,mode=OUT,jdbcType=NUMERIC},#{result,mode=OUT,jdbcType=CURSOR,javaType=java.sql.ResultSet,resultMap=faxTaskResultMap})}]]> </select>

ps:这里要注意statementType="CALLABLE" 没有这句的话就不是调用存储过程的

3.在dao层调用配置文件

sqlSessionTemplate.selectOne("com.kinglo.promotion.pojo.FaxTask.getAllFaxTaskCallable", map);

ps:这里的selectOne和selectList感觉没什么区别;

传入的参数是个map,因此返回的result结果就在你传入的这个map中.所以我们可以这样返回结果:

return (List<FaxTask>)map.get("result");


原创粉丝点击