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所有返回字段的映射。
MyBatis学习笔记之resultMap的更多相关文章
- Mybatis学习笔记8 - resultMap自定义结果集映射规则
一.resultMap自定义结果集映射规则 示例如下: 接口定义: package com.mybatis.dao; import com.mybatis.bean.Employee; public ...
- MyBatis:学习笔记(3)——关联查询
MyBatis:学习笔记(3)--关联查询 关联查询 理解联结 SQL最强大的功能之一在于我们可以在数据查询的执行中可以使用联结,来将多个表中的数据作为整体进行筛选. 模拟一个简单的在线商品购物系统, ...
- Mybatis学习笔记二
本篇内容,紧接上一篇内容Mybatis学习笔记一 输入映射和输出映射 传递简单类型和pojo类型上篇已介绍过,下面介绍一下包装类型. 传递pojo包装对象 开发中通过可以使用pojo传递查询条件.查询 ...
- Mybatis学习笔记之二(动态mapper开发和spring-mybatis整合)
一.输入映射和输出映射 1.1 parameterType(输入类型) [传递简单类型] 详情参考Mybatis学习笔记之一(环境搭建和入门案例介绍) 使用#{}占位符,或者${}进行sql拼接. [ ...
- mybatis学习笔记--常见的错误
原文来自:<mybatis学习笔记--常见的错误> 昨天刚学了下mybatis,用的是3.2.2的版本,在使用过程中遇到了些小问题,现总结如下,会不断更新. 1.没有在configurat ...
- mybatis学习笔记(10)-一对一查询
mybatis学习笔记(10)-一对一查询 标签: mybatis mybatis学习笔记10-一对一查询 resultType实现 resultMap实现 resultType和resultMap实 ...
- mybatis学习笔记之基础复习(3)
mybatis学习笔记之基础复习(3) mybatis是什么? mybatis是一个持久层框架,mybatis是一个不完全的ORM框架.sql语句需要程序员自己编写, 但是mybatis也是有映射(输 ...
- mybatis学习笔记(7)-输出映射
mybatis学习笔记(7)-输出映射 标签: mybatis mybatis学习笔记7-输出映射 resultType 输出简单类型 输出pojo对象和pojo列表 resultMap result ...
- Mybatis学习笔记导航
Mybatis小白快速入门 简介 本人是一个Java学习者,最近才开始在博客园上分享自己的学习经验,同时帮助那些想要学习的uu们,相关学习视频在小破站的狂神说,狂神真的是我学习到现在觉得最GAN的老师 ...
随机推荐
- [改善Java代码]使用package-info类为包服务
建议50: 使用package-info类为包服务 Java中有一个特殊的类:package-info类,它是专门为本包服务的,为什么说它特殊呢?主要体现在3个方面: (1)它不能随便被创建 在一般的 ...
- poj 2492 并查集
思路:当a,b的根节点find(a)与find(b)不同时,就直接将这两个数连接起来.由于每个树的根节点的kind值一定为0,所以,对于a,b的kind值相同,我们就讲其中一个根的kind值变为1,当 ...
- C#中的 ref 传进出的到底是什么 解惑篇
今天在浏览博文时,看到这篇文章:C#中的ref 传进出的到底是什么 ? 在传对象时使用ref的疑问 另附言: 本文写于早上,就在想发布的那瞬间,靠,公司断网了,原来修改的部分丢失了. 网一断就是一天了 ...
- 页面所有的button绑定同一个事件,点击不同的button赋值不同
<script type="text/javascript"> $(function(){ $("input[type='button']").cl ...
- OpenGL2-绘制三角形
代码下载 /*** 该例子展示如何使用OpenGL绘制三角形* 为什么说绘制三角形呢 ?三维空间里面,我们看到的机会大多数* 漂亮的模型,建筑,任务,机会都是有三角形网络组成.可以说三角形* 是组成三 ...
- CSS的兼容性解决方案
什么是兼容性? 同一个网页,在不同浏览器下(IE6.IE7.IE8)下的显示效果不一致,这就是说"CSS不兼容". IETESTer可以同时测试IE5.5.IE6.IE7.IE8这 ...
- libevent 初试
一直就想用一下libevent库,直到今天才去码代码.用法在他的头文件里面写的很清楚,原理的话也不是很难,感谢作者做的工作! 今天做了几个探索: 实现自定义事件类型的设置与触发 尝试 setInter ...
- L001-老男孩教育-Python13期VIP视频-19节-pbb
L001-老男孩教育-Python13期VIP视频-19节-pbb Windows上安装 Python3开发环境 下载:www.python.org >选择Downloads>All re ...
- Repeater和Gridview前台显示行号的方法
Repeater : Container.ItemIndex (行号从零开始,如果想改为从1开始,那么可以将以上的代码改为Container.ItemIndex + 1),见下示例: <asp: ...
- HttpClient SSL示例(转)
原文地址: http://www.cnblogs.com/jerry19890622/p/4291053.html package com.jerry.httpclient; import java. ...