1. 程式人生 > >記一次spring boot 配置失誤導致的異常org.apache.ibatis.binding.BindingException: Invalid bound statement

記一次spring boot 配置失誤導致的異常org.apache.ibatis.binding.BindingException: Invalid bound statement

在整合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