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