`

mybatis 中使用collection注意事项

 
阅读更多

在使用mybatis中的collection的时候遇到了很多问题,下面记录一下:

resultMap配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.benben.dao.ModuleDao">
 <resultMap id="BaseResultMap" type="Module" >
  <id column="module_id" property="id" />
  <result column="module_name" property="name" />
  <collection property="authUsers" ofType="Auth"  resultMap="AuthUserMap"/>
  
 </resultMap>
 <resultMap id="AuthUserMap" type="Auth">
  <id column="auth_id" property="id"/>
  <result column="username" property="userName"/>
  <result column="password" property="password"/>
 </resultMap>

 <select id="selectModule" resultMap="BaseResultMap">
 select mo.id module_id ,mo.name module_name,au.id auth_id ,au.username username,au.password password from td_module mo left outer join td_auth au on au.module_id=mo.id
 </select>
</mapper>

1、别名的使用,如

select mo.id module_id ,mo.name module_name,au.id auth_id ,au.username username,au.password password from td_module mo left outer join td_auth au on au.module_id=mo.id

这里千万要记住命名成别名,如果不用的话,可能两个表的字段名称一致,造成了匹配错误,如两张表中都叫id,就会造成匹配错误

2、ofType,这里是javabeen类

分享到:
评论

相关推荐

    SSM笔记-Mybatis基本使用

    本笔记将重点介绍Mybatis的基本使用,包括它的核心组件、开发步骤、配置方法以及在实际应用中的注意事项。 一、Mybatis的核心组件 1. XML配置文件:Mybatis的主要配置文件(mybatis-config.xml)包含了数据源、事务...

    mybatis延迟加载样例

    3. **注意事项**:延迟加载只有在会话打开的情况下才能工作。如果在获取到实体对象后关闭了SqlSession,那么后续尝试访问延迟加载的属性会抛出异常。此外,由于MyBatis使用的是单次延迟加载,一旦触发加载,整个关联...

    MyBatis3_用户指南(附JavaDB实例)

    最后,文档提供了一些附加信息,如目录结构、对象模型、创建数据库、MyBatis实例的使用以及XML中特殊字符处理等,为用户使用MyBatis提供了更多实践指导和注意事项。 在附录部分,文档展示了MyBatis在具体场景下的...

    MyBatis-3-User-Guide.pdf

    特别指出,参数的处理是 MyBatis 中的关键部分,包括了使用 resultMap 来进行高级结果映射,以及如何映射支持的 JDBC 类型,如 constructor、association 和 collection。 MyBatis 允许使用动态 SQL 来构造不同的 ...

    springmybatis

    MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个...

    mybatis之多对多

    本文将深入探讨MyBatis在处理多对多关系时的实现方式和注意事项。 在数据库设计中,多对多关系是常见的关联类型,例如学生和课程之间的关系,一个学生可以选择多门课程,一门课程也可以被多个学生选修。在Java中,...

    Mybatis自定义框架及使用1

    - **环境搭建注意事项**:创建 Mybatis 工程时需遵循一定的命名规则,如映射文件名与 DAO 接口名相同,`namespace` 与接口全限定名匹配,`id` 与方法名匹配,以实现无须编写 DAO 实现类即可使用。 通过理解以上...

    详解MyBatis直接执行SQL查询及数据批量插入

    3. **注意事项**: - **传入的SQL字符串**:必须按照"MyBatis能识别的格式"编写,如"select XXX as instanceid, XXX as instancename ....",这样才能自动将查询结果映射到Java对象。 - **#{}与${}的区别**:`#{}`...

    Mybatis实现一对一,一对多数据插入数据实验报告.docx

    - 实现一对一查询:在`OrderMapper.xml`中使用`resultMap`标签配合`association`标签,根据订单ID查询订单信息,并同时获取关联的用户信息。 - 实现一对多查询:类似一对一查询,但在`User`类中,通过`List&lt;Order&gt;...

    MyBatis-3.0.3-User-Guide.pdf

    #### 一、关于文档代码复制的注意事项 在阅读和使用本文档时,请注意代码示例的特殊字符问题。现代文字处理工具虽然使得文本更加美观易读,但也可能对代码示例造成破坏,例如将普通字符转换为具有特定格式的字符(如...

    MyBatis框架的学习(五)——一对一关联映射和一对多关联映射

    MyBatis中使用`&lt;collection&gt;`标签来配置这种关系。以`Class`和`Student`为例: 1. 在`Class`实体的Mapper XML文件中,添加`&lt;collection&gt;`标签,`property`为`students`,表示`Class`对象中的`students`集合,`...

    mybatis foreach标签的使用详解

    MyBatis foreach 标签的使用详解 MyBatis 中的 foreach 标签是非常常用的标签之一,它可以用来遍历集合,构建 in 条件语句或者批量操作语句。...但是,需要注意 foreach 标签的使用注意事项,以避免出现错误。

    mybatis常用语句和lyaui 多条件查询加分页

    MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集的过程,它可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。...

    Mybatis 3+Mysql 实现批量插入

    ### 五、优化与注意事项 1. **数据预处理**:在批量插入前,确保数据的正确性和完整性,避免因数据错误导致的插入失败。 2. **事务管理**:合理使用事务,确保数据的一致性,特别是在高并发环境下。 3. **性能监控*...

    Mybatis的教程例子

    5. **注意事项**:在处理一对多关系时,要注意懒加载和急加载的区别。默认情况下,Mybatis采用急加载策略,即当查询用户时会立即加载所有关联的订单。如果数据量大,这可能导致性能问题。如果希望延迟加载,可以配置...

    mybatis动态sql语句详解

    2. **OGNL表达式**:在`&lt;if&gt;`标签中使用的`test`属性是一个OGNL表达式,用于评估条件。 3. **代码清晰度**:虽然动态SQL可以提高灵活性和复用性,但过多的动态SQL可能会使SQL语句变得难以阅读和维护。因此,在使用...

    MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据

    #### 五、使用MyBatis动态SQL的注意事项 尽管MyBatis动态SQL为开发者带来了极大的便利,但也存在一定的安全隐患,比如SQL注入的风险。为了避免这些问题,需要注意以下几点: 1. **避免直接使用用户输入**:确保所有...

    mybatis执行批量更新batch update 的方法(oracle,mysql两种)

    这里我们将详细探讨如何在Oracle和MySQL数据库中使用MyBatis进行批量更新。 1. **Oracle数据库的批量更新** Oracle数据库的批量更新在MyBatis中通过`&lt;foreach&gt;`标签实现。以下是一个示例: ```xml &lt;foreach ...

    基于SpringBoot+Dubbo+RocketMQ的微服务订单支付系统+Zookeeper+MySQL

    注意事项: 1. mybatis 逆向工程数据表名字不能太通用,容易引起于系统表名冲突 正例: shop_user 反例: user 2. mybatis 逆向工程 *.xml文件生成是追加式添加,在重新生成 *.xml 时,建议删除原 *.xml xml内容...

Global site tag (gtag.js) - Google Analytics