场景
在使用SpringBoot+MyBatisPlus搭建后台启动项目时,使用EasyCode自动生成代码。
在访问后台接口时提示:
Invilid bound statement (not found):**.dao.UserDao.queryById
注:
实现
首先第一步是会想到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