版权声明:本文为【丶我们一起学猫叫】原创文章,允许转载,但转载必须注明出处并附带首发链接! https://blog.csdn.net/AV_woaijava/article/details/89484364
案发现场:
解决方案:
-
1、mapper.xml的命名空间(namespace)是否跟mapper接口的
包名.类名
是否一致 -
2、mapper接口的方法名,与xml中的一条sql标签的id是否一致
-
3、在
application.properties
中添加对mybatis
的配置# 注意注意 # 方式一:将maper.xml配置在 src/main/java 下 mybatis.mapper-locations=classpath:top/peng/mapper/*.xml # 方式二:将maper.xml配置在 resources 目录下,需要创建mapper目录然后存放xml #mybatis.mapper-locations=classpath:mapper/*.xml # 配置对应的实体类,可不做配置 mybatis.type-aliases-package=com.battcn.entity # 驼峰命名规范 如:数据库字段是 order_id 那么 实体字段就要写成 orderId mybatis.configuration.map-underscore-to-camel-case=true
-
4、在
main
入口函数中,添加@MapperScan
注解,告诉Spring ,去扫描mapper接口我的mapper接口是放在:top.peng.mapper包下的,所以我添加的注解是: @MapperScan("top.peng.mapper")
-
5、如果你的项目是
maven
项目,并且你是使用上面方式一
将mapper.xml文件映射在java package
中的,
请你在编译后,到所在目录看一看,很有可能是没有编译生成对应的xml文件
因为Spring Boot
默认只打入java package
下的*.java
文件,所以我们需要在pom.xml
文件的<build></build>
里面,加这么一段:<build> <resources> <resource> <!--编译resources下的文件--> <directory>src/main/resources</directory> </resource> <resource> <!--编译 src/main/java 下的xml文件--> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> </resources> </build>