案发现场:

解决方案:
-
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>
本文详细介绍了在SpringBoot项目中集成MyBatis时可能遇到的问题及解决方案,包括mapper.xml配置、实体类映射、注解使用等关键步骤。
518

被折叠的 条评论
为什么被折叠?



