[英]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.