我需要使用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是我的数据库表帐户的模型类。当我运行它时,我无法从数据库中获取值。请帮我解决这个问题。
答案 0 :(得分:0)
我的数据库是sql server,但我认为与您的问题相同。
如果要调用存储过程,则应输入selectAccount(Map map)
之类的参数。我用这种方法解决了我的问题。