Ibatis調用Oracle預存程序,以及返回Cursor結果集的處理

來源:互聯網
上載者:User
最近一項目用Struts+Spring+Ibatis 
俺是新手,第一次用Ibatis 
於是網上查資料,下載DEMO,運行。。。。。 
開始比較順利,無非就是些select/update/delete 
後來碰到一預存程序的調用,沒辦法,網上查,一步步試 

預存程序具體就不說了,那是DBA的事情 
傳入一個或者幾個Integer或者String 
傳出來是ORACLECURSOR 
Ibatis設定檔ibatis.xml: 
Xml代碼   <resultMap id="result-map" class="com.xxx.xxx.Table">       <result property="rsId" column="id" />       <!--在Java對象跟Oracle列之間轉換 -->   </resultMap>   <parameterMap id="parameter-map" class="java.util.HashMap" >        <parameter property="param1" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/>        <parameter property="param2" jdbcType="Integer" javaType="java.lang.Integer" mode="IN"/>        <parameter property="result" jdbcType="ORACLECURSOR" javaType="java.sql.ResultSet" mode="OUT" />   </parameterMap>   <procedure id="testCur" resultMap="result-map" parameterMap="parameter-map">        {call testProcedures(?, ?, ?)}    </procedure>  
再看java裡面調用: 
Java代碼   Map paramMap = new HashMap();   String str = request.getParameter(.....);   int n = request.getParameter(.....);   paramMap.put("param1",str);   paramMap.put("param2",n);   List detailList = null;    try{   detailList = getSqlMapClientTemplate().queryForList("testCur", paramMap);   //可以用getSqlMapClientTemplate().queryForObject("testCur", paramMap); 傳回值是Object。   }catch(Exception ex){   ex.printStackTrace();   }   return detailList;  
detailList就是需要的結果集。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.