ibatis调用mysql存储过程返回多个表结果集,但是只能取到一个查询的结果
首先上存储过程代码:
CREATE PROCEDURE getInfo(in rob_id INT, in name VARCHAR(50)) BEGIN declare my_id int DEFAULT 0; select * from t_rob hr where hr.id=rob_id; select * from t_rob_prize hrp where hrp.robId=rob_id; select id into my_id from t_rob_my where robId=rob_id and name=name LIMIT 0,1; select hrm.id,hrm.robId,hrm.wxNunber,hrm.exchange,hrm.createTime from t_help_rob_my hrm where hrm.id=my_id; select * from t_help_rob_help hrh where hrh.myId=my_id; END
ibatis配置:
<parameterMap id="robIndexParameter" class="java.util.HashMap"> <parameter property="rob_id" jdbcType="int" javaType="java.lang.Integer" mode="IN"/> <parameter property="name" jdbcType="varchar" javaType="java.lang.String" mode="IN"/> </parameterMap> <resultMap id="helprobInfoResultMap" class="helprobInfo"> 。。。。。。 </resultMap> <resultMap id="helprobPrizeInfoResultMap" class="helprobPrizeInfo"> 。。。。。 </resultMap> <resultMap id="helprobMyInfoResultMap" class="helprobMyInfo"> 。。。。。 </resultMap> <resultMap id="helprobHelpInfoResultMap" class="helprobHelpInfo"> 。。。。。 </resultMap> <!-- 总共四个resultMap -->
存储过程调用:
<procedure id="geRobIndexInfo" parameterMap="robIndexParameter" resultMap="helprobInfoResultMap,helprobPrizeInfoResultMap,helprobMyInfoResultMap,helprobHelpInfoResultMap"> {call getInfo(?,?)} </procedure>
调用的时候只返回helprobInfoResultMap的值,其它是三个resultMap的值没有返回
paramters.put("rob_id", robId); paramters.put("name", name); sqlMapClient.queryForList("RobDAO.geRobIndexInfo", paramters);
求大神解答
相关推荐
在本项目中,"struts+spring_ibaits+调用Mysql存储过程实现增删改查",意味着开发者利用这三个框架来处理数据库中的增、删、改、查(CRUD)操作,并通过调用MySQL的存储过程来实现这些功能。存储过程是预编译的SQL...
需要注意的是,虽然这里使用了`selectOne`,但实际上存储过程可能返回多个结果集或者无结果,这时可以使用`sqlSession.callableStatement()`方法,然后调用`CallableStatement`的相关方法来处理。 在实际项目中,...
在MySql 5.2中,支持诸多高级特性,如存储过程、触发器、视图等,这些可以通过Ibatis的SQL映射文件进行调用。同时,MySql的InnoDB引擎提供事务支持,与Ibatis的事务管理无缝对接。 对于初学者,理解Ibatis的动态SQL...
此外,Spring还包含了数据访问、Web、测试等多个模块,能与Struts2无缝集成。 3. **Ibatis**:Ibatis是一个简单易用的SQL映射框架,它将Java代码与SQL语句分离,使得开发者可以更加灵活地操作数据库。Ibatis通过XML...
总结,Struts2调用存储过程涉及数据库连接、DAO设计、Action控制和视图展示等多个环节。通过合理配置和编程,我们可以有效地利用存储过程提升应用的效率和灵活性。"Struts2_crud2.0_Procedure"示例提供了具体实现,...
这意味着每本书可以有多个作者。 **图书表 (`book`) 结构:** - `oid`: 图书ID,主键,类型为 `int(10)` - `name`: 图书名称,类型为 `varchar(50)` **用户表 (`user`) 结构:** - `id`: 用户ID,主键,类型为 `int...
- **创建数据库和表**:在MySQL中创建数据库和相应的表结构,用于存储和查询数据。 - **配置Ibatis**:在SqlMapConfig.xml中配置数据库连接信息,包括URL、用户名、密码等。 - **编写Mapper接口和XML映射文件**:...
在IT行业中,构建一个基于Spring、iBatis和MySQL的简单应用是常见的开发任务,尤其对于初学者来说,这是理解Web应用开发基础的好方法。本文将深入探讨如何使用这三个技术来搭建一个基本的Web应用程序。 首先,让...
在Struts中,Action类负责接收并处理HTTP请求,而后返回一个结果到视图层。配置文件`struts-config.xml`定义了Action的映射和结果路径。 Spring框架是Java企业级应用的核心,它提供了一个全面的编程和配置模型,...
本文档将深入探讨如何在IBATIS框架下连接和管理多个数据库,以便于在不同环境中灵活切换或同时操作多个数据源。 IBATIS是一个流行的Java和.NET平台上的数据访问层解决方案,它允许开发者编写SQL语句并与对象模型...
综上所述,使用iBatis操作MySQL中的大对象涉及数据库配置、表结构设计、Mapper接口和XML映射、流式处理、性能优化以及事务管理等多个方面。正确理解和运用这些知识点,能够有效地处理和管理大对象数据,确保系统的...
在这个过程中,Ibatis会自动处理参数绑定、结果集映射等细节,极大地提高了开发效率。同时,由于SQL语句与Java代码的分离,使得SQL的优化和维护变得更加容易。 对于MySQL数据库,Ibatis提供了很好的支持,包括对...
- 对于复杂的业务逻辑,可以考虑使用存储过程,Ibatis也支持调用存储过程。 通过以上介绍,我们可以看到,Ibatis 相关jar包在Java Web开发中起着至关重要的作用,它为数据库操作提供了一种灵活、高效的方式。正确...
总结起来,iBatis源码的研究涉及了数据库操作、Java持久层设计、单元测试等多个方面,结合junit和SQL Server,我们可以更深入地理解iBatis的工作原理,提升我们的开发能力。通过对源码的阅读和实践,开发者不仅能...
对于复杂场景,如多表联查、分页、存储过程等,你可以继续深入学习XML配置文件的高级用法,例如使用`<association>`, `<collection>`处理嵌套结果,使用`<resultMap>`定义复杂的映射关系等。 总的来说,iBATIS的XML...
此外,Ibatis还支持存储过程的调用,这在处理复杂业务逻辑时非常有用。 在Ibatis中,数据的映射是通过ResultMap实现的,它可以映射查询结果到Java对象,处理嵌套结果集和自关联的情况。除此之外,还可以使用...
Struts和iBatis是两种在Java Web开发中广泛应用的技术...综上所述,这个项目涵盖了Web开发中的多个核心知识点,包括前端交互、后端处理、数据库操作、安全性以及性能优化等方面,为学习者提供了一个实践性的学习平台。
在代码中,你可以遍历数据集合,然后逐个调用iBatis的SQL映射接口。这种方式的灵活性较高,但可能造成代码重复,且不易维护。 **2. 在配置文件中进行循环操作** 这种方式更适用于复杂的批处理场景,尤其是当涉及到...
5. **多参数查询**: 当需要根据多个条件进行查询时,Ibatis支持传入多个参数。这些参数可以是简单的值,也可以是复杂的对象。通过在SQL映射文件中使用定义参数集,然后在或等标签中引用。 6. **动态SQL**: Ibatis的...