ibatis教程之調用帶參數的存儲過程

ibatis調用帶參的存儲過程,包括存儲過程帶有多個輸入輸出參數,整個開發過程如下:

1. 編寫存儲過程,以下存儲過程分別帶有三個輸入參數,兩個輸出參數。

CREATE PROCEDURE [dbo].[sp_statJB](@cyear   char(4)  ,@halfyear varchar(10),@empflag char(1),@result1  varchar(10) out ,@result2  varchar(10) out)

AS BEGIN

SET NOCOUNT ON;

set @result1=dbo.f_getJBamount(@cyear,@halfyear,1,’公有經濟’)

set @result2=dbo.f_getJBamount(@cyear,@halfyear,0,’高等教育’)

END

 

2.編寫ibatis的配置文件

<parameterMap id=”statisticalDataMap”>

<parameter property=”cyear” jdbcType=”VARCHAR” javaType=”java.lang.String” mode=”IN”/>

<parameter property=”halfyear” jdbcType=”VARCHAR” javaType=”java.lang.String” mode=”IN”/>

<parameter property=”empflag” jdbcType=”VARCHAR” javaType=”java.lang.String” mode=”IN”/>

<parameter property=”result1″ jdbcType=”VARCHAR” javaType=”java.lang.String” mode=”OUT”/>

<parameter property=”result2″ jdbcType=”VARCHAR” javaType=”java.lang.String” mode=”OUT”/>

</parameterMap>

 

<procedure id=”getStatisticalData”  parameterMap=”statisticalDataMap”>    <![CDATA[       { call sp_statJB(?,?,?,?,?)}    ]]> </procedure>

 

 

3編寫java程序,傳遞參數並獲取結果

Map<String,String> paramMap=new HashMap<String, String>();

paramMap.put(“cyear”, “2012″);

paramMap.put(“halfyear”,”下半年”);

paramMap.put(“empflag”, “0″);

getSqlMapClientTemplate().queryForObject(this.getNameSpace()+”getStatisticalData”,paramMap);

if(paramMap.get(“result1″)!=null)

{    

return Integer.parseInt(paramMap.get(“result1″).toString());  

 }

else{

   return 0;  

 }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章