内容

一、异常信息

严重: Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException:

### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column ‘name’ in where clause is ambiguous
### The error may exist in com/yy/homework/mapper/EmployeeMapper.xml
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: select e.id, e.username, e.name, e.password, e.email, e.age, e.admin, e.dept_id, d.id d_id, d.name d_name, d.sn d_sn from employee e join department d on e.dept_id = d.id WHERE (name like concat(’%’, ? ,’%’) or e.email like concat(’%’, ? ,’%’)) limit ?, ?
### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column ‘name’ in where clause is ambiguous
; ]; Column ‘name’ in where clause is ambiguous; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column ‘name’ in where clause is ambiguous] with root cause
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column ‘name’ in where clause is ambiguous
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.Util.getInstance(Util.java:408)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2484)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1197)
at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)
at com.sun.proxy.Proxy53.execute(UnknownSource)atorg.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:63)atorg.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)atorg.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)atorg.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324)atorg.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)atorg.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)atorg.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)atorg.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)atorg.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)atjava.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atjava.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)atjava.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)atjava.base/java.lang.reflect.Method.invoke(Method.java:566)atorg.mybatis.spring.SqlSessionTemplateProxy53.execute(Unknown Source) at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:63) at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.mybatis.spring.SqlSessionTemplateProxy53.execute(UnknownSource)atorg.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:63)atorg.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)atorg.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)atorg.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324)atorg.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)atorg.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)atorg.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)atorg.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)atorg.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)atjava.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atjava.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)atjava.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)atjava.base/java.lang.reflect.Method.invoke(Method.java:566)atorg.mybatis.spring.SqlSessionTemplateSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)
at com.sun.proxy.Proxy44.selectList(UnknownSource)atorg.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:230)atorg.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:137)atorg.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:75)atorg.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)atcom.sun.proxy.Proxy44.selectList(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:230) at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:137) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:75) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59) at com.sun.proxy.Proxy44.selectList(UnknownSource)atorg.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:230)atorg.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:137)atorg.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:75)atorg.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)atcom.sun.proxy.Proxy45.selectAll(Unknown Source)
at com.yy.homework.service.impl.EmployeeServiceImpl.selectAll(EmployeeServiceImpl.java:32)
at com.yy.homework.web.controller.EmployeeController.selectAll(EmployeeController.java:36)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocolAbstractConnectionHandler.process(AbstractProtocol.java:589)atorg.apache.tomcat.util.net.JIoEndpointAbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpointAbstractConnectionHandler.process(AbstractProtocol.java:589)atorg.apache.tomcat.util.net.JIoEndpointSocketProcessor.run(JIoEndpoint.java:312)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)

二、解决办法

1、造成原因


SQL语法错误,where 后面出现模棱两可的字段 name ,由于employee 和 department 中都存在 name,数据库不能识别你查询的是哪一个 name,所以报错。

2、解决

把 SQL 语句中 where 后面的 name 改成 e.name 或者 d.name,根据你需求来就好。

Mybatis 异常(SQL 语法异常 ambiguous)相关推荐

  1. Java异常持久化,Log4j进行日志的数据库持久化,说SQL语法异常。

    Log4j进行日志的数据库持久化,说SQL语法错误... 在properties的配置中.... log4j.appender.db = org.apache.log4j.jdbc.JDBCAppen ...

  2. MyBatis动态SQL语法详解(二)

    文章目录 一.MyBatis查询返回 1.1.MyBatis查询返回对象 1.2.MyBatis查询返回list集合 1.3.MyBatis查询返回Map 1.4.MyBatis查询自定义结果映射规则 ...

  3. Mybatis构建sql语法

    构建sql: 之前通过注解开发时,相关 SQL 语句都是自己直接拼写的.一些关键字写起来比较麻烦.而且容易出错. MyBatis 给我们提供了 org.apache.ibatis.jdbc.SQL 功 ...

  4. Oracle PL/SQL中异常高级特性

    在OraclePL/SQL语句块中exception的异常处理部分是非常重要的组成部分,它决定了在PL/SQL语句块内部可执行部分在发生异常错误时,程序是友好地提示:程序遇到某些错误而无法执行,还是抛 ...

  5. 关于Value ‘0000-00-00 00:00:00‘ can not be represented as java.sql.Timestamp异常问题的解读

    前提 对于必传的字段, 新需求改为非必填的时候,在测试环境出现了 Value '0000-00-00 00:00:00' can not be represented as java.sql.Time ...

  6. PLSQL之动态SQL与异常

    1.动态 SQL   动态 SQL 是指在PL/SQL程序执行时生成的 SQL 语句 编译程序对动态 SQL 不做处理,而是在程序运行时动态构造语句.对语句进行语法分析并执行 DDL 语句命令和会话控 ...

  7. oracle raise_application_error mysql_Oracle PL/SQL中异常高级特性

    在OraclePL/SQL语句块中exception的异常处理部分是非常重要的组成部分,它决定了在PL/SQL语句块内部可执行部分在发生异常错误时,程序是友好地提示:程序遇到某些错误而无法执行,还是抛 ...

  8. 如何查看和关闭异常SQL进程

    如何查看和关闭异常SQL进程<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" ...

  9. [转贴] 从零开始学C++之异常(二):程序错误、异常(语法、抛出、捕获、传播)、栈展开...

    一.程序错误 编译错误,即语法错误.程序就无法被生成运行代码. 运行时错误 不可预料的逻辑错误 可以预料的运行异常 例如: 动态分配空间时可能不会成功 打开文件可能会失败 除法运算时分母可能为0 整数 ...

  10. oracle 收集统计信息会锁表吗,统计信息锁住导致收集统计信息失败引起sql执行异常...

    这个是老生产谈的事情,统计信息不准确导致sql执行异常,此次记录的主要是表的统计信息被锁住导致无法正常收集统计信息导致sql执行异常: 收集表的统计信息: SQL> exec DBMS_STAT ...

最新文章

  1. 打印容器_喷墨打印MnO?制备微型超级电容器
  2. Node.Js从零开始搭建数据管理后台 (一)
  3. Jenkins 从选择插件到配置详解-Gradle
  4. android.mk 优化编译,android下ndk编译c优化
  5. 微信小程序---setData
  6. 整数序列(牛客,线段树)
  7. iOS-Delegate模式
  8. 对网站实施“记住我”的最佳方法是什么? [关闭]
  9. ANIMATION经典小车动画
  10. 虚拟打印机 android版,Doro PDF Writer
  11. Sql Server2014 安装Northwind数据库
  12. CSS:单行文本溢出省略号替代,多行文本溢出省略号替代
  13. springboot 实现百度小程序收银台支付功能
  14. 发现新的恶意 Torii IoT 僵尸网络
  15. JS实现飞行的小鸟游戏-简易版
  16. IIS网站部署步骤(通过域名访问)
  17. qq三国单刀赴会服务器找不到,单刀赴会,收武器装备“图纸”,70-120等级,130级按套收,......
  18. 2012年10月高等教育国际金融全国统一命题考试
  19. 云南工商学院计算机录取分数,云南工商学院录取分数线2021是多少分(附历年录取分数线)...
  20. 【Unity 3D】使用EasyAR实现单图识别的AR增强现实功能(附实现步骤)

热门文章

  1. win10开始菜单 此计算机,如何将win10电脑中的开始菜单设置成智能版
  2. vSphere配置NSX Edge网络
  3. 圆圈头像制作css,通过CSS3实现圆形头像显示
  4. xdg在Linux中的用法,linux – 如何使用xdg-mime命令 - 程序园
  5. Can't open /dev/sdb1 exclusively. Mounted filesystem?
  6. 鹿鼎记 · 韦小宝,丽春院、天地会、入皇宫等五个场景的恶搞版多线程锁学习!
  7. 如何设置html背景,如何给html设置背景
  8. 警惕食源性疾病——食源性病原菌介绍
  9. PostgreSQL获得去、今、明年份、今年的第一天、去年的第一天转换时区、最后一天等
  10. 什么是磁盘?磁盘的组成?接口和分区?