前言
在学习SSM框架时,导入一个已有项目,修改了mysql等一系列常规配置后,发现要实现简单的运行,也存在着系列的问题,感觉也比较典型,作如下记录。
问题
1. mysql 5 迁移到 mysql 8
# 1. connector jar包
connector 5.0 -> connector 8.0
# 2. jdbc 驱动更改
‘com.mysql.jdbc.Driver’ -> ‘com.mysql.cj.jdbc.Driver’
# 3. 数据库连接的url更改
jdbc:mysql://localhost:3306/how2java?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
数据库设置迁移中有几个报错和注意,读者需牢记:
-
serverTimeZone 大小写注意,错一个都不行。
报错形式:java.sql.SQLException: No timezone mapping entry for … -
serverTimeZone的值设置有讲究,
报错形式:The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized -
xml中使用实体符号代替直接输入&
否则tomcat报错如下:
ERROR [main] - Context initialization failed
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 26 in XML
document from class path resource [applicationContext.xml] is invalid; nested exception # is org.xml.sax.SAXParseException; lineNumber: 26; columnNumber: 90; 对实体
“serverTimezone” 的引用必须以 ‘;’ 分隔符结尾。
2. 为何需要设置时区?
为什么普通的请求和我的时区也会有关系,时区对程序的影响是什么?
请参考:https://blog.csdn.net/xiuliyan6124/article/details/80630293
mysql窗口中查看自己的时区是跟随系统的,而我们所在时区为东八区,你可以将时区调整为+8,或者将时区设置为Asia/shanghai即可。
jdbc:mysql://localhost:3306/how2java?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
3. 访问页面后直接返回的是jsp源码
错误原因:web.xml中url pattern 中 / 和 /*的不同
请参考:https://blog.csdn.net/xiuliyan6124/article/details/80630293