最近遇到php转java的一个项目,数据库用的是mysql,里面的表名取的都是关键字,像order,group等表.
当我用mybatis配置自动生成mapper文件,一直报错**.java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘order) tmp_count’ at line 2
进入生成的mapper文件
细看,才发现order没有用反双引号order括起来,后来在mybatis-generator.xml文件加入

<table tableName="`order`" domainObjectName="Order" delimitIdentifiers="true"></table>
加了个反双引号和delimitIdentifiers = true(此配置为大小写敏感的一个配置),即可解决表名为关键字的问题.亲测有效哦!下面为自动生成的sql

用这种方面就可以解决表名为关键字的坑,不过最好避免这种表的命名,谢谢。
本文介绍了一个使用MyBatis进行PHP转Java项目中遇到的问题,即表名使用了关键字如'order',导致SQL语法错误。通过在mybatis-generator.xml中配置delimitIdentifiers为true,并使用反双引号括起表名,成功解决了问题。

被折叠的 条评论
为什么被折叠?



