[英]return value Mybatis
我正在尝试从Oracle 11g中的存储函数获取返回值(Integer值)。
该函数将10添加到输入数字:
FUNCTION ADD_TEN(INPUT IN NUMBER) RETURN NUMBER IS
BEGIN
RETURN INPUT + 10;
END;
在我的mapper界面中,我有一行:
Integer add(Integer input);
并在Xml文件中
<select id="add" statementType="CALLABLE" resultType='java.lang.Integer'>
{#{output,mode=OUT,jdbcType=NUMERIC,javaType=Integer} = call test_pkg.ADD_TEN(
#{input,jdbcType=NUMERIC}) }
</select>`
对方法的调用如下:
Integer sum = mapper.add(45);
但是我收到以下错误:
Could not set property 'output' of 'class java.lang.Integer' with value '55' Cause: org.apache.ibatis.reflection.ReflectionException: There is no setter for property named 'output' in 'class java.lang.Integer'
我究竟做错了什么? 我真的迷失了......
谢谢。
为什么你没有像这样定义parameterType和resultType:
parameterType="int" resultType="int"
删除特定输出并尝试使其像这样:
<select id="add" parameterType="int" resultType="int" statementType="CALLABLE">
{ CALL ADD_TEN(#{input, mode=IN, jdbcType=INTEGER})}
</select>
解决方案:MyBatis返回类型必须为void
。 我正在寻找的结果参数是在函数/过程返回的ResultMap中。
问候。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.