前言
在學習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