步骤1. 创建多对多关联表tbl_teacherCourse
CREATE TABLE `test`.`tbl_teacherCourse` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`teacherId` int(11) NULL DEFAULT NULL,
`courseId` int(11) NULL DEFAULT NULL,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
;
步骤2.修改entity/Teacher,Course实体类,双方添加List的属性,实现多对多的关联关系。
Teacher : private List<Course> courses;
Course:private List<Teacher> teachers;
并且生成属性courses和teachers的getter/setter方法。
步骤3.修改TeacherMapper.xml文件,添加<collection>标签,说明教师与课程之间是一对多关系。
<resultMap id="BaseResultMap" type="com.ssm.entity.Teacher" >
<id column="Id" property="id" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="password" property="password" jdbcType="VARCHAR" />
<result column="sex" property="sex" jdbcType="INTEGER" />
<result column="birthday" property="birthday" jdbcType="VARCHAR" />
<result column="professional" property="professional" jdbcType="VARCHAR" />
<result column="salary" property="salary" jdbcType="INTEGER" />
<collection property="courses" ofType="com.ssm.entity.Course">
<id column="cid" property="id" jdbcType="INTEGER" />
<result column="cname" property="name" jdbcType="VARCHAR" />
</collection>
</resultMap>
非常重要的是,还要在TeacherMapper.xml文件里添加一个selectCourseById的SQL语句的定义:
<select id="selectCourseById" parameterType="int" resultMap="BaseResultMap">