-
mybatis 调用存储过程,存储过程返回游标,要将游标映射到List里返回 5
如题:
dao层需要改造。原先dao层的一个方法调用存储过程,并且
“cs.registerOutParameter(8, OracleTypes.CURSOR);”
返回的是游标类型,然后再对游标进行遍历进行List对象的填充:
public List method(args ..){
// 。。。存储过程的的调用。。
rs = (ResultSet) cs.getObject(8);//返回游标
//to do rs遍历 填充到List
return list;
}
现在需要用mybatis对存储过程进行调用,存储过程返回的是cursor,mybatis需要怎么做才能将cursor映射到List结果集去呢?2011年12月28日 11:21
1个答案 按时间排序 按投票排序
-
改变一下你的mapper配置,mybatis selectList方法就可以了吧
我的是sqlserver的,返回的 是直接select出的结果集。
oracle:
{call pro_fristCount(#{topnum,jdbcType=INTEGER,mode=IN},#{result,jdbcType="CURSOR",mode="out",javaType="java.sql.Result"})}改下应该可以了吧,你试试。<resultMap type="sl.wasp.wvs.domain.VoteDeptRecords" id="records"> <result property="deptId" column="deptId" jdbcType="NVARCHAR" javaType="String"/> <result property="deptName" column="deptName" jdbcType="NVARCHAR" javaType="String" /> <result property="itemId" column="itemId" jdbcType="NVARCHAR" javaType="String" /> <result property="itemName" column="itemName" jdbcType="NVARCHAR" javaType="String" /> <result property="ticketNum" column="ticketNum" jdbcType="INTEGER" javaType="Integer" /> <result property="voteId" column="voteId" jdbcType="NVARCHAR" javaType="String" /> </resultMap> <select id="selectDeptItemByTickets" statementType="CALLABLE" resultMap="records" parameterType="map"> {call pro_fristCount(#{topnum,jdbcType=INTEGER,mode=IN})} </select>
2012年9月03日 00:12
相关推荐
在调用过程中,如果出现错误,MyBatis会抛出异常,如`SQLException`。可以捕获这些异常,获取错误信息进行调试。此外,使用日志框架(如Log4j或Logback)可以帮助跟踪和分析MyBatis的执行过程。 6. 动态SQL与存储...
本文将深入探讨如何在Spring Boot项目中整合MyBatis,实现调用Oracle存储过程并处理游标返回的数据。 首先,我们需要在Spring Boot项目中引入相关的依赖。在`pom.xml`文件中添加Oracle JDBC驱动(ojdbc66-oracle...
4. **处理结果**:如果存储过程有返回值,可以通过`resultType`指定返回结果的类型,MyBatis会自动将结果映射到指定类型。对于`OUT`参数,MyBatis会在执行完存储过程后自动填充。 5. **在Service层调用**:在业务...
如果存储过程返回结果集,我们需要在映射文件中定义`<resultMap>`,来描述如何将数据库结果映射到Java对象。每个`<result>`标签代表结果集中的一列,包括`column`(数据库列名)和`property`(Java对象属性名)。 `...
- 有时存储过程返回多个结果集,这时需要在Mapper XML中使用`<resultMap>`标签来处理。 这个提供的"mybatis调用存储过程源码"压缩包,包含了一个完整的MyBatis调用存储过程的示例,解压后可以直接运行,帮助开发者...
如果存储过程返回一个结果集,我们可以使用游标(Cursor)来处理。在MyBatis中,可以声明一个方法,其返回类型为Map或自定义的Java Bean,代表存储过程的输出参数。在XML配置中,使用`<select>`标签并设置`...
MyBatis调用MYSQL存储过程 返回多行 引用的包: asm-3.1.jar cglib-2.2.jar commons-logging-1.1.1.jar log4j-1.2.13.jar mybatis-3.0.4.jar mysql-connector-java-5.1.13.jar slf4j-api-1.5.8.jar slf4j-log4j12-...
如果存储过程返回游标,我们需要声明一个`OUT`参数来接收。 4. **执行存储过程**:通过`pstmt.execute()`执行存储过程。这将打开一个游标,我们可以从游标中获取结果。 5. **处理游标结果**:使用`...
当调用`insertEmployee`方法时,MyBatis会执行配置的存储过程,并将结果(如果有的话)返回。在上述例子中,因为`INSERT_EMPLOYEE`没有返回值,所以不需要处理返回结果。 总结,通过以上步骤,我们可以使用MyBatis...
能不能写个动态的业务,只输入存储过程名称,自动获取存储过程参数,并且参数的数据从前台传递过来,这个就通用了。只写一个通用方法,就可以调用所有的存储过程。只根据输入不同的存储过程名称、参数内容,自动调用...
要调用存储过程,我们需要在Service层实现。这里,我们将使用MyBatis的SqlSession对象,通过Mapper接口来调用存储过程。 1. 配置MyBatis: 在Spring MVC项目中,你需要配置MyBatis与Spring的整合,这通常涉及到`...
本篇将详细阐述如何使用MyBatis调用MySQL中的存储过程,帮助你深入理解这一核心技能。 首先,我们需要了解存储过程的基本概念。存储过程是预编译的SQL语句集合,它封装了多个操作,可以在数据库服务器上执行,提高...
- 对于存储过程返回的结果集,可以通过`ResultMap`定义映射规则,或者使用`@Results`和`@Result`注解。 6. **事务管理** - 调用存储过程和函数可能涉及多条SQL语句,MyBatis的事务管理机制能确保操作的原子性。 ...
title: 10.3 MyBatis调用存储过程 10.3.3根据id查询数据返回对象10.3 MyBatis调用存储过程 10.3.3根据id查询数据返回对
本篇文章将详细讲解如何利用JDBC调用存储过程、函数以及处理游标。 首先,存储过程是数据库中预编译的一组SQL语句,它允许我们封装复杂的业务逻辑,提高执行效率,减少网络传输的数据量。在JDBC中调用存储过程通常...
本文将详细介绍如何使用MyBatis调用MySQL存储过程,以及存储过程的相关概念、优缺点和基本语法。 首先,存储过程是数据库中预编译的一组SQL语句,它可以包含控制流语句,以实现更复杂的业务逻辑。存储过程的创建和...
本文将详细介绍Mybatis调用Oracle存储过程的方法。 无参数存储过程的调用 首先,需要创建一个无参数的存储过程。例如,创建一个名为`proc_no_param`的存储过程,用于查询用户信息。 ```sql CREATE OR REPLACE ...
### iBatis调用存储过程返回游标 #### 存储过程简介 存储过程是预先编译并存储在数据库中的SQL代码块,它可以接受输入参数,执行一系列操作,并返回一个或多个输出结果。当需要频繁执行复杂的数据库操作时,使用...
但是,如何将List类型参数传递给Oracle存储过程,实现批量插入数据却是一个棘手的问题,本文将给大家介绍Mybatis传List参数调用Oracle存储过程的解决方法。 使用Mybatis传List参数调用Oracle存储过程的解决方法 在...