mybatis一对多,多对一

关联 association 多对一

问题的出现 、、、
当我们需要查询多张表时,我们有两种大的方式选择
第一就是用映射

接口

	//查询所有Edu_comment
    List<Edu_comment> getIdEdu();
    

Mapper


    <select id="getIdEdu" parameterType="map" resultMap="educom">
        select  c.id cid, c.gmt_modified cgm ,c.teacher_id tid
        from guli_edu.edu_comment  c ,guli_edu.edu_teacher t
    </select>

    <resultMap id="educom" type="edu_comment">
        <result property="id" column="cid"/>
        <result property="gmt_modified" column="cgm"/>

        <!--       对象类型用 association   ;-->
        <!--     集合类型用 collection     JavaType和ofType都是用来指定对象类型的,但是-->
        <!--JavaType是用来指定pojo中属性的类型,而ofType指定的是 映射到list集合属性中pojo的类型-->
        
<!--<association property="tid" javaType="Teacher"   property 代表实体类中 属性的名称(即对象的属性名称)>             -->
        <association property="tid"  javaType="Edu_teacher">
            <result property="id" column="tid"/>
        </association>

    </resultMap>


测试

  @Test
    public void test03(){

        SqlSession sqlSession = MybatisUtil.getSqlSession();
        Edu_ctMapper mapper = sqlSession.getMapper(Edu_ctMapper.class);
        List<Edu_ct> allEdu = mapper.getAllEdu();

        for (Edu_ct use:allEdu){

            System.out.println(use);
        }
    }

注意点
在这里插入图片描述

还有一中方法 就是 把多表联查的 sql写出来先

    SELECT c.id cid,c.`content` cc,c.teacher_id ctid ,t.id tid ,t.name tname
    FROM guli_edu.edu_comment c INNER JOIN guli_edu.edu_teacher t
    WHERE t.id=c.teacher_id

然后建立一个实体类 这个类的属性就是这个sql语句中要查询的列的别名

package com.mumu.pojo;

import lombok.Data;

@Data
public class Edu_ct {

    private  String cid;
    private  String cc;
    private  String  ctid;
    private  String tname;
    private  String tid;
}

然后编写接口


    List<Edu_ct> getAllEdu();

Mapper

<mapper namespace="com.mumu.dao.Edu_ctMapper">


<select id="getAllEdu" resultType="edu_ct">

    SELECT c.id cid,c.`content` cc,c.teacher_id ctid ,t.id tid ,t.name tname
    FROM guli_edu.edu_comment c INNER JOIN guli_edu.edu_teacher t
    WHERE t.id=c.teacher_id



</select>

<!--     SELECT c.id cid,c.`content` cc ,t.id tid ,t.name tname
    FROM guli_edu.edu_comment c JOIN guli_edu.edu_teacher t-->

</mapper>

注意 mapper是 新建实体类
<mapper namespace=“com.mumu.dao.Edu_ctMapper”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值