mybatis resultMap 子元素
- resultMap
- constructor - 类在实例化时,用来注入结果到构造方法中
- idArg - ID 参数;标记结果作为 ID 可以帮助提高整体效能
- arg - 注入到构造方法的一个普通结果
- id – 一个 ID 结果;标记结果作为 ID 可以帮助提高整体效能
- result – 注入到字段或 JavaBean 属性的普通结果
- association – 一个复杂的类型关联;许多结果将包成这种类型
嵌入结果映射 – 结果映射自身的关联,或者参考一个 - collection – 复杂类型的集
嵌入结果映射 – 结果映射自身的集,或者参考一个 - discriminator – 使用结果值来决定使用哪个结果映射
- case – 基于某些值的结果映射
嵌入结果映射 – 这种情形结果也映射它本身,因此可以包含很多相 同的元素,或者它可以参照一个外部的结果映射。
- case – 基于某些值的结果映射
- constructor - 类在实例化时,用来注入结果到构造方法中
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 子元素的更多相关文章
- MyBatis基础入门《十五》ResultMap子元素(collection)
MyBatis基础入门<十五>ResultMap子元素(collection) 描述: 见<MyBatis基础入门<十四>ResultMap子元素(association ...
- MyBatis基础入门《十四》ResultMap子元素(association )
MyBatis基础入门<十四>ResultMap子元素(association ) 1. id: >> 一般对应数据库中改行的主键ID,设置此项可以提高Mybatis的性能 2 ...
- mybatis ResultMap详解
前言 MyBatis是基于“数据库结构不可控”的思想建立的,也就是我们希望数据库遵循第三范式或BCNF,但实际事与愿违,那么结果集映射就是MyBatis为我们提供这种理想与现实间转换的手段了,而res ...
- [Mybatis]resultMap的使用总结
resultMap是Mybatis最强大的元素,它可以将查询到的复杂数据(比如查询到几个表中数据)映射到一个结果集当中. resultMap包含的元素的相关属性解释如下: <!--column不 ...
- margin折叠-从子元素margin-top影响父元素引出的问题
正在做一个手机端电商项目,顶部导航栈的布局是一个div包含一个子div,如果给在正常文档流中的子div一个垂直margin-top,神奇的现象出现了,两父子元素的边距没变,但父div跟着一起往下走了! ...
- 透视 HTML子元素的margin-top样式会应用在父元素上的原由
情况说明 当对页面中元素设置margin-top样式时,如果该元素有父元素,则margin-top会应用与父元素,子元素的top与父元素的top重叠.举例说明 <style>body{ma ...
- 父容器利用opacity设置透明后,子元素跟着变透明的解决方案
背景半透明,子元素不透明的效果经常需要用到.通常对父容器使用opacity属性时,子元素也跟着变透明,所以不妨设置父容器的 background-color:rgba(r,g,b,x); 其中x取值从 ...
- 解决子元素设置margin-top,效果到父元素上的问题
有时当我们设置子元素的margin-top,但是却发现子元素没有出现上外边距的效果,反而是父元素出现了上外边距的效果. 这种问题的解决方法如下: 1.给父元素加边框. 2.给父元素设置padding- ...
- css:子元素div 上下左右居中方法总结
最近在面试,不停地收到了知识冲击,尤其是对于一些基础的css.html.js问题居多,所以自我也在做反思,今天就css问题,如何让一个子元素div块元素上下左右居中 (以下总结方法,都已得到验证). ...
随机推荐
- P5650 基础字符串练习题
设定'0'权值为1,设定'1'权值为-1 然后就是最大子段和 #include <cstdio> #include <algorithm> #include <cstri ...
- vue初级尝试
为了跟上前端后台化的潮流,本少不得不开始关注vue,下列上机代码是针对App.vue进行的更改 数据渲染----一般键值对,数组,对象和对象数组 <template> <div id ...
- JDK、JRE、JVM的区别与关系
JDK JDK是Java开发工具包,是Sun Microsystems针对Java开发员的产品. JDK中包含JRE,在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里 ...
- nginx反向代理tomcat 时,出现https redirect后变成http的问题解决方法
需要修改两个配置 1.nginx配置 location / { proxy_pass http://test-server; proxy_set_header Host $host; proxy_se ...
- OBDSTAR X300 PRO3详细评论
OBDSTAR 公司的X300 PRO3钥匙主控系统具有SKP900的防盗锁钥匙编程功能,以及新功能,例如,测速计调节,EEPROM / PIC和OBDII.它的风格完全符合工业惯例,例如,它采用双边 ...
- Spring Security 自定义 登陆 权限验证
转载于:https://www.jianshu.com/p/6b8fb59b614b 项目简介 基于Spring Cloud 的项目,Spring Cloud是在Spring Boot上搭建的所以按照 ...
- 传统Spring配置JTA 实现多数据源事务的统一管理
分布式事务是指事务的参与者.支持事务的服务器.资源管理器以及事务管理器分别位于分布系统的不同节点之上,在两个或多个网络计算机资源上访问并且更新数据,将两个或多个网络计算机的数据进行的多次操作作为一个整 ...
- [CTS2019]田野(80分)
loj嘟嘟嘟 学完模拟退火后开始搞这道题,搞了一下午最终搞到了80分,剩下的实在不知道怎么办了-- 首先肯定是把有交点的线段划分到一个集合,然后对每一个集合求一遍凸包. 然后两两合并,如果新的凸包的周 ...
- C语言实现简单的哈希表
这是一个简单的哈希表的实现,用c语言做的. 哈希表原理 这里不讲高深理论,只说直观感受.哈希表的目的就是为了根据数据的部分内容(关键字),直接计算出存放完整数据的内存地址. 试想一下,如果从链表中根据 ...
- CDQ分治的嵌套
CDQ的嵌套 上一篇博客介绍了一下CDQ的入门思想.这里再介绍一下它的进阶,CDQ套CDQ.其实如果对入门思想掌握的透彻,嵌套也是很容易掌握的,思想是一样的. 什么是嵌套 简单地说,有的问题,如果用一 ...