Ibatis从Oracle 11g中的存储过程中删除了params

时间:2013-12-24 07:51:09

标签: java oracle ibatis

我有一个存储过程,它有三个用户定义类型的参数。 我使用ibatis作为来自java代码的ORM来调用存储过程。 如何在ibatis xml中配置此存储过程调用 以及如何在我的java代码中获得结果。 程序测试(      p_a in int default 0,      p_b的数字默认为0,
     p_criteria out TBL_A,      p_baseline输出TBL_B,      p_results out TBL_C);

任何帮助都将受到高度赞赏。 谢谢, gagan suri

1 个答案:

答案 0 :(得分:0)

在xml配置中,使用in / out模式提供参数(jdbcType是可选的):

<procedure id="callProcedure1" parameterClass="map">
        {
            call procedure1(
                #value1,jdbcType=DECIMAL,mode=INOUT#,
                #value2,jdbcType=DECIMAL,mode=INOUT#,
                #value3,jdbcType=DECIMAL,mode=INOUT#,
                )
        }
</procedure>

在您的dao课程中,只需从参数中获取结果:

final Map<String, Object> params = new HashMap<String, Object>();
//provide input parameters here
params.put("value1", 1);
AbstractSQLMapDao.queryForObject("namespace.callProcedure1", params);
//retrieve you output
Double value1 = params.get("value1")