10.多对一处理

时间:2020-05-26
本文章向大家介绍10.多对一处理,主要包括10.多对一处理使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
10.多对一处理
测试环境搭建
  1. 导入lombok

    <dependencies>
    	<!--Lombok-->
    	<dependency>
    		<groupId>org.projectlombok</groupId>
    		<artifactId>lombok</artifactId>
    		<version>1.18.10</version>
    	</dependency>
    </dependencies>
    
  2. 新建实体类teacher和student

    package com.believe.pojo;
    
    import lombok.Data;
    
    @Data
    public class Teacher {
        private int id;
        private String name;
    }
    
    package com.believe.pojo;
    
    import lombok.Data;
    
    @Data
    public class Student {
        private int id;
        private String name;
        private Teacher teacher;
    }
    
  3. 新建Mapper接口

    package com.believe.mapper;
    
    public interface TeacherMapper {
    }
    
    package com.believe.mapper;
    
    public interface StudentMapper {
    }
    
  4. 新建Mapper.xml文件

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    
    <mapper namespace="com.believe.mapper.TeacherMapper">
    
    </mapper>
    
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    
    <mapper namespace="com.believe.mapper.StudentMapper">
    
    </mapper>
    
  5. 在mybatis-config绑定Mapper.xml

    <!--绑定接口-->
    <mappers>
        <mapper resource="com/believe/mapper/StudentMapper.xml"/>
        <mapper resource="com/believe/mapper/TeacherMapper.xml"/>
    </mappers>
    
  6. 测试

SQL语句

select s.id,s.name,t.name from student s,teacher t where s.tid = t.id;
按照查询嵌套处理
<select id="getStudent01" resultMap="getStudent01" >
	select * from student;
</select>
<resultMap id="getStudent01" type="student">
    <result property="id" column="id" />
    <result property="name" column="name" />
    <association property="teacher" column="tid" javaType="Teacher" select="getTeacher01" />
</resultMap>
<select id="getTeacher01" resultType="Teacher" >
	select * from teacher where id = #{tid};
</select>
按照结果嵌套处理
<select id="getStudent02" resultMap="getStudent02" >
	select s.id sid,s.name sname,t.id tid,t.name tname from student s,teacher t where s.tid = t.id;
</select>
<resultMap id="getStudent02" type="student" >
    <result property="id" column="sid" />
    <result property="name" column="sname" />
    <association property="teacher" javaType="Teacher"  >
        <result property="id" column="tid" />
        <result property="name" column="tname" />
    </association>
</resultMap>

原文地址:https://www.cnblogs.com/thetree/p/10_mybatis.html