Mybatis中,首先需要在主配置文件SqlMapConfig.xml中配置好數(shù)據(jù)庫的連接參數(shù),主要是四個參數(shù):driver崭捍、url、username和password啰脚。
在配置和測試的過程中發(fā)現(xiàn)了以下幾個問題殷蛇,所以尋求解決方案:
顯示亂碼
仔細閱讀以下可以發(fā)現(xiàn)是時區(qū)的問題。表示Mysql無法識別該時區(qū)或者存在多個時區(qū)拣播,需要配置serverTimezone屬性對時區(qū)進行修改晾咪。修改后如下:
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test?serverTimezone=UTC"/>
此時再執(zhí)行測試類就不會報相關(guān)錯誤了。
中文顯示亂碼
這個很多人也提到了贮配,主要是useUnicode和characterEncoding這兩個參數(shù)的問題谍倦,更進一步就是數(shù)據(jù)庫的編碼問題:
useUnicode | 是否使用Unicode字符集,如果參數(shù)characterEncoding進行修改的話泪勒,前提是useUnicode參數(shù)需設(shè)置為true |
---|---|
characterEncoding | 用于指定字符編碼昼蛀,常用的有utf-8、GB2312和GBK |
<property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8"/>
帶上這兩個參數(shù)就可以了(需要將數(shù)據(jù)庫編碼也改為utf-8)圆存。這里注意圖片中“&”其實也報錯叼旋,這里先按下不表,最后解決沦辙。
SSL連接驗證問題
出現(xiàn)該問題的原因是已經(jīng)建立了SSL的連接夫植,但是沒有進行身份驗證,所以會報錯油讯,這里將SSL默認改為false就好:
<property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false"/>
符號&的轉(zhuǎn)義
之前提到详民,符號&在語句中報錯,出現(xiàn)如下問題:
<property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false"/>
綜上陌兑,Mybatis使用JDBC連接數(shù)據(jù)庫的基本錯誤就全部解決了沈跨。