resultMap和resultType的区别
resultMap返回的列名与bean的属性名可以不一致,resultType则要求一致。就具体代码作分析。对于指定resultMap属性,直接读取字符串,而对于指定resultType会解析为具体的类.
在使用MappedStatement.Builder设置resultMaps时,对于 resultMap使用逗号作分隔符,得到resultMap列表,而对于resultType只是构建单个resultMap(设置type为resultType的类,resultMappings为空列表)加入到resultMap列表中。
处理映射的分析
因为autoMappingBehavior在没有配置时,默认是PARTIAL,在处理简单映射时shouldApplyAutomaticMappings返回true
对于没有映射的列,会查看bean属性名是否与列名一致。
private List<UnMappedColumnAutoMapping> createAutomaticMappings(ResultSetWrapper rsw, ResultMap resultMap, MetaObject metaObject, String columnPrefix) throws SQLException {final String mapKey = resultMap.getId() + ":" + columnPrefix;List<UnMappedColumnAutoMapping> autoMapping = autoMappingsCache.get(mapKey);if (autoMapping == null) {autoMapping = new ArrayList<>();final List<String> unmappedColumnNames = rsw.getUnmappedColumnNames(resultMap, columnPrefix);for (String columnName : unmappedColumnNames) {String propertyName = columnName;if (columnPrefix != null && !columnPrefix.isEmpty()) {// When columnPrefix is specified,// ignore columns without the prefix.if (columnName.toUpperCase(Locale.ENGLISH).startsWith(columnPrefix)) {propertyName = columnName.substring(columnPrefix.length());} else {continue;}}final String property = metaObject.findProperty(propertyName, configuration.isMapUnderscoreToCamelCase());if (property != null && metaObject.hasSetter(property)) {if (resultMap.getMappedProperties().contains(property)) {continue;}final Class<?> propertyType = metaObject.getSetterType(property);if (typeHandlerRegistry.hasTypeHandler(propertyType, rsw.getJdbcType(columnName))) {final TypeHandler<?> typeHandler = rsw.getTypeHandler(propertyType, columnName);autoMapping.add(new UnMappedColumnAutoMapping(columnName, property, typeHandler, propertyType.isPrimitive()));} else {configuration.getAutoMappingUnknownColumnBehavior().doAction(mappedStatement, columnName, property, propertyType);}} else {configuration.getAutoMappingUnknownColumnBehavior().doAction(mappedStatement, columnName, (property != null) ? property : propertyName, null);}}autoMappingsCache.put(mapKey, autoMapping);}return autoMapping;}
resultMap和resultType的区别相关推荐
- php 数据类型 map,ResultMap和ResultType的区别
ResultMap和ResultType的区别 使用mybatis进行数据库连接操作时对于SQL语句返回结果的处理通常有两种方式,一种就是resultType:另一种就是resultMap: 1.re ...
- resultMap与resultType的区别
resultmap与resulttype的区别为:对象不同.描述不同.类型适用不同. 一.对象不同 1.resultmap:resultMap如果查询出来的列名和pojo的属性名不一致,通过定义一个r ...
- 【MyBatis】resultMap和resultType的区别
mybatis中resultMap和resultType的区别 mybatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap.resultType是 ...
- resultMap和resultType 的区别?
1.resultMap 如果查询出来的列名和pojo的属性名不一致时,可以通过resultMap对列名和属性名做映射关系; <resultMap type="com.wuhao.one ...
- 在mybatis中resultMap与resultType的区别
MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap resultType是直接表示返回类型的,而resultMap则是对外部ResultM ...
- Mybatis中resultMap和resultType的区别
MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性 ...
- ibatis中resultMap和resultType使用区别
resultMap 1.resultMap的值为映射的返回值自定义节点Id名称 resultType 1.resultType的值为返回值的类型,且为一列 ---------------------- ...
- mybatis中resultMap和resultType区别,三分钟读懂
先说结论: resultmap与resulttype的区别为:对象不同.描述不同.类型适用不同. 说人话就是,resultmap和resulttype功能差不多,但是resultmap功能更强大 re ...
- resultMap和resultType区别详解
resultMap和resultType区别详解 resultmap与resulttype的区别为:对象不同.描述不同.类型适用不同 一.对象不同 1.resultmap:resultMap如果查询出 ...
最新文章
- spring的依赖注入方式详解
- 计算机考试受苦受累,受苦受累真是福作文800字
- Java接口存在的意义以及如何解决菱形继承问题
- spring cloud的eureka.client.service-url.defaultZone配置eureka集群的写法
- 【ArcGIS风暴】ArcGIS创建栅格数据集色彩映射表案例--以GlobeLand30土地覆盖数据为例
- tar打包时排除一些文件或者目录
- python mongodb 异步_Python异步读写Mongodb(motor+asyncio)
- 智能优化算法应用:基于麻雀搜索算法PID参数优化 - 附代码
- 发明与实用新型专利了解
- 小程序实现圆点边框 解决 dotted不兼容 小程序圆点边框兼容问题 如何在小程序实现兼容的圆点边框
- p站自动收藏画作 post请求,request payload
- 网络原理:TCP/UDP
- 碰撞检测中的K_DOPS算法的研究
- android studio release包安装后打不开,debug包安装正常怎么解决
- 怎样把不同的文字合并成一组文字文本?
- pg_walsender
- Dockerfile及相关知识拓展
- 标签打印软件如何制作珠宝标签
- 内存快照:宕机后,Redis如何实现快速恢复?
- 流利说 l4测试 口语_为什么要现在开始学口语
热门文章
- zigbee学习之路(二)点亮LED
- javascript正则表达式介绍
- oracle查询表的索引
- css selector list
- android app 历史版本,怎么找到App的所有历史版本,以及每次改版的变更点呢?
- 自学python什么时候能够兼职-总结下我是如何利用python在闲余时间月赚5千外快...
- python编程语言的缺点-常见的AI编程语言优缺点比较,程序员千万不要入错行!...
- python官网安装步骤-新手Windows下Python下载安装教程及配置注意事项
- python处理csv数据-Python处理csv文件
- python工作招聘-爬了招聘网站之后,给你几点学习Python的建议