当前位置: 首页 > news >正文

iBatis和MyBatis在使用ResultMap对应关系时的区别

本文已同步至个人博客 liaosi's blog-iBatis和MyBatis在使用ResultMap对应关系时的区别

在使用iBatis和MyBatis的查询时,查询出来的数据通常会由一个ResultMap来接收。如果在sql语句中 SELECT 出来的字段和ResultMap中的column没有一一对应,是否会有影响呢?而且ResultMap通常会用到多个查询的sql中,这就是必须要考虑的一个问题。

iBatis

在iBatis中,如果查询的字段比ResultMap中对应的字段多,不会报错。
如果ResultMap中字段多了,查询数据的时候没有 SELECT 出来这个数据,那么此时就会报错,比如说我查询的时候没有查询gyTradeCode这个字段,但是ResultMap里面有这个字段,报了如下错误:

--- The error occurred in market-shop/sql/GoodOrder.xml.  
--- The error occurred while applying a result map.  
--- Check the GoodOrder.GoodOrderResult.  
--- Check the result mapping for the 'gyTradeCode' property.  
--- Cause: java.sql.SQLException: Invalid column name, dubbo version: 0.0.1-SNAPSHOT, current host: 127.0.0.1
org.springframework.jdbc.BadSqlGrammarException: SqlMapClient operation; bad SQL grammar []; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in market-shop/sql/GoodOrder.xml.  
--- The error occurred while applying a result map.  
--- Check the GoodOrder.GoodOrderResult.  
--- Check the result mapping for the 'gyTradeCode' property.  
--- Cause: java.sql.SQLException: Invalid column name

结论是:ResultMap里的column不能比sql中查询的字段多,但是查询的字段是可以比ResultMap中的多。所以当我们在ResultMap中增加了一个字段时,所有用到了这个ResultMap的sql语句都要在SELECT中增加对应的字段

MyBatis

如果是使用MyBatis,这种对应关系谁多谁少都不会报错,不影响。

相关文章:

  • Java 架构师眼中的 HTTP 协议
  • Java多线程干货系列—(四)volatile关键字
  • first
  • Linux Swap扩容
  • 函数的默认参数:可有可无
  • os模块注意事项
  • 腾讯云全面开放,联手千万开发者共建超级大脑
  • 【51Nod】1920 空间统计学 状压DP
  • vue-router原理剖析
  • js继承方式讲解
  • BZOJ5286:[HNOI/AHOI2018]转盘——题解
  • maven 下载地址
  • JS中的深拷贝与浅拷贝了解一下
  • Postfix邮件系统
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • 分享一款快速APP功能测试工具
  • Docker 笔记(2):Dockerfile
  • idea + plantuml 画流程图
  • java概述
  • js继承的实现方法
  • Laravel Mix运行时关于es2015报错解决方案
  • PHP的类修饰符与访问修饰符
  • Spring Boot快速入门(一):Hello Spring Boot
  • Vue小说阅读器(仿追书神器)
  • 初识 webpack
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 从零搭建Koa2 Server
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 通过几道题目学习二叉搜索树
  • 写代码的正确姿势
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 交换综合实验一
  • ###项目技术发展史
  • (03)光刻——半导体电路的绘制
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (C#)一个最简单的链表类
  • (分布式缓存)Redis哨兵
  • (附源码)计算机毕业设计ssm电影分享网站
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转载)Linux 多线程条件变量同步
  • ****Linux下Mysql的安装和配置
  • .htaccess配置常用技巧
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET Core Web APi类库如何内嵌运行?
  • .net framework profiles /.net framework 配置
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • /etc/fstab 只读无法修改的解决办法
  • ;号自动换行
  • @DataRedisTest测试redis从未如此丝滑
  • @NoArgsConstructor和@AllArgsConstructor,@Builder
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • [GN] Vue3快速上手1