zoukankan      html  css  js  c++  java
  • 复杂映射

    有一个的关系
    在嵌套结果映射中 id 元素扮演了非常重要的角色。 应该通常指定一个或多
    个属性,它们可以用来唯一标识结果。实际上就是如果你不使用它( id 元素),但是会产生
    一个严重的性能问题,
    id:来唯一标识结果
    column :表中字段的名称
    property:bean属性的名称
    <resultMap type="com.zhang.bean.Phone" id="queryPhoneMap">
    <id column="phone_id" property="phoneId" javaType="String"/>
    <result column="phone_name" property="phoneName"/>
    <result column="phone_price" property="price"/>
    <result column="phone_manufacturer" property="manufacturer"/>
    <association property="simCard" column="sim_Card" javaType="com.zhang.bean.SIMCard">
    <id property="simNo" column="sim_no" javaType="String"/>
    <result property="manufacturer" column="manufacturer" javaType="String"/>
    <result property="price" column="price" javaType="double"/>
    <result property="simName" column="sim_Name" javaType="String"/>
    </association>
    </resultMap> 
    <select id="queryPhoneInfomationByPhoneName" resultMap="queryPhoneMap" parameterType="String">
         SELECT p.`phone_Id`,p.`phone_manufacturer`,p.`phone_Name`,p.`phone_price`,
          c.`manufacturer`,c.`price`,c.`sim_Name`,c.`sim_no`
         FROM phone p,simcard c
        WHERE p.`sim_Card`=c.`sim_no` AND p.`sim_Card`=#{cardNo}
    </select>
    一对多的关系《集合》
     
    ofType:这个属性用来区分JavaBean(或字段)属性类型和集合包含的类型来说是很重要的
    <resultMap type="com.zhang.bean.ClassS" id="Query">
    <id property="classNo" column="class_no"/>
    <result property="className" column="class_name" />
    <collection property="students" ofType="com.zhang.bean.Student" >
    <id property="studentNo" column="student_no" />
    <result property="studentName" column="student_name" />
    <result property="studentAge" column="student_age" />
    <result property="studentClass" column="student_class" />
    <result property="studentAddress" column="studdent_address" />
    <result property="studentSex" column="student_sex" />
    <result property="studentGrate" column="student_grate" />
    </collection>
    </resultMap>
    <select id="getClassByClassNo" resultMap="Query" parameterType="int">
            SELECT c.`class_name`,c.`class_no`,s.`student_no`,s.`student_name`,s.`student_age`,s.`student_class`,s.`studdent_address`,s.`student_sex`,s.`studen        t_grate`
           FROM class c,studentinformation s WHERE c.`class_no`=s.`student_class`
           AND c.`class_no`=#{class_No}
    </select>
    discriminator鉴别器
    <resultMap id="vehicleResult" type="Vehicle">
    <id property=”id” column="id" />
    <result property="vin" column="vin"/>
    <result property="year" column="year"/>
    <result property="make" column="make"/>
    <result property="model" column="model"/>
    <result property="color" column="color"/>
    <discriminator javaType="int" column="vehicle_type">
    <case value="1" resultMap="carResult"/>
    <case value="2" resultMap="truckResult"/>
    <case value="3" resultMap="vanResult"/>
    <case value="4" resultMap="suvResult"/>
    </discriminator>
    </resultMap>
    在这个示例中, MyBatis 会从结果集中得到每条记录,然后比较它的 vehicle 类型的值。
    如果它匹配任何一个鉴别器的实例,那么就使用这个实例指定的结果映射。
  • 相关阅读:
    graphics.drawRect()坐标解释
    点击上、下一页显示图片
    [笔记] systemverilog学习笔录
    [转帖]Verilog的语法及generate使用
    [笔记]ALTLVDS_TX和ALTLVDS_RX及Modelsim使用技巧
    [转帖]Quartus II中FPGA的管脚分配保存方法
    [笔记]8组LVDS_TX和LVDS_RX的调试心得
    [笔记]Altera中FIFO
    [笔记] 输入信号的边沿检测
    [笔记]systemverilog书本推荐
  • 原文地址:https://www.cnblogs.com/zhangXingSheng/p/6222187.html
Copyright © 2011-2022 走看看