MyBatis中的collection两种常用使用方法(非常详细)

MyBatis中的collection两种常用使用方法

码云MybatisDemo: 用来学习springboot整合mybatis (gitee.com)

collection主要是应对表关系是一对多的情况

查询的时候,用到联表去查询

接下来的小案例包括:市,学校,医院(随便写的),写一个最简单的demo

主要的功能就是查询出所有的市以及对应的市下面所有的学校和医院

实体类:医院

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Hospital {
    private int id;                 //医院编号
    private int urbanId;            //市的编号
    private String hospitalName;    //医院名称
    private Long people;            //医院人数
}

实体类:学校

@Data
@AllArgsConstructor
@NoArgsConstructor
public class School {
    private int id;               //学校编号
    private int urbanId;          //市的编号
    private String schoolName;    //学校名字
    private Long people;          //学校人数
}

实体类:市

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Urban {
    private int id;                   //市的编号
    private String cityId;            //省的编号(此博文没用到)
    private String urbanName;         //城市名字
    private List<School> schools;     //对应的所有的学校
    private List<Hospital> hospitals; //对应的所有的医院
}

第一种方式,采用select

首先我们要在学校和医院接口对应的xml中写出按照

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis的association和collection两种常用的关联映射方式,用于处理实体类之间的一对一和一对多关系。 association用于表示一对一关系,它将一个属性映射到另一个实体类上。例如,一个订单(Order)对象有一个对应的用户(User)对象,可以使用association将用户对象映射到订单对象上。 collection用于表示一对多关系,它将一个属性映射到一个集合上,集合的元素是另一个实体类。例如,一个部门(Department)对象有多个员工(Employee)对象,可以使用collection将员工对象映射到部门对象上。 具体使用方式如下: 1. association使用方法: - 在Mapper.xml使用association标签,指定property属性为要映射的属性名,resultType属性为关联实体类的全限定名,column属性为关联实体类的外键字段名。 ``` <resultMap id="orderMap" type="com.example.Order"> <result column="id" property="id"/> <result column="user_id" property="user.id"/> <association property="user" resultType="com.example.User" column="user_id"> <result column="username" property="username"/> <result column="age" property="age"/> </association> </resultMap> ``` 2. collection使用方法: - 在Mapper.xml使用collection标签,指定property属性为要映射的属性名,ofType属性为集合元素的类型,resultMap属性为集合元素的映射规则。 ``` <resultMap id="departmentMap" type="com.example.Department"> <result column="id" property="id"/> <result column="name" property="name"/> <collection property="employees" ofType="com.example.Employee" resultMap="employeeMap"> <id column="employee_id" property="id"/> <result column="name" property="name"/> <result column="age" property="age"/> </collection> </resultMap> ``` 其,employeeMap为Employee类的映射规则。 以上是MyBatisassociation和collection的基本用法,需要根据实际情况进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值