mysql中表名是order的CRUD的错误

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 ‘order  WHERE id = 5‘ at line 1
### The error may exist in file [I:\workspace\workspace_wxjc\creation-help\creation-help-server\target\classes\mybatis\mapper\order-mapper.xml]
### The error may involve com.wxjc.creation.dao.impl.OrderDAOImpl.getById-Inline
### The error occurred while setting parameters
### SQL: SELECT * FROM  order  WHERE id = ?
### 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 ‘order  WHERE id = 5‘ 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 ‘order  WHERE id = 5‘ at line 1
    at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:237)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
    at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:71)
    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:365)
    at com.sun.proxy.$Proxy23.selectOne(Unknown Source)
    at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160)
    at com.nskbearing.core.dao.BaseDAOImpl.getById(BaseDAOImpl.java:125)

以上是错误提示,提示:

SELECT * FROM  order  WHERE id = ?;

提示org.springframework.jdbc.BadSqlGrammarException:

放到mysql的客户端执行,也报错

SELECT * FROM  order  WHERE id = 1;
/* SQL错误(1064):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 ‘order  WHERE id = 1‘ at line 1 */
/* Affected rows: 0  已找到记录: 0  警告: 0  持续时间 0 of 1 query: 0.000 sec. */

最终解决:

SELECT * FROM  `order`  WHERE id = 1;

这样解决了。在mybatis中使用:
<sql id="t_order">`order`</sql>

解决!!!
 
时间: 2024-10-12 15:50:06

mysql中表名是order的CRUD的错误的相关文章

mysql表名忽略大小写

查看大小写区分mysql> show variables like "%case%";+------------------------+-------+| Variable_name          | Value |+------------------------+-------+| lower_case_file_system | OFF   | | lower_case_table_names | 0     | +------------------------+-

linux/centos下设置Mysql表名不区分大小写

情景:公司近期在将数据库从ORACLE转为MYSQL,由于之前在ORACLE中表名是不区分大小写,因此到mysql中就出现了找不到表的问题,经上网查询,发现在linux下mysql的表名是区分大小写的,但是有参数可以使其不区分大小写. 一.linux中mysql大小写详情: 1.数据库名严格区分大小写 2.表名严格区分大小写的 3.表的别名严格区分大小写 4.变量名严格区分大小写 5.列名在所有的情况下均忽略大小写 6.列的别名在所有的情况下均忽略大小写 二.添加参数使其不区分大小写 1.切换到

mysql表名等大小写敏感问题、字段类型timestamp、批量修改表名、oracle查询历史操作记录等

mysql表名等大小写敏感问题:http://blog.csdn.net/postnull/article/details/72455768: 1 MySQL在Linux下数据库名.表名.列名.别名大小写规则是这样的: 2 1.数据库名与表名是严格区分大小写的: 3 2.表的别名是严格区分大小写的: 4 3.列名与列的别名在所有的情况下均是忽略大小写的: 5 4.字段内容默认情况下是大小写不敏感的. ================================================

Linux下 设置Mysql表名不区分大小写

情景:公司近期在将数据库从Oracle转为Mysql,由于之前在Oracle中表名是不区分大小写,因此到Mysql中就出现了找不到表的问题,经上网查询,发现在linux下Mysql的表名是区分大小写的,但是有参数可以使其不区分大小写.具体操作如下: 一.linux中mysql大小写详情: 1.数据库名严格区分大小写 2.表名严格区分大小写的 3.表的别名严格区分大小写 4.变量名严格区分大小写 5.列名在所有的情况下均忽略大小写 6.列的别名在所有的情况下均忽略大小写 二.设置Mysql表名不区

MySQL表名和数据库关键字相同解决办法

今天改他们的代码的时候,遇到了MySQL表名和数据库关键字的问题. 由于表名是关键字,导致增删改查都报错. Hibernate: select leave0_.id as id22_, leave0_.stuNumber as stuNumber22_, leave0_.stuName as stuName22_, leave0_.academy as academy22_, leave0_.classes as classes22_, leave0_.leaveDays as leaveDay

MySQL字段名与保留字冲突的问题及解决方法

问题:MySQL字段名与保留字冲突在实际操作是经常出现的,一把会出现以下错误. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException. 解决方法:在MySQL中,下表中的字显式被保留.其中大多数字进制被标准SQL用作列名和/或表名(例如,GROUP).少数被保留了,因为MySQL需要它们,在MySQL中,当表名或字段名乃至数据库名和保留字冲突时,在sql语句里可以用撇号()括起来,当让我们一般都尽量少使用这些保留的字段. ADD AL

【MySql】linux下,设置mysql表名忽略大小写

[障碍再现] 状况描述01: 在LINUX下调一个程序经常报出找不到表,但是我明明是建了表的, 测试的时候,遇到一些问题,从Windows平台访问虚拟机中的Web应用,经常报出找不到表,但自己明明在数据库中看到相关的数据表和数据,在linux中通过MYSQL的命令行下也可以查到,为什么从Windows平台上的程序来访问虚拟机中的MySql时,就找不到呢? [原因分析] 原来是LINUX下的MYSQL默认是要区分表名大小写的,而在windows下是不区分. 从windows下导出的数据脚本中数据表

MySQL表名大小写敏感导致的问题

最近在项目中遇到一个比较奇怪的小问题.在开发过程中自己测试没有问题,但是提测后,测试的同时在测试一个功能时报错了,日志是: Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'testdb.Emp' doesn't exist 1 于是乎打开数据库客户端,发现testdb数据库有这张表,真是奇怪.项目本地测试还是没问题,纠结了半天,才留意到代码中表名是Emp,而数据库中是emp.原来是表名大小写

MySQL新旧版本ORDER BY 处理方法

MySQL 的order by 涉及到三个参数:A. sort_buffer_size 排序缓存.B. read_rnd_buffer_size 第二次排序缓存.C. max_length_for_sort_data 带普通列的最大排序约束. 我来简单说下MySQL的排序规则.假设查询语句select * from tb1 where 1 order by  a ; 字段a没有建立索引:以上三个参数都足够大.MySQL内部有两种排序规则:第一种,是普通的排序.这种排序的特点是节省内存,但是最终会