Mybatis多表使用

作者: LeslieFind | 来源:发表于2021-01-18 22:07 被阅读0次

    查询:

    多对一:

    表A对条数据对应表B的一条数据,比如多个学生对应一个英语老师,我们要查询学生信息的同时打印出老师信息
    关键词:
    1、内连接
    2、association
    具体理解:
    1、关联关系:从从表的实体类中要定义一个主表实体类的属性
    2、再写sql,sql应该是内连接2张表,查询条件是a.主键=b.外键
    3、resultMap:属性id:这个resultMap的唯一标识;属性type:返回的类型,应该是从表类型;属性id及result标签:从表的属性与数据库字段的映射
    4、association:作用是对从表实体类中的主表类型属性的一个映射;属性property:对应从表实体类中改字段名称,属性id:对应从表中外键;属性javaType:对应该关联的主表实体类;属性id和result标签:关联的主表的属性与字段映射关系
    5、select标签内,需要属性resultMap,值为上面的resultMap中的id值,sql语句提前写好即可

    一对多:

    表A中的一条数据,在表B中有多条关联数据;比如,一个老师对应多个学生,查询这个老师下的学生列表
    关键词:
    1、左外连接
    2、collection
    具体操作:
    1、关联关系:在主表的实体类新增属性List<从表实体类型>
    2、再写sql,sql应该是左外连接,主表A在左,从表B在右,查询条件是a.主键=b.外键
    3、resultMap:属性id:略;属性type:主表实体类型;属性id和result:对应type主表的属性和字段映射
    4、collection:作用是与主表关联的从表集合(一对多,多个,所以用list放);属性property:主表中新增的那个list属性名;opType:List的泛型类型,也就是从表的实体类型;属性id和result:从表属性和字段映射
    5、select标签内,需要属性resultMap,值为上面的resultMap中的id值,sql语句提前写好即可

    相关文章

      网友评论

        本文标题:Mybatis多表使用

        本文链接:https://www.haomeiwen.com/subject/avkfzktx.html