場景
在使用SpringBoot+MyBatisPlus搭建后台啟動項目時,使用EasyCode自動生成代碼。
在訪問后台接口時提示:
Invilid bound statement (not found):**.dao.UserDao.queryById
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。
實現
首先第一步是會想到dao層的注入有問題。
在使用EasyCode生成代碼后,默認生成代碼模板中是沒有添加@Mapper注解或者在啟動類中添加@MapperScan注解。
二者選其一,這里在啟動類上添加mapper層掃描注解。
如果在添加后仍然不起作用,在運行項目時不報錯,但是在進行后台接口請求時還是提示以上問題。
那么此時應該就是配置文件有問題了。
找到配置文件application.yml
添加mapper配置文件掃描的配置
mapper-locations: classpath:mapper/*Dao.xml
添加位置參照以下代碼
server: port: 8088 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/usr username: root password: 123 mybatis-plus: #信息輸出設置 # xml地址 mapper-locations: classpath:mapper/*Dao.xml # 實體掃描,多個package用逗號或者分號分隔 # type-aliases-package: *** #自己的實體類地址 configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl