記一次spring boot 配置失誤導致的異常org.apache.ibatis.binding.BindingException: Invalid bound statement
阿新 • • 發佈:2019-02-01
在整合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語句列印部分的配置,也沒有起作用,將位置調整後,也同樣生效了。j即mybatis和logging的配置行,要和spring的配置,是同一級的,沒有縮排。
給出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