发布时间:2011-08-29 15:52 来源:未知
SQL Server结合Mybatis调用存储过程返回结果集的相关知识是本文我们主要要介绍的内容,接下来就让我们一起来了一下吧。
过程如下:
一、存储过程:
CREATE PROCEDURE [dbo].[ProcedureName] @para1 VARchar(8)='HNZZC001', @para2 VarChar(30)='2010-07-08 02:00:00', @para3 VarChar(30)='2010-07-09 12:00:00' AS BEGIN --查询临时表中的数据 SELECT * FROM #tempTable END
二、Mybatis的映射文件
<!--结果集映射 --> <resultMaptyperesultMaptype="hashmap" id="ResultMap_test"> <resultpropertyresultproperty="Col1" column="列1" javaType="java.sql.Timestamp" jdbcType="TIMESTAMP" /> <resultpropertyresultproperty="Col2" column="列2" javaType="java.sql.Timestamp" jdbcType="TIMESTAMP" /> <resultpropertyresultproperty="Col3" column="列3" javaType="java.lang.Integer" jdbcType="INTEGER"/> </resultMap> <parameterMaptypeparameterMaptype="hashmap" id="ParaMap_test"> <parameterpropertyparameterproperty="result" mode="OUT" javaType="java.sql.ResultSet" jdbcType="OTHER" /> <parameterpropertyparameterproperty="para1" mode="IN" javaType="java.lang.String" jdbcType="VARCHAR"/> <parameterpropertyparameterproperty="para2" mode="IN" javaType="java.lang.String" jdbcType="LONGVARCHAR"/> <parameterpropertyparameterproperty="para3" mode="IN" javaType="java.lang.String" jdbcType="LONGVARCHAR"/> </parameterMap> <selectidselectid="procedureTest" parameterMap=" ParaMap_test " statementType="CALLABLE" resultMap=" ResultMap_test" > {#{result} = call ProcedureName(#{para1}, #{ para2}, #{ para3})} </select>
三、需要注意的事项 1、要把结果集放到parameterMap中,并且要设置jdbcType为“OTHER”。 2、在<select>中要写上resultMap,并且在select中不能用问号表示参数序列的模式调用存储过程。 3、statementType要为CALLABLE类型。 关于SQL Server结合Mybatis调用存储过程返回结果集的相关知识就介绍到这里了,希望本次的介绍能够对您有所收获!