低级sql语法错误: BadSqlGrammarException

    at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:760)
    at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:747)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1162)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1151)
    at com.lk.ActivemqApplication.main(ActivemqApplication.java:12)
Caused by: org.springframework.jdbc.BadSqlGrammarException:
### Error querying database.  Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘AS SELECT queue_message_entity WHERE `insert_time` < ‘1970-01-01 08:00:55‘‘ at line 1
### The error may exist in com/lk/loms/mq/service/dao/mapper/HistoryMsgMapper.java (best guess)
### The error may involve com.lk.loms.mq.service.dao.mapper.HistoryMsgMapper.insertQueueBackup-Inline
### The error occurred while setting parameters
### SQL: INSERT INTO queue_message_entity_bak AS SELECT queue_message_entity WHERE `insert_time` < ?
### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘AS SELECT queue_message_entity WHERE `insert_time` < ‘1970-01-01 08:00:55‘‘ at line 1
; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘AS SELECT queue_message_entity WHERE `insert_time` < ‘1970-01-01 08:00:55‘‘ at line 1
    at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:231)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
    at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)
    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
    at com.sun.proxy.$Proxy120.selectOne(Unknown Source)
    at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:166)
    at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:83)
    at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
    at com.sun.proxy.$Proxy121.insertQueueBackup(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:333)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
    at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
    at com.sun.proxy.$Proxy123.insertQueueBackup(Unknown Source)
    at com.lk.BackupCommandLineRunner.insertQueueBackup(BackupCommandLineRunner.java:61)
    at com.lk.BackupCommandLineRunner.run(BackupCommandLineRunner.java:27)
    at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:776)
    ... 6 common frames omitted
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘AS SELECT queue_message_entity WHERE `insert_time` < ‘1970-01-01 08:00:55‘‘ at line 1
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    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:943)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)

其实是很简单的,  下面的语句中多了个as, 不应该的.

INSERT INTO queue_message_entity_bak AS SELECT queue_message_entity WHERE `insert_time` < ?

本来就是简单的sql 语法错误, 还以为是日期格式问题, 搞了几个小时, 也是郁闷了. 原因还是不够细心, 没注意到 BadSqlGrammarException 这个提示.

原文地址:https://www.cnblogs.com/FlyAway2013/p/9271952.html

时间: 2024-10-09 02:37:45

低级sql语法错误: BadSqlGrammarException的相关文章

spring + myBatis 常见错误:SQL语法错误

在程序运行时,有时候会出现如下错误: 这个错误通常是你的sqlmapper.xml中sql语句语法有错误.所以请仔细查看你sql语句是否正确,比如{#id}这样写就会报上述错误,其实应该#{id}这样写.

平台中构建业务表时报sql语法错误

今天在构建一个只读业务表时,保存的时候报了下图中的这个错误:  一开始还以为自己代码写错了,于是将代码复制到平台中sql执行界面运行:发现是运行成功的: 那这是怎么回事呢? 初步分析是代码中空格打的不对,可能存在用tab键打的空格. 排查方法:将写好的sql代码一层一层的写入业务表,通过平台业务表编辑界面中的校验代码功能,校验写入的代码:遇到报图一中错误时,重点排查代码中的空格 原文地址:http://bbs.delit.cn/thread-1057-1-1.html 转载请注明出处: 撰写人:

&#39;&#39;附近有语法错误

不管错在哪里,一般都是sql语法错误. ---------------. 要找到sql语句 --------------- 粗一看,还以为是 1=1 这里出错了. 去掉where这一句有可能编译通过. 真实情况是,错误就是出在这一句上,但不是1=1这里,而是where前面少了一个空格,导致和上一句的表名连在一起,直接让1=1前面没有sql关键词,所以报出 '1'附近有语法错误. 而且后面的条件语句前面都留有空格. ''附近有语法错误

解决SQL将varchar值转换为数据类型为int的列时发生语法错误

今天遇到一个这样的错误,具体的报错情况如下 解决的方案如下. 数据库MSSQL在比较大小时,出错提示:“将 varchar 值 '24.5' 转换为数据类型为 int 的列时发生语法错!”分析数据库设计列时的类型为VARCHAR,当搜索比较语句执行 “select * from datalist where price>10 order by id ”时即报告以上错误.   琢磨下,只要price列里含有小数,就出错,而price为varchar类型,必须转换为数字类型. 可以这样改写:“sel

access2003 sql insert into语句报语法错误

我在用c#写access2003 sql insert into时碰到了语句报语法错误的报错. 修改成这样的代码就可以执行了 OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Users\\SmartHome\\Desktop\\data.mdb"); OleDbCommand cmd = new OleDbCommand(); cmd.Connecti

DAL中的一句sql总是提示&#39;@pagesize&#39;附近有语法错误。

我的页面一运行就提示'@pagesize' 附近有语法错误.但是我在数据库里直接查询,把那些参数替换掉就OK,这句SQL我不知道到底错在哪里 C# code string sql = "select top @pagesize from member where userid not in(select top(@pagesize*(@pagecount-1)) userid from member order by userid) order by userid"; --------

sql server 数据库 &#39; &#39; 附近有语法错误

昨天做项目时候,遇到标题的问题,代码跟踪把sql 语句 复制出来在数据库执行不了, 然后重新写个一模一样的,然后在 赋值到代码中,还是同样的错误, 就是不知道哪里出现了错误,最后 把 sql 语句写成最简单的 select * from tab  还是同样的错误. 然后 ,然后就不会了. 最后在这个语句写同样的语句,最后发现问题了,新写的sql 语句的 select 变 颜色了,而之前的 赋值出来的  select 和 字段 表名的颜色一样,证明系统 不承认它是关键字, 把这个select 删掉

sql server 错误号大全

0 操作成功完成. 1 功能错误. 2 系统找不到指定的文件. 3 系统找不到指定的路径. 4 系统无法打开文件. 5 拒绝访问. 6 句柄无效. 7 存储控制块被损坏. 8 存储空间不足,无法处理此命令. 9 存储控制块地址无效. 10 环境错误. 11 试图加载格式错误的程序. 12 访问码无效. 13 数据无效. 14 存储器不足,无法完成此操作. 15 系统找不到指定的驱动器. 16 无法删除目录. 17 系统无法将文件移到不同的驱动器. 18 没有更多文件. 19 介质受写入保护. 2

LINQ To SQL 语法及实例大全

LINQ to SQL语句(1)之Where Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句. Where操作包括3种形式,分别为简单形式.关系条件形式.First()形式.下面分别用实例举例下: 1.简单形式: 例如:使用where筛选在伦敦的客户 var q = from c in db.Customers where c.City == "London" select c