SpringJDBC的JdbcTemplate在MySQL5.7下不支持子查询的问题

2023-10-27

SpringJDBC的JdbcTemplate在MySQL5.7下不支持子查询的问题

org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [   SELECT * FROM `AAAA` Z LEFT JOIN  (SELECT * FROM `BBBB`         where targetdate >= 20150901) M  ON Z.TargetDate = M.TargetDate...]; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'DB名.*' doesn't exist
        at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:231)
        at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
        at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:645)
        at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:680)
        at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:712)
        at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:722)
        at org.springframework.jdbc.core.JdbcTemplate.queryForRowSet(JdbcTemplate.java:859)

从上面的ErrorLog中可以看出,通过JdbcTemplate的queryForRowSet方法执行包含有子查询的SQL语句时发生异常。

SpringJDBC版本为4.2.5-Release,相同的语句在测试环境的MySQL上执行无误,但在生产环境的MySQL5.7版本中,发生上述异常。

排错过程:

1,针对常见的表名大小写问题进行调查发现MySQL配置无误。

2,修改SQL去除子查询后执行无误。

3,直接通过phpMyAdmin执行该条包含子查询的语句也执行无误。

4,切换为JavaJDBC实现代码后,该包含子查询的语句也执行无误。

由此大致可以推断是JdbcTemplate本身的问题。

具体原因需要深入到SpringJDBC4.2.5的源码来调查。

详细连接: [https://stackoverflow.com/questions/39855818/spring-jdbc-template-cant-execute-queries-containing-nested-query-in-the-from-c]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringJDBC的JdbcTemplate在MySQL5.7下不支持子查询的问题 的相关文章

随机推荐

  • AcWing 425. 明明的随机数

    题目 明明想在学校中请一些同学一起做一项问卷调查 为了实验的客观性 他先用计算机生成了N个1到1000之间的随机整数 对于其中重复的数字 只保留一个 把其余相同的数去掉 不同的数对应着不同的学生的学号 然后再把这些数从小到大排序 按照排好的
  • golang学习demo4-goroutine并行测试

    知识点 go语言的routine的使用 通道chan的使用 想测试一下go的routine 就写了个求大量素数的程序 分别开1 99个协程进行求解 对比结果 首先是没有开协程的 下面是开了少数几个协程的程序 可以看到在 cnt 5 的时候速
  • Pytorch GPU版本简明下载安装教程

    1 根据自己的显卡型号下载显卡驱动并安装 这一步会更新你的显卡驱动 也可忽略第1步 如果第2步出现问题 返回执行第1步 点击这里下载英伟达显卡驱动 2 安装完成后 win cmd打开命令行 输入nvidia smi 查看GPU信息 右上角C
  • elementUIel-input和el-select宽度不一样

    在vue项目中 使用了element组件的 el input 和 el select组件 设置了相同的宽度 但是宽度显示不一样 给el select添加style width 100 就可以解决 没加样式之前的效果 添加样式 没加样式之后的
  • 机器学习入门教学——决策树

    1 简介 决策树算法是一种归纳分类算法 它通过对训练集的学习 挖掘出有用的规则 用于对新数据进行预测 决策树算法属于监督学习方法 决策树归纳的基本算法是贪心算法 自顶向下来构建决策树 贪心算法 在每一步选择中都采取在当前状态下最好 优的选择
  • 52类110个主流Java组件和框架

    以下排序是按照从技术组件到开发框架到代码工具 也有一些实在不好分类的 就放到最后了 WEB 容器 Tomcat https tomcat apache org Jetty https www jetty com JBoss https ww
  • JAVA命令行编译运行程序

    JAVA源程序名扩展名必须是 java 并且主文件名必须是 1 如有public类必须写public类的名 2 如没有public类则主文件名任意 编译源程序 javac d 目录名 源文件 以上命令中 d 目录名代表将编译产生的二进制码文
  • 用计算机对视频进行剪裁和编辑,Win10系统剪裁视频功能怎么用?windows10剪裁视频功能使用方法介绍...

    最近 有不少Win10正式版用户向小编咨询新系统上是否有好的视频剪切软件 答案是肯定的 我们只要利用Win10系统中的 照片 就可以快速实现剪裁视频操作 接下来 小编就向大家介绍windows10系统剪裁视频功能的使用方法 具体方法如下 1
  • HTTP GET参数的获取

    REQUEST METHOD的值一般包括POST和GET两种 GET参数的获取 在GET方法下 CGI程序无法直接从服务器的标准输入中获取数据 因为服务器把从标准输入接收到的数据编码到环境变量QUERY STRING 或PATH INFO
  • 乒乓球捡球机器人_捡球机器人

    本帖最后由 章 于 2020 12 31 08 41 编辑 27 副本 JPG 108 08 KB 下载次数 0 2020 12 24 20 17 上传 制作背景 我国的国球是乒乓球 有许多人从小开始学习打乒乓球 而在学习打乒乓的过程中 为
  • QT:在QTableView中使用各种自定义委托

    原文地址 https blog csdn net lhchen922 article details 38367719 相关文章 1 QT 在QTableView中使用各种自定义委托 https blog csdn net zgrjkflm
  • OpenHarmony 标准系统HDF框架之I2C驱动开发

    OpenHarmony 标准系统HDF框架之I2C驱动开发 主要内容 I2C 基础知识 I2C 基础知识 概念和特性 I2C 基础知识 协议 四种信号组合 I2C 调试手段 I2C 调试手段 硬件 I2C 调试手段 软件 HDF 框架下的
  • 关于前端开发常见状态码

    前端开发常见状态码 2开头代表服务器已接收请求 3开头代表重定向 需要进一步操作才能完成请求 4开头代表客户端错误 5开头代表服务器错误 2开头代表服务器已接收请求 200 代表请求成功 并返回了想要的数据 202 服务器接受请求 但未处理
  • 【JS】中文繁简转换

    不多说 比较简单 有对照表就行 下面贴源码 var 简繁对应表 锕 錒 锿 鎄 皑 皚 嗳 噯 蔼 藹 霭 靄 爱 愛 嫒 嬡 碍 礙 暧 曖 瑷 璦 庵 菴 谙 諳 鹌 鵪 鞍 鞌 埯 垵 铵 銨 暗 闇 晻 晻 翱 翶 翺 翺 鳌 鰲
  • Java面试总结,Redis宕机数据丢失解决方案,看完这篇彻底明白了

    一 前言 长文警告 事实上我不愿意写太长的文章 一面是太冗余 一方面读者容易疲倦 但是只要是涉及到源码级别的 就肯定篇幅不短 因为太短肯定没意义也解释不清楚 但是相信 耐心看完这个文章一定会对Spring源码有所收获 最近有很多读者面试的时
  • python报错urllib2.URLError:和error[Errno 104]

    在ubuntu16 04上使用python的skimage io imread 函数读取网页上的图片时 出现如题所示的错误 gt gt gt img io imread https cdn pixabay com photo 2015 02
  • 教你怎么使用Python对word文档进行操作

    使用Python对word文档进行操作 一 安装Python docx Python docx是专门针对于word文档的一个模块 只能读取docx 不能读取doc文件 说白了 python就相当于windows操作系统 QQ就是跑在wind
  • Spring Security默认用户生成分析

    1 首先创建进行环境搭建 创建SpringBoot项目 引入SpringSecurity依赖 编写简单的Controller 2 使用断点进行源码查看 首先访问资源localhost 8080 hello 之后会被 login页面拦截 在
  • C语言数字转换字符串

    转载自 https www cnblogs com bluestorm p 3168719 html C语言itoa 函数和atoi 函数详解 整数转字符C实现 C语言提供了几个标准库函数 可以将任意类型 整型 长整型 浮点型等 的数字转换
  • SpringJDBC的JdbcTemplate在MySQL5.7下不支持子查询的问题

    SpringJDBC的JdbcTemplate在MySQL5 7下不支持子查询的问题 org springframework jdbc BadSqlGrammarException PreparedStatementCallback bad