前言

  • mysql 5.7
  • ssm

前两天遇到了这个异常,记录一下:

[INFO][2019-10-06 02:03:39,268][org.springframework.beans.factory.xml.XmlBeanDefinitionReader]Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
[INFO][2019-10-06 02:03:39,296][org.springframework.jdbc.support.SQLErrorCodesFactory]SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase, Hana]

分析

  • Log级别是INFO
  • 未输出明确的错误原因
  • 仅可以确定是sql错误,但无法确定是哪个sql错误。

解决办法

对代码添加try…catch,捕获错误并输出。获得的输出像这样:

[INFO][2019-10-06 02:03:39,268][org.springframework.beans.factory.xml.XmlBeanDefinitionReader]Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
[INFO][2019-10-06 02:03:39,296][org.springframework.jdbc.support.SQLErrorCodesFactory]SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase, Hana]
[ERROR][2019-10-06 02:03:39,316][ec.web.listener.StartupManage]error
org.springframework.jdbc.BadSqlGrammarException:
### Error querying database.  Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'exchange.app.typename' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
### The error may exist in URL [jar:file:/D:/ExchangeDeploy/apache-tomcat-8.5.29-9020/webapps/manage/WEB-INF/lib/exchange_app-1.0-SNAPSHOT.jar!/ec/web/app/mapper/AppConfigMapper.xml]
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: SELECT  typekey,typename FROM  app_config AS app GROUP BY  app.typekey
### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'exchange.app.typename' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'exchange.app.typename' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_byat org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:91)at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:74)at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:421)at com.sun.proxy.$Proxy40.selectList(Unknown Source)at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:206)at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:122)at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:64)at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:53)at com.sun.proxy.$Proxy135.findKey(Unknown Source)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)at net.bull.javamelody.MonitoringSpringInterceptor.invoke(MonitoringSpringInterceptor.java:73)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)at com.sun.proxy.$Proxy136.findKey(Unknown Source)at ec.web.app.service.impl.AppConfigServiceImpl.initCache(AppConfigServiceImpl.java:91)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)

如果无法修改代码添加try…catch,那么只能猜了。将可能有问题的sql,放到mysql客户端里执行一下看看是否有语法错误。

嗯,添加try…catch是个好习惯啊。

SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase, Ha相关推荐

  1. oledb连接mysql_OLEDB 连接 和 效率(MS SQL 、Oracle 、ACESS)

    这半年手头的一个项目,自己写代码的时候偏爱 MS SQL.部署服务器装的是 ORALCE 和 实际的现场是小型机,压根没有装数据库只好选用 ACESS ,三种环境不一致,才决定用 OLEDB 做数据库 ...

  2. MS SQL 模仿ORACLE的DESC

    前言: 在ORACLE数据库的SQL*PLUS里面有个DES(DESCRIBE)命令,它可以返回数据库所存储对象的描述,如下所示 SQL> DESC STUDENT_SCORE Name Typ ...

  3. Oracle 9i与MS SQL Server 2000之比较连载五.zz

    http://kb.cnblogs.com/a/1153156 Oracle 9i与MS SQL Server 2000之比较连载五 2008-04-14 18:13 四.Oracle中新的数据库对象 ...

  4. 解决Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), ple..

    问题 springboot异常Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), ...

  5. Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on the

    在配置sharding-jdbc中 spring.shardingsphere.datasource.names=ds0,ds1spring.shardingsphere.datasource.ds0 ...

  6. bug---springboot报错Consider the following: If you want an embedded database (H2, HSQL

    错误描述 Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), please pu ...

  7. mysql longtext db2_从 MySQL 或 PostgreSQL 迁移到 DB2 Express-C

    从 MySQL 或 PostgreSQL 迁移到 DB2 Express-C 用三个简单步骤迁移到 DB2 Vikram Khatri, Nora Sokolof, 和 Manas Dadarkar ...

  8. JDBC常用连接写法(包括MySQL、Oracle、Sybase、SQLServer、DB2)

    本文引用自CKJ-CLARK<JDBC常用连接写法(包括MySQL.Oracle.Sybase.SQLServer.DB2)> http://apps.hi.baidu.com/share ...

  9. MS SQL 的入门学习

    SQL 语言入门教程 第一课简介 SQL 是英文Structured Query Language 的缩写,意思为结构化查询语言. SQL 语言的主要功能就是同各种数据库建立联系,进行沟通.按照ANS ...

最新文章

  1. leetcode-26. Remove Duplicates from Sorted Array
  2. 计算机的图形用户界面,2017计算机等级考试知识点:认识图形用户界面
  3. python填写excel-python——向Excel读取或写入数据
  4. 淘宝文件系统文件映射原理及实现
  5. NLP之CRF分词训练(六)
  6. 字符串查找字符出现次数_查找字符串作为子序列出现的次数
  7. JDK源码系列(2)-Object类
  8. mongodb 添加用户及权限设置详解
  9. 局域网摄像头扫描_使用Pyhton带你分析酒店里的针孔摄像头
  10. wmsys.wm_concat的几个用法
  11. js代码跳转页面时的路径问题
  12. 音乐和计算机跨界融合,音乐类综艺跨界融合有了新思路
  13. IT创业光技术好,谋略定位不好,你很可能会死得很惨,丢钱、丢客户、丢成果、丢商机、丢思路
  14. 点连通度与边连通度的求解
  15. Android Gradle Plugins系列-02-Maven Publish 插件踩坑指南
  16. [矩阵论]欧氏空间的线性变换是正交变换的充要条件是,它对于标准正交基的矩阵是正交矩阵
  17. vue-router路由防卫
  18. 暴雪这次可真不要脸。。。
  19. one 主格 复数 宾格_人称代词的主格和宾格
  20. Rust实战系列-基本语法

热门文章

  1. 分析:“AI on Hadoop”有意义吗?
  2. unix时间戳(unix timestamp)与北京时间的互转方法
  3. android 上传文件用php程序在服务端接受(一)
  4. Linux与Windows数据传输
  5. 分享:When.js 2.0.0 发布,Promises/A 的实现
  6. Windows server 2003域下全局组、本地域组及通用组之间的关系详解
  7. ASP.NET中进行消息处理(MSMQ) 三
  8. MVC 3.0 Html.ActionLink
  9. thinkphp5带条件分页
  10. 安装 Go 第三方包 go-sqlite3