我通过示例和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但是程序没有在数据库中调用。
答案 0 :(得分:0)
对不起,伙计我应该发布我发现的内容。
我在找错了地方。我的程序似乎被调用了。只是我正在进行的事务处理并没有提交它的这一部分。
我有一个单独的方法,它具有starttransaction和commit事务以及使用ibatis SQLTransactionManager的endtransaction。
之后调用调用此存储过程的方法。出于某种原因,它不会承诺这一点。我删除了不同方法的endtransaction,并且只在一个地方结束 - 这实际上就是我想要的。我只想在验证过程结束时提交。所以,在我玩弄交易管理之后,它就可以运作了。