我需要使用mybatis在java中调用oracle存储过程。下面给出了存储过程和到目前为止我尝试过的事情。
存储过程:
create or replace PROCEDURE P_GET_ACCOUNT (INVAR_ACCOUNT IN DATE
, OUTVAR_CONFIG OUT SYS_REFCURSOR) AS begin
OPEN OUTVAR_CONFIG FOR
SELECT * from accounts; END P_GET_ACCOUNT;
为了调用这个存储过程,我调用了映射器
AccountImplMapper.java
@Select("{CALL P_GET_ACCOUNT(#{account, mode=IN, jdbcType=VARCHAR}," +
"#{result, mode=OUT, jdbcType=CURSOR})}")
@Options(statementType = StatementType.CALLABLE)
AccountImpl selectAccount(@Param("account") String account,@Param("result") Object result);
DatabaseImpl中调用AccountImplMapper方法
DatabaseImpl.java:
AccountImpl = new AccountImpl();
accountImpl = accountImplMapper.selectAccount("mark",accountImpl);
其中 AccountImpl 是我的数据库表帐户的模型类。当我运行此程序时,我无法从数据库获取值。请帮助我解决此问题。
最佳答案
我的数据库是sql server,但我认为这和你的问题是一样的。
如果你想调用存储过程,你应该输入像selectAccount(Map map)
这样的参数。我用这个方法解决了我的问题。
关于java - 如何使用mybatis调用oracle存储过程(基于注解。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22686171/