如何使用mybatis调用oracle存储过程(基于注释。)

时间:2014-03-27 11:25:45

标签: java oracle stored-procedures mybatis

我需要使用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是我的数据库表帐户的模型类。当我运行它时,我无法从数据库中获取值。请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

我的数据库是sql server,但我认为与您的问题相同。

如果要调用存储过程,则应输入selectAccount(Map map)之类的参数。我用这种方法解决了我的问题。