<resultMap type="com.webgame.domain.Game" id="gameMap">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="category" column="category"/>
<result property="url" column="url"/>
<result property="imagePath" column="imagePath"/>
<collection property="comments" column="id" select="getComments"/>这里配置了一对多关联
</resultMap>
这是执行的语句
<select id="getById" statementType="CALLABLE" parameterType="map" resultMap="gameMap" >
call sp_getGame_ById
(
#{id},
#{name,mode=OUT,jdbcType=VARCHAR},
#{category,mode=OUT,jdbcType=VARCHAR},
#{url,mode=OUT,jdbcType=VARCHAR},
#{imagePath,mode=OUT,jdbcType=VARCHAR}
)
</select>
但是控制台打印的日志显示没有执行这里。
<select id="getComments" statementType="CALLABLE" parameterType="map">
call sp_condition_page_search
(
#{condition},
#{startRow},
#{endRow},
#{tableName},
#{commentList,mode=OUT,jdbcType=CURSOR,resultMap=commentMap}
)
</select>
测试部分
SqlSession session = getSession();
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("id", 1);
params.put("name", "");
params.put("category", "");
params.put("url", "");
params.put("imagePath", "");
params.put("comments", java.util.Collections.EMPTY_SET);
session.selectOne("com.webgame.domain.Game.getById", params);
session.commit();
session.close();
System.out.println("params.comment:" + params.get("commentList"));
日志没有报错
2012-07-08 13:41:35,410 [main] DEBUG [com.webgame.domain.Game.getById] - ooo Using Connection [oracle.jdbc.driver.OracleConnection@1982a03]
2012-07-08 13:41:35,410 [main] DEBUG [com.webgame.domain.Game.getById] - ==> Preparing: call sp_getGame_ById ( ?, ?, ?, ?, ? )
2012-07-08 13:41:35,467 [main] DEBUG [com.webgame.domain.Game.getById] - ==> Parameters: 1(Integer)
相关推荐
本篇文章将详细探讨MyBatis在关联查询中的一对一和一对多关系映射,以及如何通过ResultMap配置来实现这些复杂的查询。 在数据库设计中,一对一和一对多的关系非常常见。一对一关系通常出现在两个表之间,其中一个表...
关联查询的执行通常有两种方式: 1. **嵌套结果映射**(Nested Result Maps):在同一个ResultMap中定义一对一或一对多的子ResultMap,MyBatis会自动处理关联对象的填充。 2. **关联查询**(Association Queries):...
在实际运行中,我们可以通过控制台打印 SQL 语句或日志,确保查询正确执行,并能正确获取到栏目及它们关联的新闻。 通过以上步骤,我们就可以在 MyBatis 中实现新闻栏目的一对多自关联查询。这个例子不仅展示了 ...
在本文中,我们将深入探讨如何手写MyBatis实现查询所有操作,以加深对其工作原理的理解。 首先,我们需要理解MyBatis的核心组件。MyBatis包含SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession和Mapper接口...
Mybatis关联映射是数据库操作中的一个重要概念,它允许我们在SQL查询中处理一对多、多对一、多对多等复杂关系。在这个"Mybatis关联映射Demo"中,我们将深入探讨如何在Mybatis框架中实现这些关系映射,以便更好地理解...
在实际开发中,MyBatis 还允许我们使用 `resultMap` 定义复杂的数据结构映射,以及使用 `select` 标签来执行 SQL 查询。此外,`<if>`、`<choose>`、`<when>`、`<otherwise>` 等动态 SQL 元素可以帮助我们在映射文件...
本篇将详细讲解如何在Mybatis中实现一对多关联映射的查询操作。 首先,我们要明确一对多关联映射的基本概念。在这个例子中,User表(用户表)和Order_form表(订单表)之间存在1-N的关系,意味着一个用户可以有多个...
在关联查询中,MyBatis 允许我们在 `collection` 标签内定义 `<select>` 子标签,用于执行 SQL 查询获取子集合数据。这里可以编写一个带有参数的 SQL 语句,通过主表的 ID 或其他关联字段来查询子表的数据。 3. **...
MyBatis会执行子查询,将所有关联的对象加载到主对象的集合属性中。在`chapter10_oneToMany`文件中,你可以看到如何配置和使用这种映射的实例。 最后,我们探讨**多对多**(ManyToMany)关联映射。这是一种复杂的...
2. **关联查询**: MyBatis支持一对一、一对多、多对一和多对多的关联查询。通过`<association>`、`<collection>`标签,可以在一个查询中获取关联表的数据,减少数据库交互,提高性能。 3. **结果映射**: 结果映射...
在默认情况下,MyBatis并不会直接打印出执行的SQL语句,因此我们需要开启日志功能以获取这些信息。 1. **启用MyBatis日志** MyBatis支持多种日志实现,如Log4j、Logback和Java内置的日志API。在SpringBoot项目中,...
在关联和级联查询以及动态SQL方面,MyBatis提供了强大的功能,使得开发人员能够更加灵活地处理数据库交互。 首先,我们来探讨MyBatis中的关联(Association)和级联(Cascading)。关联通常用于描述一个实体对象与...
同时,Mybatis 还支持在查询中使用 `left outer join`, `right outer join`, `inner join` 等关联查询。 9. 自定义插件:Mybatis 允许开发者创建自定义插件,通过拦截器机制,可以在 SQL 执行前后进行额外的操作,...
这样,当执行查询时,MyBatis会自动处理这种复杂的一对一关系,将查询结果组装成完整的`User`对象,其中包含了`UserDetail`对象。 总结一下,MyBatis中的一对一查询主要通过`resultMap`、`id`、`result`以及`...
为了实现接口方法与映射文件中定义的SQL的关联,MyBatis使用了动态代理机制。在运行时,MyBatis会为每个Mapper接口生成一个实现了该接口的代理类,当调用接口方法时,实际上执行的是代理类中的方法,这个方法会解析...
这样,当执行`selectWebsitesWithVisitors`查询时,MyBatis会自动进行多表连接,并将查询结果映射为包含`Visitor`对象的`Website`对象列表。 2. **动态SQL**: MyBatis的动态SQL是其一大特色,通过`<if>`, `...
MyBatis-Plus(简称MP)是MyBatis框架的一个扩展,它在MyBatis的基础上提供了许多便捷的功能,包括但不限于自动填充 CRUD 操作、条件构造器、动态 SQL 等。在描述中提到的“支持连表查询的mybatis-plus”,意味着MP...
最后,在服务层(Service)或控制层(Controller)调用这个`createTable`方法,Mybatis会执行对应的SQL,完成建表操作。 总结一下,Mybatis案例一所涉及的知识点主要包括: 1. Mybatis的基本架构:SQL映射文件、...
这个"一个简单的mybatis查询数据库demo源码"是用于演示如何在实际项目中使用MyBatis来执行数据库查询的实例。 首先,MyBatis的核心组件包括XML配置文件、SqlSessionFactory和Mapper接口。XML配置文件定义了数据源、...