簡體   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