精华帖,当java实体类和数据库表映射失败问题出现,就开始怀疑人生了,请细看

文章描述了遇到一个Java项目连接腾讯云MySQL数据库时,由于表名大小写敏感问题引发的TableSYSTEM_NAMEdoesntexist错误。作者在本地数据库中没有此问题,但在云服务器上出现。经过排查,发现是MySQL的lower_case_table_names配置问题。通过设置该参数为1,即关闭大小写敏感,然后重启数据库,问题得到解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报错:

java.sql.SQLSyntaxErrorException:Table‘SYSTEM_NAME‘ doesn‘t exist

实体类对象名为驼峰式命名,例如:SystemName或SYSTEM_NAME;

数据库表名,例如:system_name。

在用本地mysql数据库时没有问题了,可以映射成功;

后来我腾讯云服务器安装了一个mysql数据库,项目可以成功连接数据库,但是报了个没有找见用户表的错误,我看一下数据库是有这张表的,我就纳闷了,这有什么问题?

我怀疑是网络问题或数据库问题产生的映射失败,然后我在网上查了半天,都是说什么多个数据源的原因造成的,可是我就一个数据源不应该啊,但是我还是用这个答案试了一下,不行,咋办,废了,这个问题很简单,可是我研究了一下午都没解决。码的,放弃了,睡觉。

到了第二天,我说再研究一下吧,没想到我换了个问题再查百度终于有一个不一样的答案,虽然我还没试,可是我非常高兴又怕,有点希望,我一试,成功了,真好。

解决:

  1. 查下当前mysql的大小写敏感配置

 show variables like 'lower_case_table_names';

如果是value值为0的话,就是没有关闭大小写敏感,需要将value值改为1;

  1. 修改mysql的配置文件my.cnf或my.ini,添加一条配置如下(放下配置文件中的[mysqld]下面)

lower_case_table_names=1
  1. 然后重启mysql数据库,再查询下参数值是否变成了1,启动项目访问数据库应该就不会报错了。

  1. 有什么问题可以下方评论,一直在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值