zoukankan      html  css  js  c++  java
  • 对集合类型属性的实体类的查询集的封装

    对集合类型属性的实体类的查询集的封装

    实体类
    public class Student {
        private int id;
        private String name;
        private String sex;
        //学生和学科的一对多关系
        private List<Subject> subjectList;
    
    其映射.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">
    <!--namespace: 所需实现的接口全限定名,里面的类名除了做别名设定的,都要用全限定名表示-->
    <mapper namespace="com.hk.dao.StudentMapper"><!--1.namespace:这个映射文件.xml发生作用的地方(一个接口类)-->
        <!-- 结果映射(查询结果的封装规则)-->
        <resultMap id="studentResultMap" type="Student">  <!-- 2.id:自己取名,要唯一性。  3.type:用来封装接受返回结果集的全类名-->
            <id property="id" column="id"/>  <!-- 3.property,封装类的属性名  4.column 要被查询的别名-->
            <result property="name" column="name"/>
            <result property="sex" column="sex"/>
            <!-- =================================================== -->
            <!--collection:代表封装类里面的集合属性如:List<Subject> subjectList;--> <!--ofType:填的值为集合泛型的全类名-->  
            <!--补充:<association property="" javaType=""> 表示一对一关系,即用它表示类里面的属性类型为实体类的属性-->  
            <!-- =================================================== --> 
            <collection property="subjectList" ofType="Subject">      
                <id property="id" column="subject_id"/><!-- collection标签里面的property表示Subject类的属性名-->
                <result property="name" column="subject_name"/>
                <result property="grade" column="grade"/>
            </collection>
        </resultMap>
    
        <!-- 多对多关系的查询表的连接查询 -->
        <!--5.id的值:namespace值接口的抽象方法名称. resultMap的值:结果映射的唯一标识id-->
        <select id="selectStudentByName" resultMap="studentResultMap">
            select st.id,st.name,st.sex,su.id as subject_id,su.name as subject_name,su.grade
            from t_studuent st
            inner join t_student_subject tss <!-- 通过t_stu_sub表建立二者之间的关系 -->
            on st.id=tss.student_id
            inner join t_subject su on tss.subject_id=su.id
            where st.name=#{name}
        </select>
    </mapper>
    

    实例联系

    Don't just say it. Show me your code.
  • 相关阅读:
    软件工程团队作业2.1——《业务流程模型》
    软件工程团队作业1——《调研提纲》
    2020软件工程第四次作业
    作业四(一)
    17074230 团队项目选题报告
    计算与软件工程 作业5
    计算与软件工程 作业4
    17074230 第三次作业
    17074230 第二次作业
    17074230 赵雅雅 第一次作业
  • 原文地址:https://www.cnblogs.com/bigbeardhk/p/13154531.html
Copyright © 2011-2022 走看看