【问题标题】:Mybatis + stored procedure - How to Pass a long value to a procedure using mybatisMybatis + 存储过程 - 如何使用 mybatis 将 long 值传递给过程
【发布时间】:2015-02-27 18:39:27
【问题描述】:

我阅读了大多数带有示例和 mybatis 文档的网站。我肯定错过了一些简单的东西,而且看起来真的很愚蠢。

有人可以看看为什么当我的 DAO 调用 id 时这个过程甚至没有被调用吗?

这是我添加到 .xml 文件中的内容。

<parameterMap id="validateProcedure_paramMap" class="java.lang.Long">
  <parameter property="requestId" jdbcType="NUMERIC"  mode="IN">
</parameterMap> 
<!--  Calls stored procedure -->

<procedure id="validateRequest" parameterMap="validateProcedure_paramMap">
{call NG_PKG.validateRequest_sp(?)}
</procedure>

我只是通过 DAO 正常调用它。 DAO 正在获取传入的长参数

 public void validateRequest(long reqId) throws SQLException
{       

    sqlMap.queryForObject("validateRequest", reqId);

}

有人可以看看我是否做错了什么 - 我做错了什么:( 控制只是通过 DAO,但过程没有在数据库中被调用。

【问题讨论】:

    标签: parameter-passing dao mybatis procedure ibatis


    【解决方案1】:

    对不起,伙计们,我应该发布我发现的内容。

    我找错地方了。我的程序似乎被调用了。只是我正在完成的事务处理没有提交这部分。

    我有一个单独的方法,它有一个使用 ibatis SQLTransactionManager 的 starttransaction 和一个 commit transaction 和一个 endtransaction。

    调用此存储过程的方法在此之后被调用。出于某种原因,它不会这样做。我在不同的方法上删除了 endtransaction 并且只在一个地方结束它 - 这实际上是我想要的。无论如何,我只想在验证过程结束时提交。所以,在我玩弄了我的事务管理之后,它就可以工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-26
      • 1970-01-01
      • 2013-03-18
      • 1970-01-01
      • 2020-02-24
      • 2015-11-02
      • 1970-01-01
      相关资源
      最近更新 更多