0 0

mybatis中用注解如何处理存储过程返回的多个结果集?5

mybatis中用注解如何处理存储过程返回的多个结果集?我调用一个存储过程,但这个存储过程里又调用多个存储过程,所以会返回多个有多条记录的多个结果集?用mybatis如何得到这些结果集呢?用注解如何得到,如果注解不能处理?其它方式如何处理?谢谢!
2012年1月18日 11:22

1个答案 按时间排序 按投票排序

0 0

用xml 配置文件吧


给个列子 你就懂了
sql代码:

create procedure sptest.getnamesanditems()
reads sql data
dynamic result sets 2
BEGIN ATOMIC
  declare cur1 cursor for select * from sptest.names;
  declare cur2 cursor for select * from sptest.items;
  open cur1;
  open cur2;
END
go



<resultMap type="org.apache.ibatis.submitted.sptests.Name" id="nameResult">
    <result column="ID" property="id"/>
    <result column="FIRST_NAME" property="firstName"/>
    <result column="LAST_NAME" property="lastName"/>
  </resultMap>

  <resultMap type="org.apache.ibatis.submitted.sptests.Item" id="itemResult">
    <result column="ID" property="id"/>
    <result column="ITEM" property="item"/>
  </resultMap>

  <select id="getNamesAndItems" statementType="CALLABLE"
    resultMap="nameResult,itemResult">
    {call sptest.getnamesanditems()}
  </select>


@Test
    public void testGetNamesAndItems() throws SQLException {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        try {
            SPMapper spMapper = sqlSession.getMapper(SPMapper.class);
            
            List<List<?>> results = spMapper.getNamesAndItems();
            assertEquals(2, results.size());
            assertEquals(4, results.get(0).size());
            assertEquals(3, results.get(1).size());
        } finally {
            sqlSession.close();
        }
    }

2012年9月03日 00:28

相关推荐

    mybaitis3 开发指南

    MyBatis是一个优秀的持久层框架,它支持普通的SQL查询、存储过程以及高级映射。MyBatis在消除了几乎所有的JDBC代码和参数手工设置以及结果集的检索方面有着显著的优势。MyBatis使用简单的XML或注解来配置和原始映射...

    JAVAweb.txt

    - **处理结果集**:ResultSet对象用于存储查询结果,可以遍历结果集获取数据。 此外,为了提高性能和减少重复代码,还可以考虑使用MyBatis或Hibernate等ORM框架来简化数据库操作。 #### 五、总结 通过上述内容的...

    1000道 互联网大厂Java工程师面试题(1)(1)(1).pdf

    1. **MyBatis 的定义及优点**:MyBatis 是一个支持定制化 SQL、存储过程以及高级映射的优秀持久层框架。它的优点包括简化数据库操作代码、高度可定制化、支持动态 SQL 语句、以及提供 XML 或注解两种方式来配置 SQL ...

    梳理的一些java开发中用上的框架和开发工具,肯定会遗漏,欢迎补充

    MyBatis 是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。 - **MyBatis-Plus**: 框架。MyBatis-Plus 是MyBatis的一个增强版,简化了开发工作。 - **Hibernate**: 框架。Hibernate 是一款全表映射的...

    MAX的struts2教程

    Struts2是一个强大的Java web应用程序框架,它基于MVC(Model-View-Controller)设计模式,为开发者提供了构建可维护性、可扩展性良好的企业级应用的解决方案。MAX的Struts2教程是一份专为初学者设计的资源,旨在...

    SpringBoot-JDBC

    当多个数据库操作需要作为一个单元执行时,我们可以将其标记为事务性。 此外,为了进行更高级的数据库操作,如复杂查询,我们可以利用Spring Data JPA或MyBatis等持久层框架,它们提供了更强大的功能和更高的抽象...

    spring boot配置多数据源

    本文将详细讲解如何在Spring Boot中配置多个数据源,以及结合MyBatis进行数据操作。 首先,我们要明白什么是数据源(DataSource)。数据源是Java中用于存储数据库连接的信息,它是JDBC的一部分,负责管理与数据库的...

    dbtimetable:愉景湾时间表

    3. JDBC操作:使用JDBC进行数据库连接、创建Statement或PreparedStatement对象来执行SQL语句,以及处理结果集。在愉景湾时间表项目中,可能需要编写SQL查询来获取特定时间、线路的时刻表信息。 4. ORM框架:如果...

    Java后端技术面试汇总-2019

    - **MyBatis中用到了哪些设计模式**:工厂模式、代理模式、装饰者模式等。 - **项目中使用的哪些设计模式**:根据具体项目需求而定。 - **常用开源框架中设计模式使用分析**:分析Spring、Hibernate等框架的设计...

    JAVA核心知识点整理(有效)

    MinorGC 的过程(复制-&gt;清空-&gt;互换) ....................................................................................... 24 1:eden、servicorFrom 复制到 ServicorTo,年龄+1.................................

Global site tag (gtag.js) - Google Analytics