也不想弄很多!代码都是demo1和demo2的差不多的,就只贴出有集合的mapper的配置,其余代码上传了,要看的自己下了就可以用了!
<?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.study.dao.UserMapper">
<resultMap type="User" id="userResMap">
<id property="id" column="id" />
<result property="loginName" column="login_name" />
<result property="password" column="password" />
<result property="name" column="name" />
<result property="email" column="email" />
<!-- 配置一对一的对象,association标签要放到collection
的上面-->
<association property="group" javaType="Group">
<id property="id" column="group_id"/>
<result property="name" column="group_name"/>
</association>
<!-- 配置一对多的集合的两种方式 -->
<!-- 第一种是在collection中直接配置集合 ,注意其中的是ofType-->
<!--
<collection property="groupList" ofType="Group">
<id property="id" column="group_id" />
<result property="name" column="group_name" />
</collection>
-->
<!-- 第二种就是直接连接到GroupMapper中的resultMap,
名字为namespace+resultName,这里面填写ofType="Group"
和javaType="List"都OK,单是上面那一种填javaType="List"不行,
只能填ofType="Group" -->
<collection property="groupList" javaType="List" resultMap="com.study.dao.GroupMapper.groupResMap"></collection>
</resultMap>
<!-- 值的注意的地方是,因为user表和group表中都是有id和name的,所以查出来的
时候要其中一个表的ID和name要用别名,且上面的resultMap配置colum也要用
对应的别名,不然的话查询出来的结果不正确,会造成group表的id和name也是
存放的user的id和name -->
<select id="findAll" resultMap="userResMap">
select u.id, u.name, u.email, u.login_name, u.password, g.id as group_id, g.name as group_name
from t_user u left join t_user_group u_g on u.id = u_g.user_id
left join t_group g on g.id = u_g.group_id
</select>
<select id="findById" resultMap="userResMap" parameterType="java.lang.Long">
select u.id, u.name, u.email, u.login_name, u.password, g.id as group_id, g.name as group_name
from t_user u left join t_user_group u_g on u.id = u_g.user_id
left join t_group g on g.id = u_g.group_id
where u.id = #{value}
</select>
</mapper>
分享到:
相关推荐
在这个"Mybatis关联映射Demo"中,我们将深入探讨如何在Mybatis框架中实现这些关系映射,以便更好地理解和应用到实际项目中。 Mybatis是一个轻量级的持久层框架,它简化了Java开发中的数据访问。它通过提供XML或注解...
在实体类和XML文件中配置好关联关系后,Mybatis可以在查询主表时,以集合的形式返回所有的子表记录。 5. **多对多关系映射**(mybatis05_many2many.zip) 多对多关系通常需要中间表来关联,mybatis05_many2many....
这个"一个简单的mybatis查询数据库demo源码"是用于演示如何在实际项目中使用MyBatis来执行数据库查询的实例。 首先,MyBatis的核心组件包括XML配置文件、SqlSessionFactory和Mapper接口。XML配置文件定义了数据源、...
【MyBatisDemo0225thinglin】是一个关于MyBatis框架的示例项目,主要涉及Java编程语言。在本项目中,我们将探讨MyBatis的基本概念、配置以及如何在实际开发中运用它来实现数据库操作。 MyBatis是一个优秀的持久层...
在MyBatis中,一对多关系映射是常见的数据关联方式,它允许我们在查询一个实体对象时,同时加载与之相关联的多个子对象。然而,如果不进行优化,这种关联查询可能会导致性能问题,比如数据量大时的内存消耗、多次...
【Mybatis专栏代码】主要包含了三个项目实例:mybatis-springboot-demo、mybatis-spring-demo和mybatis-demo,这些都是为了深入理解Mybatis框架而设计的。Mybatis是一款优秀的持久层框架,它支持定制化SQL、存储过程...
10. **数据库设计**:`mybatisDemo001数据库`文件可能包含了实现多对多关系所需的数据库表结构,包括主表、从表和中间关联表。分析这些表可以帮助理解MyBatis是如何根据数据库设计来处理多对多关系的。 理解并正确...
5. **mybatisDemo4项目**: 这个项目的源代码可能包括了XML配置文件(mybatis-config.xml)、Mapper接口、Mapper XML文件、实体类、Service层和DAO层实现。通过这个项目,你可以学习到如何组织MyBatis项目结构,...
在本篇中,我们将深入探讨ORM(Object-Relational Mapping)框架中的Mybatis,这是一个流行的Java持久层框架,用于简化数据库操作...通过对提供的资源进行学习和实践,你可以更深入地理解Mybatis的工作原理和使用技巧。
3. **配置Spring**: 配置Spring的bean,包括数据源、SqlSessionFactoryBean、Mybatis的Mapper接口和Service类等。 4. **集成Mybatis**: 编写Mapper接口和对应的XML文件,定义SQL语句,实现数据访问。 5. **整合Redis...
在MyBatis2Demo项目中,你可以看到具体的XML配置文件、Mapper接口和实体类,这些都是实现上述功能的关键部分。通过学习这个项目,你可以掌握MyBatis高级映射的实战技巧,提升你在实际开发中的能力。同时,这个项目也...
总结来说,MyBatis 在处理多对多关系时,主要通过 XML 映射文件配置集合映射,配合 SQL 查询和 Java 代码实现,通过中间表来存储关联关系。理解并熟练运用这些机制,可以有效地管理和维护数据库中的多对多关联。
在这个"ssm 一对一 一对多demo"项目中,我们将探讨如何在SSM环境中实现MyBatis的一对一和一对多关联映射,以及如何通过Map来接收和处理查询结果。 首先,MyBatis的一对一映射通常用于一个实体类对应另一个实体类的...
而DQL则是用于查询数据,包括SELECT语句以及关联的聚合函数和分组操作。 在Spring框架中,Mybatis作为持久层框架,负责与数据库的交互。Mybatis通过XML配置文件或注解方式定义SQL语句,将Java对象映射到数据库记录...
Mybatis允许开发者编写SQL语句,并将它们与Java代码直接关联,支持动态SQL,可以更灵活地处理复杂查询。Mybatis通过XML或注解方式配置和映射SQL,使得数据访问更加直观高效。 在`SSM使用.txt`和未列出完全的`SSM`...
通过这个“springmvc写一个购物车demo”,开发者不仅可以学习Spring MVC的基本用法,还能了解到如何在实际项目中整合数据库操作、会话管理、视图渲染等多个环节,对整个Web开发流程有更深入的理解。这个小型项目是一...
对于复杂的数据结构,Ibatis提供了集合映射、关联映射等机制,使得数据处理更加便捷。 此外,Ibatis还支持事务管理。在SqlSession中,可以通过`beginTransaction`开启事务,`commit`提交事务,`rollback`回滚事务。...
在Java开发中,用户角色权限管理是构建任何大型或复杂应用程序不可或缺的一...通过学习和扩展这个示例,开发者可以更好地掌握如何在Java应用程序中实现安全、灵活的权限控制,从而保护系统资源,防止未经授权的访问。
在项目“demo-boot”中,我们可以预期找到以下关键组件和配置文件: - `User`、`Role`和`Permission`实体类,用于数据模型。 - 数据库配置,如`application.properties`或`application.yml`中的数据库连接信息。 - ...