广告
返回顶部
首页 > 资讯 > 精选 >怎么在mybatis中实现多对一关联查询
  • 716
分享到

怎么在mybatis中实现多对一关联查询

2023-06-15 07:06:45 716人浏览 薄情痞子
摘要

怎么在mybatis中实现多对一关联查询?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。第一种关联方式1.修改实体类Student,追加关联属性,用于封装关联的数据修改完以后

怎么在mybatis中实现多对一关联查询?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

第一种关联方式

1.修改实体类Student,追加关联属性,用于封装关联的数据

修改完以后重新生成get set方法还有toString方法

private Teacher teacher;private Classes classes;

2.修改TeacherMapper相关配置

接口类 增加

Teacher selectTeacherById(Integer tid);

xml映射文件 增加

<sql id="params">tid,tname</sql><select id="selectTeacherById" resultType="Teacher">    select    <include refid="params"></include>    from teacher where tid=#{tid}</select>

3.修改ClassesMapper 相关配置

接口类 增加

Classes selectClassesById(Integer cid);

xml映射文件 增加

<resultMap type="Classes" id="clsMap">  <id property="cid" column="cid"></id>  <result property="cname" column="cname"/> </resultMap> <select id="selectClassesById" resultMap="clsMap">  select * from classes where cid = #{cid} </select>

4.修改StudentMapper 相关配置

接口类 增加

Student selectStudentById(Integer sid);

xml映射文件 增加

ps:

多对一关联属性配置:

        property:关联对象名

        javaType:关联对象类型

        select:引用的关联查询sql对应id名

        column:引用的关联查询sql语句需要的参数

<resultMap type="Student" id="stuMap">  <id property="sid" column="sid"/>  <result property="sname" column="sname"/>  <result property="age" column="age"/>  <result property="email" column="email"/>  <association property="teacher" select="com.yc.dao.TeacherMapper.selectTeacherById" column="tid" javaType="Teacher"></association>  <association property="classes" select="com.yc.dao.ClassesMapper.selectClassesById" column="cid" javaType="Classes"></association> </resultMap>        <select id="selectStudentById" resultMap="stuMap">  select * from student where sid = #{sid} </select>

5.测试代码

@Test public void test1() {  Student stu = studentMapper.selectStudentById(100001);  System.out.println(stu); }

第二种配置方式

修改实体类Student,追加关联属性,用于封装关联的数据

跟前面一样的

修改studentMapper.xml映射文件

ps:接口里面的方法还是跟原来一样的

<resultMap type="Student" id="stuMap">  <id property="sid" column="sid" />  <result property="sname" column="sname" />  <result property="age" column="age" />  <result property="email" column="email" />  <association property="teacher" javaType="Teacher">   <id property="tid" column="tid"></id>   <result property="tname" column="tname" />  </association>  <association property="classes" javaType="Classes">   <id property="cid" column="cid"></id>   <result property="cname" column="cname" />  </association> </resultMap> <select id="selectStudentById" resultMap="stuMap">  select * from student s,teacher t,classes c  where s.sid=#{sid} and s.tid = t.tid and s.cid=c.cid </select>

小结一下:个人感觉第二种方法是会简单许多,只是说,因为查询语句中,连接条件的限制,当cid或者tid为空时,查询到的数据就会是null,而第一种的话,如果只是cid为空,至少还是会显示student和teacher的相关信息

第三种配置方式 全局映射

ps:student类和studentmapper接口类不变

修改全局配置文件的setting信息

<setting name="autoMappingBehavior" value="FULL" /><setting name="mapUnderscoreToCamelCase" value="true" />

 修改studentMapper.xml映射文件

ps:

实体类的属性名要和表字段名保存一致,或按照驼峰命名规则(属性名:aColumn,字段名:A_COLUMN),settion属性mapUnderscoreToCamelCase设置成true 

关联表的字段名不能有相同的名字

<resultMap type="Student" id="stuMap">  <association property="teacher" javaType="Teacher" />  <association property="classes" javaType="Classes" /> </resultMap> <select id="selectStudentById" resultMap="stuMap">  select * from student s,teacher t,classes c where s.sid = #{sid} and  s.tid=t.tid  and s.cid=c.cid </select>

关于怎么在mybatis中实现多对一关联查询问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: 怎么在mybatis中实现多对一关联查询

本文链接: https://www.lsjlt.com/news/278862.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在mybatis中实现多对一关联查询
    怎么在mybatis中实现多对一关联查询?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。第一种关联方式1.修改实体类Student,追加关联属性,用于封装关联的数据修改完以后...
    99+
    2023-06-15
  • Mybatis怎么实现一对一、一对多关联查询
    今天小编给大家分享一下Mybatis怎么实现一对一、一对多关联查询的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Mybati...
    99+
    2023-07-05
  • MyBatis中怎么实现一对多查询和多对一查询
    这篇“MyBatis中怎么实现一对多查询和多对一查询”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MyBatis中怎么实现一...
    99+
    2023-06-29
  • 使用Mybatis 如何实现多对一或一对多的关联查询
    使用Mybatis 如何实现多对一或一对多的关联查询?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。首先  数据库量表之间字段关系(没有主外键)studentmaj...
    99+
    2023-05-31
    mybatis 一对多 多对一
  • Mybatis使用@one和@Many实现一对一及一对多关联查询
    目录一、准备工作1.创建springboot项目,项目结构如下2.添加pom.xml配置信息3.配置相关信息二、使用@One注解实现一对一关联查询三、使用@Many注解实现一对多关联...
    99+
    2022-11-12
  • mybatis如何使用注解实现一对多关联查询
    mybatis 注解实现一对多关联查询 @Select("select id,mockexam_section as section,id as sectionId" ...
    99+
    2022-11-12
  • Mybatis实现一对一、一对多关联查询的方法(示例详解)
    Mybatis实现一对一、一对多关联查询,关联查询:多个表联合查询,只查询一次,通过resultMap里面的<association>、<collection>...
    99+
    2023-05-14
    Mybatis关联查询 Mybatis一对一 Mybatis一对多关联查询
  • 详解mybatis多对一关联查询的方式
    根据ID查询学生信息,要求该学生的教师和班级信息一并查出 第一种关联方式 1.修改实体类Student,追加关联属性,用于封装关联的数据 修改完以后重新生成get set方法还有t...
    99+
    2022-11-12
  • Mybatis Plus关联查询怎么实现
    本篇内容介绍了“Mybatis Plus关联查询怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Mybatis-Plus 简介什么是 ...
    99+
    2023-06-22
  • springboot怎样使用mybatis一对多的关联查询问题
    今天给大家介绍一下springboot怎样使用mybatis一对多的关联查询问题。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。springboot使用myba...
    99+
    2023-06-29
  • mybatis一对多嵌套查询怎么实现
    本文小编为大家详细介绍“mybatis一对多嵌套查询怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“mybatis一对多嵌套查询怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。mybatis一对多嵌...
    99+
    2023-07-05
  • MybatisPlus实现对象嵌套关联查询一对多List集合查询
    目录对象嵌套关联查询一对多List集合查询mybatis嵌套关联查询如下一对多查询(经典案例)条件数据库代码实现对象嵌套关联查询一对多List集合查询 mybatis嵌套关联查询如下...
    99+
    2022-11-13
  • MyBatis如何实现多表查询(多对一、一对多)
    MyBatis实现多表查询  一、多对一查询 数据库的准备 创建两张表,一张老师表,一张学生表 将老师主键id关联学生外键tid 创建sql的语句 create ta...
    99+
    2022-11-12
  • springboot使用mybatis一对多的关联查询问题记录
    springboot使用mybatis一对多的关联查询 由于刚开始写java不久,对sql语句的熟悉度还是不够熟练,虽然现在使用的mybatisPlus比较多,但我始终觉得sql不能...
    99+
    2022-11-13
  • MyBatis中动态SQL及关联查询怎么实现
    小编给大家分享一下MyBatis中动态SQL及关联查询怎么实现,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!序言 MyBatis,大家都知道,半自动的ORM框架,原来叫ibatis,后来好...
    99+
    2022-10-19
  • mybatis-plus多表关联查询功能的实现
    学习目标: mybatis-plus多表关联查询 学习内容: mybatis-plus多表关联查询 实体类部分代码 @Data @AllArgsConstructor @NoAr...
    99+
    2022-11-12
  • MybatisPlus如何实现对象嵌套关联查询一对多List集合查询
    这篇文章主要讲解了“MybatisPlus如何实现对象嵌套关联查询一对多List集合查询”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MybatisPlus如何实现对象嵌套关联查询一对多Li...
    99+
    2023-06-30
  • Mybatis多对一查询的实现方法
    目录架构环境搭建数据库实体类接口Mapper配置文件子查询方法按结果集查询架构 这里从学生的角度来说就是多对一的场景 那么在Java中是怎么样的呢? 环境搭建 数据库 CREATE...
    99+
    2022-11-13
  • 在MyBatis中实现一对多查询和多对一查询的方式详解(各两种方式)
    目录1、多对一1、1环境搭建1、2编写实体类、1、3编写接口方法1、4编写Mapper1、5实现1、6运行结果2、一对多2、1环境搭建和一对多一样2、2编写实体类2、3编写接口的方法...
    99+
    2022-11-13
  • Mybatis联合查询怎么实现
    本篇内容主要讲解“Mybatis联合查询怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mybatis联合查询怎么实现”吧!数据库表结构departmentemployee要求一现在的要求...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作