使用存储过程iBATIS进行调用时出现异常

时间:2016-04-11 14:59:36

标签: java sql ibatis

我被分配到某个elses应用程序解决事件。

但是,应用程序使用sqlMap和存储过程与iBATIS,我以前从未使用过。

这是我到目前为止所做的:

404

// xml文件中的sqlMap

public void createItemInDb() {

    try {
        System.out.println("status: " + this.getStatus());
        System.out.println("weight: " + this.getWeight());
        System.out.println("node name: " + this.getNodeName());
        System.out.println("node ui: " + this.getNodeUi());

        SqlMapClient sqlMap = AppSqlMapClient.getSqlMapInstance();
        sqlMap.queryForObject("createItem", this);
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

我有这个例外:

<parameterMap class="item" id="createItemMap">
    <parameter property="nodeName" jdbcType="VARCHAR" mode="IN" />
    <parameter property="status" jdbcType="INTEGER" mode="IN" />
    <parameter property="weight" jdbcType="INTEGER" mode="IN" />
    <parameter property="nodeUi" jdbcType="INTEGER" mode="INOUT" />

</parameterMap>

<procedure id="createItem" parameterMap="createItemMap">
    {call CREATEITEM (?,?,?,?)}
</procedure> 

我甚至不明白这部分是什么意思:

未找到* N类型* N中的CREATEITEM。

* N代表什么?

我在哪里可以找到存储过程?在其他地方的应用程序文件中找不到CREATEITEM?

日Thnx

1 个答案:

答案 0 :(得分:0)

存储过程在数据库中,您必须使用数据库客户端连接到数据库并检查存储过程的代码(可能是它的PL / SQL代码)。

错误&#34;未找到* N类型* N中的CREATEITEM。&#34;可能是由存储过程的返回类型引起的。你确定它是一个整数吗?