• resultMap

    • constructor - 类在实例化时,用来注入结果到构造方法中

      • idArg - ID 参数;标记结果作为 ID 可以帮助提高整体效能
      • arg - 注入到构造方法的一个普通结果
    • id – 一个 ID 结果;标记结果作为 ID 可以帮助提高整体效能
    • result – 注入到字段或 JavaBean 属性的普通结果
    • association – 一个复杂的类型关联;许多结果将包成这种类型 
      嵌入结果映射 – 结果映射自身的关联,或者参考一个
    • collection – 复杂类型的集 
      嵌入结果映射 – 结果映射自身的集,或者参考一个
    • discriminator – 使用结果值来决定使用哪个结果映射 
      • case – 基于某些值的结果映射 
        嵌入结果映射 – 这种情形结果也映射它本身,因此可以包含很多相 同的元素,或者它可以参照一个外部的结果映射。

constructor标签

<constructor>
<!-- 这里的int对应实体类构造方法参数的 Integer -->
<idArg column="id" javaType="int"/>
<arg column="username" javaType="String"/>
</constructor>
//对应的构造方法
public POJO(Integer id,String username){
...
}

它将结果集映射到构造方法上,它根据参数的类型和顺序来确定构造方法。构造方法注入允许你在初始化时 为类设置属性的值,而不用暴露出公有方法。

discriminator标签

 <resultMap id="carDiscriminator" type="Car" >
<!-- javaType 是需要被用来保证等价测试的合适类型,column指定需要鉴别的列,case可以指定结果集 -->
<discriminator javaType="int" column="age">
<case value="1" resultMap="car"/>
<case value="2" resultType="car">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="money" column="money"/>
<result property="age" column="age"/>
<result property="uId" column="uId"/>
<association property="user" resultMap="me.dao.UserDao.User" columnPrefix="u_"/>
</case>
</discriminator>

association标签

   <resultMap type="Car" id="carWithUser" extends="car">
<!-- columnPrefixw为resultMap的每个column添加前缀 -->
<association property="user" resultMap="me.dao.UserDao.User" columnPrefix="u_"/>
<!-- select指定嵌套的查询的Id,column指定根据哪列来嵌套查询 -->
<association property="car" column="id" select="getCar" />
</resultMap>

collection标签

  <resultMap type="User" id="UserWithCarAndDog">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="age" column="age"/>
<!-- select指定嵌套的查询的Id,column指定根据哪列来嵌套查询 -->
<collection property="dogs" column="id" select="selectDogsWithUid"/>
<!-- columnPrefixw为resultMap的每个column添加前缀 -->
<collection property="dogs" ofType="Dog" resultMap="dog" columnPrefix="dog_"/>
</resultMap>

mybatis resultMap 子元素的更多相关文章

  1. MyBatis基础入门《十五》ResultMap子元素(collection)

    MyBatis基础入门<十五>ResultMap子元素(collection) 描述: 见<MyBatis基础入门<十四>ResultMap子元素(association ...

  2. MyBatis基础入门《十四》ResultMap子元素(association )

    MyBatis基础入门<十四>ResultMap子元素(association ) 1. id: >> 一般对应数据库中改行的主键ID,设置此项可以提高Mybatis的性能 2 ...

  3. mybatis ResultMap详解

    前言 MyBatis是基于“数据库结构不可控”的思想建立的,也就是我们希望数据库遵循第三范式或BCNF,但实际事与愿违,那么结果集映射就是MyBatis为我们提供这种理想与现实间转换的手段了,而res ...

  4. [Mybatis]resultMap的使用总结

    resultMap是Mybatis最强大的元素,它可以将查询到的复杂数据(比如查询到几个表中数据)映射到一个结果集当中. resultMap包含的元素的相关属性解释如下: <!--column不 ...

  5. margin折叠-从子元素margin-top影响父元素引出的问题

    正在做一个手机端电商项目,顶部导航栈的布局是一个div包含一个子div,如果给在正常文档流中的子div一个垂直margin-top,神奇的现象出现了,两父子元素的边距没变,但父div跟着一起往下走了! ...

  6. 透视 HTML子元素的margin-top样式会应用在父元素上的原由

    情况说明 当对页面中元素设置margin-top样式时,如果该元素有父元素,则margin-top会应用与父元素,子元素的top与父元素的top重叠.举例说明 <style>body{ma ...

  7. 父容器利用opacity设置透明后,子元素跟着变透明的解决方案

    背景半透明,子元素不透明的效果经常需要用到.通常对父容器使用opacity属性时,子元素也跟着变透明,所以不妨设置父容器的 background-color:rgba(r,g,b,x); 其中x取值从 ...

  8. 解决子元素设置margin-top,效果到父元素上的问题

    有时当我们设置子元素的margin-top,但是却发现子元素没有出现上外边距的效果,反而是父元素出现了上外边距的效果. 这种问题的解决方法如下: 1.给父元素加边框. 2.给父元素设置padding- ...

  9. css:子元素div 上下左右居中方法总结

    最近在面试,不停地收到了知识冲击,尤其是对于一些基础的css.html.js问题居多,所以自我也在做反思,今天就css问题,如何让一个子元素div块元素上下左右居中 (以下总结方法,都已得到验证). ...

随机推荐

  1. BZOJ 4009: [HNOI2015]接水果 (整体二分+扫描线 树状数组)

    整体二分+扫描线 树状数组 具体做法看这里a CODE #include <cctype> #include <cstdio> #include <cstring> ...

  2. 题解 [51nod1201] 整数划分

    题面 解析 首先,因为是不同的数字, 可以从小到大依次枚举加上每一个数字的贡献,再枚举每个数. 然而这样会T掉... 考虑到\(n\)只有\(50000\), 当分成的数最多时,设最大的数为\(m\) ...

  3. 【csp模拟赛5】限制 (restrict.cpp)--数学

    自己看吧: 爆搜代码: //春水初涨-春林初盛-春风十里-不如你 //----hzwer // 这是啥子题,读不懂-- //题意有问题 -- #include<iostream> #inc ...

  4. Makefile(三)

    在平时使用中,可以使用以下的makefile来编译单独的代码 src = $(wildcard *.c) obj = $(patsubst %.c, %.o, $(src)) CC = gcc CFL ...

  5. SQLAlchemy框架

    Python 的 ORM 框架 SQLAlchemy 有些同学已经听说过这个框架的大名了,也听说了 SQLAlchemy 没有 Django 的 Models 好用 我在这里官宣辟谣一下啊, Mode ...

  6. bash脚本中使用选项 getopts

    原文链接 : http://note.youdao.com/noteshare?id=0cf08484c7308c763726e63e9a638ff5&sub=EF6A110E2F3345E6 ...

  7. Python2.x 里解决中文编码的万能钥匙

    注意: Python2.x默认编码环境是ASCII,当和取回的数据编码格式不一致时,可能会造成乱码:我们可以指定保存内容的编码格式,一般情况下,我们可以在代码最上方添加 import sys relo ...

  8. 【sed】基本用法

    1. 文本处理 sed编辑器根据sed命令处理数据流中的数据:在流编辑器将所有命令与一行数据匹配完后,它会读取下一行数据并重复以下过程: (1) 一次从输入中读取一行数据 (2) 根据所提供的编辑器命 ...

  9. 在windows系统搭建Flutter开发环境

    开发环境搭建(Windows) 系统要求 设置FLutter镜像(非必须) 获取Flutter SDK Android开发环境设置 安装Flutter插件 系统要求 在Windows上要安装并运行Fl ...

  10. 【Spark机器学习速成宝典】推荐引擎——协同过滤

    目录 推荐模型的分类 ALS交替最小二乘算法:显式矩阵分解 Spark Python代码:显式矩阵分解 ALS交替最小二乘算法:隐式矩阵分解 Spark Python代码:隐式矩阵分解 推荐模型的分类 ...