`

Ibatis调用存储过程报告Invalid java.sql.Types错误

阅读更多
XML配置文件内容如下:
	<parameterMap class="map" id="psDemoParams">
	   <parameter property="p1" javaType="java.lang.String" jdbcType="VARCHAR" mode="IN" />
	   <parameter property="p2" javaType="java.lang.String" jdbcType="VARCHAR" mode="IN" />
	   <parameter property="p3" javaType="java.lang.String" jdbcType="VARCHAR" mode="IN" />
	   <parameter property="p4" javaType="java.lang.String" jdbcType="varchar" mode="IN" />
	   <parameter property="p5" javaType="java.lang.String" jdbcType="varchar" mode="OUT" />
	</parameterMap>

	<procedure id="getServiceName"
		parameterMap="psDemoParams"
		resultClass="java.lang.String">
		<![CDATA[ 
          {call psDemo(?,?,?,?,?)}
        ]]>
	</procedure>


存储过程代码如下:
SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO

ALTER         procedure dbo.psDemo
	(
		@p1 varchar(10),
		@p2 varchar(5),
		@p3 varchar(5),
		@p4 smallint,
		@p5 varchar(100) OUTPUT
	)
AS 

......

GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO


经测试,原因在于:
<parameter property="p5" javaType="java.lang.String" jdbcType="varchar" mode="OUT" /> 中的jdbcType="varchar" 应为 jdbcType="VARCHAR",varchar应该大写;但是mode="IN"中的varchar可以小写!
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics