关于MySQL版本不一致及编码的问题

项目运行错误 专栏收录该内容
6 篇文章 0 订阅

楼主最近做了一个图书管理web项目,但是在发布到阿里云服务器时项目不能运行,但是在楼主的本地电脑运行无误,下面是解决过程:

1、刚开始时在浏览器访问服务器发布的项目时,报错:HibernateUtil.class未找到。

HibernateUtil是楼主写的dao层工具类,楼主在服务器项目下的对应文件夹发现HibernateUtil.class存在,没有问题,这可急坏了楼主,于是网上一通求助,看博客,最后折腾了一天,还是没有解决,中间还把服务器的MySQL重新装了一遍,在吃晚饭的时候楼主突然就顿悟了,突然想起来去看了hibernate的配置文件,发现要连接的数据库名是大写的(BooksManage),但是我本地电脑上的MySQL版本是5.1,数据库及表的字段名统一默认小写,而我的数据库又是通过Hibernate配置文件自动生成的,但是到了服务器,为了数据方便转移,我是用本地数据库生成的sql文件导入的,不是hibernate自动生成的,所以服务器中MySQL里的字段包括数据库名都是小写,但是项目里是大小写合用,而服务器上的MySQL版本是5.7,区分字段的大小写。导致我的HibernateUtil类无法创建,所以报错。于是楼主兴奋地改了错误,没想到项目是可以运行了,但是显示的数据却是乱码。

2、浏览器显示乱码

这可惊呆了楼主,楼主向来都是对编码很严谨,从Java源文件到jsp文件到数据库都是统一使用的UTF-8这还有乱码的道理?于是我查看了MySQL的编码,utf8没错,可怜的楼主又开始了求助之旅,按大神博客查看myslq的servercharset、clientcharset等等,都没问题,最后没法,又回到了Hibernate配置文件,本着更严谨的态度,在jdbc:mysql:///booksmanage语句后面添加了?characterEncoding=utf8,神奇的事情发生了,乱码好了,偷懒害死人,必要的代码一句都不能省,不然在自己电脑上能运行,但是换个版本的mysql就可能出问题,楼主在掉了n根头发之后,艰难的在服务器上发布了自己的项目。



  • 0
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值