zoukankan      html  css  js  c++  java
  • Mybatis 一对多 关联查询查询

    一对多 与 一对一 查询有许多相似之处。 
    最主要的区别是 查询结果是list,与之对应的标签为collection.

    班级和学生,一个班有多个学生,而每个学生只能属于一个班。 
    此时班级编号作为学生表的外码。

    学生实体类:

    public class Student {
    
        private int id;
        private String name;
        }
    

    这时班级类修改为:

    public class Classes {
    
        private int id;
        private String name;
        private Teacher teacher;
    
        **private List<Student> list**;
        }
    

    根据班级编号,查询班级信息,以及此班所有学生的信息。 
    同样有两种方法: 
    第一种:

    <select id="getClass" parameterType="int" resultMap="getClassMap">
            SELECT * from class c,teacher t,student s WHERE  s.class_id=c.c_id and c.c_id=#{id}
        </select>
            <resultMap type="Classes" id="getClassMap">
            <id property="id" column="c_id"/>
            <result property="name" column="c_name"/>
            <collection property="list" ofType="Student">
                <id property="id" column="s_id"/>
                <result property="name" column="s_name"/>
            </collection>
        </resultMap>
    

    第二种:

    <select id="getClass2" resultMap="getClassMap2">
            SELECT * FROM class WHERE c_id=#{id}
        </select>
    
        <select id="getStudent" resultType="Student">
            SELECT s_id id, s_name name FROM student WHERE class_id=#{id}
        </select>
    
            <resultMap type="Classes" id="getClassMap2">
            <id property="id" column="c_id"/>
            <result property="name" column="c_name"/>   
            <collection property="list" column="c_id" select="getStudent"></collection>
        </resultMap>
    

    摘自:https://blog.csdn.net/u010785025/article/details/51089233

  • 相关阅读:
    解决curl请求字段中带中文出错的问题
    字体下载
    Qt在windows与Mac OS中获取执行程序版本号
    QProcess启动不了外部程序的问题
    (Qt5Core.dll)处有未经处理的异常: 请求了严重的程序退出。
    QLabel
    解决接收命令行参数的数据中丢失双引号的问题
    QFile保留指定位置的数据
    ubuntu下使用docker安装部署openstf
    远程连接安卓设备步骤
  • 原文地址:https://www.cnblogs.com/gXing/p/8568413.html
Copyright © 2011-2022 走看看