• MyBatis学习笔记之resultMap


    使用mybatis不能不说的是resultMap

    相比resultClass来说resultMap可以适应更复杂的关系映射,允许指定字段的数据类型,支持“select *” ,并不要求定义 ResultSet所有返回字段的映射

    在resultMap中配置如下, 主要是搞懂关联关系怎么配置就可以了,无非就是一对一,一对多, 多对多:

     

      <resultMap id="BaseResultMap" type="类的全路径" >
        <id column="表id列" property="对应类属性" jdbcType="插入到数据库的类型" />
        <result column="表其它列" property="对应类属性" jdbcType="插入到数据库的类型" />
    /*如果要映射的类中有对象作为类属性(类中包含其它类)的时候需要在resultMap中使用association,
     如果是集合(一对多)时使用collection,使用collection时如果使用column 一般与select连用*/  
    <association property="projectOrg" javaType="com.ldrc.srm.ou.dal.dataobject.projectinfo.project.ProjectOrg"   resultMap="ProjectOrgMapper.BaseResultMap">  </association>  <collection property="roleList" column="US_ID" ofType="com.zjx.entity.system.Role"
         
    resultMap="RoleMapper.BaseResultMap" select="RoleMapper.selectUserRoles">
     </collection> </resultMap>

    resultMap 是最常用和最重要的属性。ResultMap 属性的值等于预先定义的 resultMap 

    素的 name 属性值(参照下面的例子) 。使用 resultMap 可以控制数据如何从结果集中取出,以及哪一个属性匹配哪一个字段。不象使用 resultClass 的自动映射方法,resultMap 属性可以允许指定字段的数据类型,NULL 的替代值复杂类型映射(包括其他 Java Bean,集合类型和基本类型包装类) 。关于 resultMap 的详细讨论放在以后的章节, 这里只给出一个相关 statement 的 resultMap的例子。

    <resultMap id=get-product-result” class=com.ibatis.example.Product>

      <result property=id” column=PRD_ID/>

      <result property=description” column=PRD_DESCRIPTION/>

    </resultMap>

    <statement id=getProduct” resultMap=get-product-result”>

      select * from PRODUCT

    </statement>

    上面的例子中,通过 resultMap 的定义,查询语句得到的 ResultSet 被映射成 Product 

    象。resultMap 定义的“id”属性值将赋予“PRO_ID”字段值,而“description”属性值将赋予“PRD_DESCRIPTION”字段值。注意 resultMap 支持“select *” ,并不要求定义 ResultSet所有返回字段的映射。

  • 相关阅读:
    大象中原
    自己动手,编写神经网络程序,解决Mnist问题,并网络化部署-网络化部署
    自己动手,编写神经网络程序,解决Mnist问题,并网络化部署-编写网络
    py4CV例子2.5车牌识别和svm算法重构
    py4CV例子3Mnist识别和ANN
    【CC评网】2013.第41周 不求排版,简单就好
    【CC评网】2013.第39周 漂亮的作息表
    【CC评网】2013.第38周 要阅读 要有好工具
    书评 《软件随想录》
    BerkeleyDB 多索引查询
  • 原文地址:https://www.cnblogs.com/YingYue/p/3897472.html
Copyright © 2020-2023  润新知