MyBatis 入门实例 一对多,多对一 基于xml配置

MyBatis 入门实例 一对多,多对一 基于xml配置

这里我们以班级和学生为例,一个班级里面对应多个学生,这是一对多;反过来,多个学生对应一个班级,这是多对一

一、建立学生和班级的实体类

Student.java

@TableName("student")
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Student {
    private int sid;
    private String sname;
    private Classes classes; //班级  一的一方
    }
@TableName("class")
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Classes {
    private int cid;
    private String cname;
    private Set<Student> students; //多的一方
     }

二、在数据库中根据实体类创建相应的数据表

三、多对一:定义操作 Classes 表的sql映射文件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="one.to.many.classesMapper">
    <select id="getClasses" resultMap="getClassesMap">
        select * from classes c,student s where s.cid=c.cid and c.cid=#{cid}
    </select>
    <resultMap type="com.example.model.Classes" id="getClassesMap">
        <id column="cid" property="cid"></id>
        <result column="cname" property="cname"/>
        <collection property="students" ofType="com.example.model.Student">
            <id column="sid" property="sid"/>
            <result column="sname" property="sname"/>
        </collection>
    </resultMap>
     
</mapper>

完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值