在整合spring boot 和mybatis 时 ,进行单元测试时,报错:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
com.yunda.study.mybatis.dao.mapper.UserMapper.findByUserId
这种情况,是找不到UserMapper.中的方法findByUserId,一般情况下:
按以下步骤一一执行:
1、检查xml文件所在的package名称是否和interface对应的package名称一一对应
2、检查xml文件的namespace是否和xml文件的package名称一一对应
3、检查函数名称能否对应上
4、去掉xml文件中的中文注释
5、随意在xml文件中加一个空格或者空行然后保存 (来自网络摘要哦)
但是仔细,检查和操作也无济于事。
于是,去看全局配置文件,application.yml
路径配置的也是对的,但是,就是没起作用,于是,笔者突然,鬼一般的,将配置文件的mybatis前的空格去掉,顶格,和spring配置位于同一级,发现起作用了,之前sql语句打印部分的配置,也没有起作用,将位置调整后,也同样生效了。
给出yml文件如下:
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
username: root
password: root
url: jdbc:mysql://127.0.0.1:3309/sell2?characterEncoding=utf-8&useSSL=false
jpa:
show-sql: true
jackson:
default-property-inclusion: non-null
logging:
level:
#设置mybatis的sql语句打印到控制台。
com.yunda.study.mybatis.dao.mapper: trace
mybatis:
mapper-locations: classpath:mapper/*.xml