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");