1. 程式人生 > 實用技巧 >MyBatis入門踩坑記錄

MyBatis入門踩坑記錄

MyBatis入門程式

問題說明

學習過程中遇到很多問題,記錄一下。

Maven靜態資源過濾問題

<!--在build中配置resource,來防止我們資源匯出失敗的問題-->
<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
</build>

Junit測試時,可能會提示

org.apache.ibatis.binding.BindingException: Type interface com.melodyhub.dao.UserDao is not known to the MapperRegistry.

MapperRegistry是什麼?

每一個Mapper.xml都需要在MyBatis核心配置檔案中註冊!!!

<!--每一個Mapper.xml都需要在MyBatis核心配置檔案中註冊!!!-->
<mappers>
	<mapper resource="com/melodyhub/dao/UserMapper.xml"/>
</mappers>

MySQL時區

由於MySQL底層是使用的時區是CST,跟中國時間相差掙好8個小時。

解決辦法是在mybatis-config.xml中``jdbcurl`末尾加上,二選一即可:

&amp;serverTimezone=GMT%2B8
&amp;useTimezone=true&amp;serverTimezone=UTC

參考:https://blog.csdn.net/ziningyihao/article/details/90644295

MySQL驅動/版本問題

所有的程式碼都沒有問題,但是就是連線不上資料庫,經過排查,發現我的MySQL版本是8.0,驅動包是5.1.47,差距太大,不相容。

將MySQL降級到5.7.29,問題解決。