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

标签 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 是我的数据库表帐户的模型类。当我运行此程序时,我无法从数据库获取值。请帮助我解决此问题。

最佳答案

我的数据库是sql server,但我认为这和你的问题是一样的。

如果你想调用存储过程,你应该输入像selectAccount(Map map)这样的参数。我用这个方法解决了我的问题。

关于java - 如何使用mybatis调用oracle存储过程(基于注解。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22686171/

相关文章:

java - Apache CXF-JMS 3.0 和 Spring 配置

oracle - sqlloader 中空格被视为 null

oracle - oracle创建继承表的方法

mysql - 程序在执行准备好的语句时静默终止

java while循环 try catch ,无法打印到新行

java - "Missing return statement"在 if/for/while 内

java - shell 脚本崩溃后可靠地重新启动 java 进程

oracle - PL/SQL 嵌套过程异常处理

mysql - 在 MySQL 存储过程的退出处理程序中获取失败语句的 SQL

mysql - 无法修复存储过程错误