Ibatis调用Oracle存储过程,以及返回Cursor结果集的处理

最近一项目用Struts+Spring+Ibatis 
俺是新手,第一次用Ibatis 
于是网上查资料,下载DEMO,运行。。。。。 
开始比较顺利,无非就是些select/update/delete 
后来碰到一存储过程的调用,没办法,网上查,一步步试 

存储过程具体就不说了,那是DBA的事情 
传入一个或者几个Integer或者String 
传出来是ORACLECURSOR 
Ibatis配置文件ibatis.xml: 
Xml代码  收藏代码
  1. <resultMap id="result-map" class="com.xxx.xxx.Table">  
  2.     <result property="rsId" column="id" />  
  3.     <!--在Java对象跟Oracle列之间转换 -->  
  4. </resultMap>  
  5. <parameterMap id="parameter-map" class="java.util.HashMap" >   
  6.     <parameter property="param1" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/>   
  7.     <parameter property="param2" jdbcType="Integer" javaType="java.lang.Integer" mode="IN"/>   
  8.     <parameter property="result" jdbcType="ORACLECURSOR" javaType="java.sql.ResultSet" mode="OUT" />  
  9. </parameterMap>  
  10. <procedure id="testCur" resultMap="result-map" parameterMap="parameter-map">   
  11.     {call testProcedures(?, ?, ?)}   
  12. </procedure>  

再看java里面调用: 
Java代码  收藏代码
  1. Map paramMap = new HashMap();  
  2. String str = request.getParameter(.....);  
  3. int n = request.getParameter(.....);  
  4. paramMap.put("param1",str);  
  5. paramMap.put("param2",n);  
  6. List detailList = null;   
  7. try{  
  8. detailList = getSqlMapClientTemplate().queryForList("testCur", paramMap);  
  9. //可以用getSqlMapClientTemplate().queryForObject("testCur", paramMap); 返回值是Object。  
  10. }catch(Exception ex){  
  11. ex.printStackTrace();  
  12. }  
  13. return detailList;  

detailList就是需要的结果集!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值