org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xxx.mapper.UserMapper.queryUserById
我这次遇到的错误
项目结构:
现在访问http://localhost:8080/login
他说绑定不到我UserMapper下的queryUserById这个方法:
看看yaml配置
# 整合mybatis
mybatis:
type-aliases-package: com.iflytek.pojo
#加载映射文件
mapper-locations: classpath*:mybatis/mapper/*.xml
项目映射都是对的呀,而且UserMapper.java和UserMapper.xml的名字是一样的,别名也起的没问题
然后我就无语了
第二天.......我打开我的项目
我本来是想mybatis文件夹下有一个mapper文件夹!!
发现这里并不是两个包,所以错误在这里,应该是这样的
到这里错误就完美解决了!
总结一下Mybatis出错的地方:
1、xxxMapper.java中的方法,在对应的xxxMapper.xml中没有对应的Id,且xxxMapper.java和xxxMapper.xml的xxx名字要一样
2、映射文件中的 namespace="com.xxx.mapper.UserMapper"
千万不要写错了
3、配置文件,也要注意
# 整合mybatis
mybatis:
type-aliases-package: com.iflytek.pojo
#加载映射文件
mapper-locations: classpath*:mybatis/mapper/*.xml
4、就是包结构,可以打开文件看看,会不会是文件出现名为mybatis.mapprt的文件,而你想要的是mybatis/mapper
写在最后:
现在大二要结束了,因为是专科大三就需要出去工作,昨天老师布置了一个作业,就是一个简单的登录拦截,但是我在整合mybatis的时候,就整合了很久,我当时就烦的不行,感觉学了这么久这种问题都要做很久。晚上就很emo那种自我否定,哈哈哈哈。所以呢,我们在学习的时候也是需要调整好我们的心情的,道阻且长,行则将至。
其实像这种环境问题有的时候确实太坑爹了、下次我再遇到这种,看了30分钟还没做出来的话,我就隔一天再去看。