java - 返回值

标签 java oracle return mybatis

我正在尝试从 Oracle 11g 中的存储函数获取返回值(整数值)。

该函数将输入数字加 10:

FUNCTION ADD_TEN(INPUT IN NUMBER) RETURN NUMBER IS 
BEGIN 
    RETURN INPUT + 10; 
END;

在我的映射器界面中,我有一行:

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>

关于java - 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13988935/

相关文章:

sql - 将 2 个月添加到当前时间戳

c++ - 将 vector 对象传递给函数并返回

java - 如何在我的图形用户界面中绘制准确的行数?

c# - NHibernate - 只有选择,我应该提交还是回滚?

java - 从 JpaRepository 检索对象后,延迟加载在简单的 Hibernate/Spring 启动示例中不起作用

sql - 在 Oracle 中插入 1950 年之前的日期

python - 函数总是返回 None

Python 3 : Returning variable through multiple functions

java - Android - 如何在 Android 中的 Expandable ListView 的 subview 下添加另一个 View ?

java - jaxb @ManyToMany @XmlID @XmlIDREF 无法将引用的对象放入 xml 中