MyBatis入门踩坑记录

Posted MelodyHub

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis入门踩坑记录相关的知识,希望对你有一定的参考价值。

问题说明

学习过程中遇到很多问题,记录一下。

Maven静态资源过滤问题

UWu9VU.png

<!--在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 class="com.melodyhub.dao.UserMapper"/>-->
	<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,问题解决。

解决Mybatis报错Could not find resource mybatis-config.xml

下午移植远程仓库项目的时候,控制台报错:

java.io.IOException: Could not find resource mybatis-config.xml

UIg1Yt.png

经过排查,发现是我没有一直夫工程的pom.xml文件。

Maven clean清除缓存,然后build,即可。

-解决Mybatis报错Could not find resource mybatis-config.xml

MyBatis问题解决Error building SqlSession.

UWh0kq.png

解决

以上是关于MyBatis入门踩坑记录的主要内容,如果未能解决你的问题,请参考以下文章

踩坑记录MyBatis-Plus的or和and问题

踩坑记录MyBatis-Plus的or和and问题

Mybatis - if test条件判断,踩坑记录

Mybatis - if test条件判断,踩坑记录

Mybatis - if test条件判断,踩坑记录

Fastlane 一键打包/发布APP - 使用记录及踩坑