今天被一个“Mapper.xml报错Invalid bound statement (not found)“问题困扰了数小时,配置和代码都没错,问题在于application.yml
错误配置:
正确的配置:
spring datasource和mybatis对齐的问题,核心是yml是标记语言,一旦错开,系统理解就会出错(参考python)
如果换成application.propeties就很容易理解
#数据库名称
spring.datasource.name=testdb
#数据库连接url
spring.datasource.url= jdbc:mysql://localhost:3310/testdb
#用户名
spring.datasource.username=root
#密码
spring.datasource.password=123456
#数据库驱动
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#mybatis配置
#配置映射文件
mybatis.mapper-locations=classpath:mapper/*.xml
#配置实体类
mybatis.type-aliases-package=com.example.demo.bean
spring.datasource 和 mybatis是独立配置,没有隶属关系,必须对齐才行
这个错误,只有执行的时候才会错,有一定的隐蔽性,希望大家不要踩坑