springboot整合mybatis时踩过的坑(idea)

1.启动时报如下错误:

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

1)首先保证xml文件放到resources目录下(若非要放到java文件夹下,需要另行设置,即在pom文件中添加如下配置)

<resource>
    <directory>src/main/java</directory>
    <includes>
        <include>**/*.xml</include>
    </includes>
</resource>

2)检查xml文件的namespace是否和xml文件的package名称一一对应

3)检查函数名称能否对应上

4)application.yml(或者application.properties)中是否进行了如下配置

  mapper-locations: classpath*:com/kavins/**/*.xml

5)如果确保没有以上问题,且你用的是idea,那么恭喜你,踩到了我踩的大坑

在idea中,创建包名时,不能直接创建类似"com.kavins"为包名的包,只能先创建"com"包,再在com包下面创建"kavins"包,两者编译后的效果如下:

 因为第4步配置的为com/kavins,如果你创建的包名为"com.kavins",肯定扫描不到,所以需要先创建"com"包,再在com包下面创建"kavins"包

2.启动时报如下错误:

 org.apache.ibatis.type.TypeException: Could not resolve type alias

解决方式有两种

1)将报错的实体类在对应的xml中的resultType或者parameterType改为全限定名如:com.kavins.User而不能直接在xml中用User

2)在mybatis-config.xml中进行如下配置

<typeAliases>
        <typeAlias type="com.kavins.User" alias="User"/>
</typeAliases>

配置之后,可以直接在xml中的resultType或者parameterType用User

原文地址:https://www.cnblogs.com/kavins/p/12668682.html