繁体   English   中英

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

[英]How to call oracle stored procedure using mybatis (annotation based.)

我需要使用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)一样输入参数。 我用这种方法解决了我的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM