首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Linux上,myBatis "SELECT“失败,表名为大写

在Linux上,myBatis "SELECT“失败,表名为大写
EN

Stack Overflow用户
提问于 2020-01-14 16:06:14
回答 1查看 447关注 0票数 0

我已经创建了一个表:

代码语言:javascript
运行
复制
CREATE TABLE IF NOT EXISTS `tablename` (
..
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

然后,我通过myBatis (按照mapper.xml-file中的定义)运行查询:

代码语言:javascript
运行
复制
SELECT .. FROM `tablename`;

此查询失败,错误为

代码语言:javascript
运行
复制
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'databasename.TABLENAME' doesn't exist

如何强制myBatis使用指定的小写名称"tablename“进行查询,而不是进行大写转换?

我发现了这个:https://mybatis.org/generator/configreference/table.html,据说myBatis从数据库本身获取了如何处理区分大小写的信息。所以我查了一下

代码语言:javascript
运行
复制
SHOW VARIABLES;

设置和got:

代码语言:javascript
运行
复制
lower_case_file_system OFF
lower_case_table_names 0

这意味着如果我对https://mariadb.com/kb/en/identifier-case-sensitivity/的理解正确的话,那就是数据库表明表名是区分大小写的。为什么myBatis会在发出查询前强制将给定的小写名称转换为大写?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-01-14 18:13:52

抱歉,完全是我的错。更改了我的代码并提交了-但不是推送。因此,我在mapping.xml中所做的更改不会在部署中生效。查询,以我上面描述的方式工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59729666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档