MyBatis多对多关联映射创建示例

 更新时间:2022年06月06日 16:35:17   作者:云淡风轻58  
这篇文章主要为大家介绍了MyBatis多对多关联映射的创建示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

示例

【通过班级查询老师信息】

创建t_classes

创建t_classessTeacher

创建t_teacher

创建Classes

package com.po;
import java.util.List;
public class Classes {
	private Integer cid;
	private String cname;
	private List<Teacher> teachers;
	public Integer getCid() {
		return cid;
	}
	public void setCid(Integer cid) {
		this.cid = cid;
	}
	public String getCname() {
		return cname;
	}
	public void setCname(String cname) {
		this.cname = cname;
	}
	public List<Teacher> getTeachers() {
		return teachers;
	}
	public void setTeachers(List<Teacher> teachers) {
		this.teachers = teachers;
	}
	@Override
	public String toString() {
		return "Classes [cid=" + cid + ", cname=" + cname + ", teachers=" + teachers + "]";
	}
}

创建Teacher

package com.po;
import java.util.List;
public class Teacher {
	private Integer tid;
	private String tname;
	private List<Classes> classes;
	public Integer getTid() {
		return tid;
	}
	public void setTid(Integer tid) {
		this.tid = tid;
	}
	public String getTname() {
		return tname;
	}
	public void setTname(String tname) {
		this.tname = tname;
	}
	public List<Classes> getClasses() {
		return classes;
	}
	public void setClasses(List<Classes> classes) {
		this.classes = classes;
	}
	@Override
	public String toString() {
		return "Teacher [tid=" + tid + ", tname=" + tname + "]";
	}
}

创建ClassesMapper.xml

<?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.mapper.ClassesMapper">
	<!-- 自定义结果映射 -->
	<resultMap type="com.po.Classes" id="ClassesWithTeacherResult">
		<id property="cid" column="cid"/>
		<result property="cname" column="cname"/>
		<!-- 多表关联映射 -->
		<collection property="teachers" ofType="com.po.Teacher">
			<id property="tid" column="tid"/>
			<result property="tname" column="tname"/>
		</collection>
	</resultMap>
	<select id="findClassesWithTeacher" parameterType="Integer" resultMap="ClassesWithTeacherResult">
		select * from t_classes c,t_teacher t,t_classessTeacher ct
		where ct.cid=c.cid
		and ct.tid=t.tid
		and c.cid=#{cid}
	</select>
</mapper>

配置mybatis-config.xml

<!-- 配置Mapper的位置 -->
	<mappers>
		<mapper resource="com/mapper/ClassesMapper.xml"/>			
	</mappers>

创建ClassesDao

package com.dao;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.factory.SessionFactory;
import com.po.Classes;
public class ClassesDao {
	private SqlSession session=SessionFactory.getSqlSession();
	@Test
	public void findClassesWithTeacher() {
		Classes classess=session.selectOne("com.mapper.ClassesMapper.findClassesWithTeacher", 1);
		System.out.println(classess);
	}
}

执行 findClassesWithTeacher()方法

以上就是MyBatis多对多关联映射创建示例的详细内容,更多关于MyBatis多对多关联映射的资料请关注脚本之家其它相关文章!

相关文章

  • springboot添加https服务器的方法

    springboot添加https服务器的方法

    这篇文章主要介绍了springboot添加https服务器的方法,小编在android开发中发现很多app都是https访问的,为了方便测试,自己搭建了一个https服务器,需要的朋友可以参考下
    2017-11-11
  • springboot2.3.1替换为其他的嵌入式servlet容器的详细方法

    springboot2.3.1替换为其他的嵌入式servlet容器的详细方法

    这篇文章主要介绍了springboot2.3.1替换为其他的嵌入式servlet容器的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • JavaWeb中获取表单数据及乱码问题的解决方法

    JavaWeb中获取表单数据及乱码问题的解决方法

    这篇文章主要介绍了JavaWeb中获取表单数据及乱码问题的解决方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-11-11
  • Java Javassist轻松操作字节码的技术指南

    Java Javassist轻松操作字节码的技术指南

    Javassist 是一个 Java 库,允许你在运行时定义新类或修改现有类文件,本文主要为大家详细介绍了如何使用Javassist轻松操作字节码,感兴趣的小伙伴可以参考一下
    2025-04-04
  • java中Swing会奔跑的线程侠

    java中Swing会奔跑的线程侠

    本文通过代码示例给大家详细讲解了java中Swing会奔跑的线程侠这个经典的示例,有兴趣的朋友学习下。
    2018-03-03
  • Java方法重载和方法重写的区别到底在哪?

    Java方法重载和方法重写的区别到底在哪?

    今天给大家带来的是关于Java的相关知识,文章围绕着Java方法重载和方法重写的区别到底在哪展开,文中有非常详细的解释,需要的朋友可以参考下
    2021-06-06
  • JAVACORE与HEAPDUMP生成方法

    JAVACORE与HEAPDUMP生成方法

    JavaCore文件主要保存的是Java应用各线程在某一时刻的运行的位置,即JVM执行到哪一个类、哪一个方法、哪一个行上,它是一个文本文件,打开后可以看到每一个线程的执行栈,以stack trace的显示,本文介绍JAVACORE与HEAPDUMP生成大法,感兴趣的朋友跟随小编一起看看吧
    2024-08-08
  • SpringMVC异常处理的三种方式小结

    SpringMVC异常处理的三种方式小结

    本文主要介绍了SpringMVC异常处理的三种方式小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-09
  • springboot手动事务回滚的实现代码

    springboot手动事务回滚的实现代码

    这篇文章主要介绍了springboot手动事务回滚的实现方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Java实现作业调度的示例代码

    Java实现作业调度的示例代码

    这篇文章主要为大家详细介绍了如何利用Java实现SJF算法调度,要求测试数据可以随即输入或从文件中读入,文中的示例代码讲解详细,需要的可以参考一下
    2023-04-04

最新评论