ibatis教程之调用带参数的存储过程

ibatis调用带参的存储过程,包括存储过程带有多个输入输出参数,整个开发过程以下: java

1. 编写存储过程,如下存储过程分别带有三个输入参数,两个输出参数。 this

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

AS BEGIN get

SET NOCOUNT ON; 配置

set @result1=dbo.f_getJBamount(@cyear,@halfyear,1,’公有经济’) jdbc

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

END call

 

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;  

 }

相关文章
相关标签/搜索