springboot mybatis (关联关系:一对一,一对多,多对多)

1、一对一关联

	/**
     * 班级信息
     */
    private ClassRoom classRoomInfo;
	<resultMap id="BaseResultMap" type="com.mage.mybatis.association.entity.Student">
        <id column="sid" property="id" />
        <result column="name" property="name" />
        <result column="class_room_id" property="classRoomId" />
        <association property="classRoomInfo" column="class_room_id" javaType="classRoom">
            <id column="cr_id" property="id" />
            <result column="class_room_name" property="name" />
        </association>
    </resultMap>

解释一下:
这个是mybatis的关联关系一对一标签
property:这个属性代表当前一对一关系在主实体类(也就是学生实体类)里的属性名称
column:代表通过主表中的某个关联字段关联连接的表,也就是class_room_id 班级id可以跟班级扯上关系
javaType:查询出来后要映射的实体类

2、一对多

<!--  按班级id查询班级信息及该班级的学生  -->
    <select id="getClassRoomInnerStudents" resultMap="BaseResultMap" parameterType="int">
        SELECT cr.id cr_id,cr.`name` class_room_name ,s.id sid,s.`name`,s.class_room_id
        FROM t_class_room cr
        INNER JOIN t_student s ON s.class_room_id = cr.id
        where cr.id = 1
    </select>
 	/**
     * 学生
     */
    private List<Student> students;
	<resultMap id="BaseResultMap" type="com.mage.mybatis.association.entity.ClassRoom">
        <id column="cr_id" property="id" />
        <result column="class_room_name" property="name" />
        <collection property="students" column="cr_id" javaType="ArrayList" ofType="student">
            <id column="sid" property="id" />
            <result column="name" property="name" />
            <result column="class_room_id" property="classRoomId" />
        </collection>
    </resultMap>

属性:
property:与association标签中的property一个意思,也是指向与当前主实体中的成员变量
column:一对多关系主表连接子表的外键
javaType:因为是主实体类里的成员变量为集合的原因,所以这里填写ArrayList
ofType:集合中存储的实体类,所以填写Student类,我这里是小写的原因是我配置了别名

ClassRoomMapper.java下加入方法

/**
     * 按班级id查询班级信息及该班级的学生
     * @param cid
     * @return
     */
    ClassRoom getClassRoomInnerStudents(Integer cid);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值