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