`
rainsun
  • 浏览: 7911 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

Mybatis处理存储过程返回的游标需要怎么配置

阅读更多
目标:调用存储过程,该存储过程有一个入参(类型 long),一个出参(类型 cursor),从这个cursor中取出一个List。

存储过程:
CREATE OR REPLACE PROCEDURE GET_SOMETHING(
    SOME_NUMBER     IN NUMBER  DEFAULT 30,
    RC1 	IN OUT globalPkg.RCT1){

OPEN RC1 FOR SELECT field1, field2 FROM some_table WHERE some_conditions;

}


Java类:
public interface SomethingMapperDao { 
   
public void getSomething(SomeBean someBean);
    
}

SomeBean 是方法的参数,也是存放返回结果的地方
public class SomeBean {

private long someNumber;
private List<Something> someList;

// getters and setters

}

xml 配置文件
<resultMap id="SomethingMap" type="Something">
         <!-- id and properties -->
</resultMap> 
  
<update id="getSomething" parameterType="SomeBean" statementType="CALLABLE">
{CALL GET_SOMETHING(#{someNumber}, #{someList, mode=OUT, jdbcType=CURSOR, javaType=ResultSet, resultMap=SomethingMap}  )}        
</update>

java调用方法
SomeBean someBean =  new SomeBean();
someBean.setNum(aNumber);
SomethingMapperDao.getSomething(someBean);
return someBean.getList();

分享到:
评论

相关推荐

    ibatis调存储过程返回游标

    本文将深入探讨如何使用iBatis调用存储过程并返回游标,这是一个在处理复杂数据库操作时常见的需求。 ### iBatis调用存储过程返回游标 #### 存储过程简介 存储过程是预先编译并存储在数据库中的SQL代码块,它可以...

    Java调用oracle存储过程通过游标返回临时表

    如果存储过程返回游标,我们需要声明一个`OUT`参数来接收。 4. **执行存储过程**:通过`pstmt.execute()`执行存储过程。这将打开一个游标,我们可以从游标中获取结果。 5. **处理游标结果**:使用`...

    MyBatis调用存储过程

    - MyBatis支持调用带有游标的存储过程,此时返回的是一个List,每个元素对应结果集中的一行。 - 注意存储过程的权限问题,确保执行用户具有调用该存储过程的权限。 - 对于Oracle等数据库,可能需要使用`{call ...}`...

    springboot整合mybatis调用oracle存储过程

    本文将深入探讨如何在Spring Boot项目中整合MyBatis,实现调用Oracle存储过程并处理游标返回的数据。 首先,我们需要在Spring Boot项目中引入相关的依赖。在`pom.xml`文件中添加Oracle JDBC驱动(ojdbc66-oracle...

    spring mybatis 调用oracle存储过程

    在实际项目中,还需要确保Spring配置文件中已经正确配置了数据源、事务管理器以及MyBatis的相关bean,同时在Mapper接口和XML配置文件中正确映射了存储过程的输入输出参数。 通过以上步骤,开发者可以在Spring和...

    mybatis调用mysql存储过程

    - 调用带有游标(CURSOR)的存储过程时,需要使用`&lt;cursor&gt;`标签,并配合`&lt;foreach&gt;`处理结果。 - 参数模式有IN、OUT、INOUT三种,根据存储过程的参数类型正确设置。 通过以上步骤,你已经掌握了如何在MyBatis中...

    jdbc调用存储过程,函数,游标

    // 使用游标处理查询结果 Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM myTable"); while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString(...

    mybatis入门-简单的配置文件的书写,数据库查询语句的书写以及存储过程调用

    这是一个简单的mybatis项目,包含mybatis需要用到的jar包,里面同时包含配置文件的书写,查询语句的配置调用以及存储过程的调用的书写方法,还有就是包含游标输出的存储过程,如何去接收返回游标的示例;还有就是一...

    存储过程:利用游标+临时表实现查询

    它在数据库处理过程中非常有用,特别是当需要逐行处理数据或进行条件判断时。然而,需要注意的是,游标的使用可能会影响脚本执行速度,因此在不必要的情况下应谨慎使用。 3. MySQL中的游标操作步骤: - **声明游标...

    Java调用Oracle存储过程的方法

    2. **返回游标的处理**: - 如果存储过程返回一个游标(CURSOR),可以将其注册为`OUT`参数。例如,`registerOutParameter(index, OracleTypes.CURSOR)`。 - 执行存储过程后,通过`CallableStatement.getObject...

    MyBatis in Practice

    可以通过IN和OUT参数与存储过程进行交互,也可以处理游标参数。 MyBatis与Spring框架的整合是现代Java应用程序中常见的实践,这种整合提供了事务管理的便利。Spring事务管理与MyBatis整合后,可以在不改变MyBatis...

    mybatis分页插件源码

    MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的...

    mybatis分页(struts2+spring+mybatis)

    1. **MyBatis**:MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将...

    Ibatis调用Oracle存储过程返回自定义类型

    为了调用上述存储过程并正确处理返回值,我们需要进行以下配置: ##### 日志配置(log4j.properties) ```properties log4j.rootLogger=DEBUG,stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j...

    调用存储过程的通用方法

    调用存储过程时,可能抛出异常,需要在编程语言中进行捕获和处理。在存储过程中,也可以使用`TRY...CATCH`结构来处理错误。 8. **性能优化** - 编写高效的SQL语句,避免不必要的计算和数据检索。 - 使用索引优化...

    spring mvc mybatis extjs 3.4 权限管理

    - **存储过程定义**:存储过程`pageGrid`接受多个输入参数,包括页码、每页显示条数、表名、查询条件等,返回一个游标类型的结果集。 - **SQL语句构建**:根据输入参数动态构建SQL查询语句,确保能够准确地获取到所...

    mybatis-cursor-demo.zip

    Cursor就像数据库的游标,可以按需读取数据,而不需要一次性加载全部结果。这样,即使查询返回百万甚至千万级别的记录,也能有效地避免内存压力。使用Cursor的关键在于调用`selectList`方法时传入`ExecutorType....

    java Oracle存储过程分页整理

    Oracle数据库提供了丰富的存储过程功能,使得开发者可以编写自定义的SQL逻辑,结合Java调用来实现复杂的数据处理。本教程将深入探讨如何在Java中调用Oracle存储过程来执行分页查询。 首先,我们需要理解分页的基本...

Global site tag (gtag.js) - Google Analytics