Mybatis +存储过程 - 如何使用mybatis将long值传递给过程

时间:2014-12-31 18:42:44

标签: parameter-passing dao mybatis procedure ibatis

我通过示例和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但是程序没有在数据库中调用。

1 个答案:

答案 0 :(得分:0)

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

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

我有一个单独的方法,它具有starttransaction和commit事务以及使用ibatis SQLTransactionManager的endtransaction。

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