mysql - 使用 iBatis 调用存储过程

标签 mysql stored-procedures ibatis

我有以下 iBatis 语句:

<select id="validateLogin" parameterType="Account" statementType="CALLABLE">
    { CALL PROC_LOGIN
        (
            #{account_name, jdbcType=VARCHAR, mode=IN},
            #{password, jdbcType=VARCHAR, mode=IN},
            #{fname, jdbcType=VARCHAR, mode=OUT},
            #{lname, jdbcType=VARCHAR, mode=OUT},
            #{account_name, jdbcType=VARCHAR, mode=OUT},
            #{status, jdbcType=INTEGER, mode=OUT},
            #{loginStatus, jdbcType=VARCHAR, mode=OUT}
        )
    }
</select>

但是我得到,必须为元素类型“select”声明属性“parameterType”并且必须为元素类型“select”声明属性“statementType” .

我是 iBatis 新手,我还没有在互联网上搜索过如何解决这个问题。

最佳答案

尝试使用“procedure”和“parameterMap”标签来调用它。示例(more information here):

<procedure id="getEmpInfo" resultClass="Employee" parameterMap="getEmpInfoCall">
   { call getEmp( #acctID# ) } 
</procedure>
<parameterMap id="getEmpInfoCall" class="map">
   <parameter property="acctID" jdbcType="INT" javaType="java.lang.Integer" mode="IN"/>
</parameterMap>

关于mysql - 使用 iBatis 调用存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19450009/

相关文章:

mysql - 基于 if else if 条件的 SQL 连接表

c# - 存储过程返回 null 作为输出参数

sql - 在delphi中存储过程

tomcat - 使用tomcat jdbc pool StatementCache拦截器时出错

php - 使用:label for SQL UPDATE statement?有什么问题

php - 从数组更新 mysql 表(HTML 表单输入)

java - 在 MyBatis 中调用存储过程

java - 如何登录 iBatis ORM

php - 如何在php中的表单向导中显示一项数据?

oracle - PLS-00222在此范围内不存在名称为 'WRITE_ERROR_LOG'的功能