spring boot2整合Mybatis以及常犯错误

前言:

容易出现Invalid bound statement (not found) :com.xxx错误,该错误是由于spring没有找到mapper.xml文件引起的,请检查如下方面:

  1. 接口中方法名称如findAll()与Mapper.xml文件中 id="findAll"是否一致
  2. Mapper.xml文件中的 namespace的属性值与接口文件路径一致,比如有接口为xxx.xxx.UserMapper,则 namespace=“xxx.xxx.UserMapper”
  3. Mapper.xml文件名称要与接口名称一致,比如UserMapper.xml,则接口名称为UserMapper。
  4. 项目配置文件application.properties中的mapper.xml的位置配置是否正确(写错一个字符都不行),正确配置的例子如下:

mybatis.typeAliasesPackage=com.entity
mybatis.mapper-locations=classpath:/mapper/*Mapper.xml

切记不要错误配置为:

spring.mybatis.typeAliasesPackage=com.entity
spring.mybatis.mapper-locations=classpath:/mapper/*Mapper.xml

mybatis、spring、server是application.properties中三大并列的配置范畴,不是主从关系不要搞混了。

另外需要注意的地方是:
1.如果在接口上配置了@Mapper注解,则没有必要在启动程序的类public class DemoApplication{ …main()…}的前添加MapperScan,比如@MapperScan(“com.example.demo.dao”)。

2.项目的目录结构中启动程序public class DemoApplication{ …main()…}的包如果是 com.example.demo,则项目中新建的包要求在com.example.demo基础上进行添加,比如添加com.example.demo.dao;com.example.demo.controller等。由于不需要依赖注入实体类的包不需要遵循这个结构,比如我们可以在com.entity下面创建实体类。

下面给出一个正确的案例,该例实现了spring boot整合mybatis的xml配置和注解配置两种方式:

步骤1 在http://maven.apache.org/download.cgi下载maven。先配置maven的下载依赖包的镜像网站,在settings.xml里面找到中的内容,用下面替换:

<mirror> 
  <id>nexus</id>
  <mirrorOf>*</mirrorOf>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>

步骤2 在eclipse的Windowd/Preferences/Maven/User Settings的Global settings和User settings中导入settings.xml文件

步骤3 在start.spring.io上下载demo模板,并导入该maven项目

步骤4 进入项目设计,具体如下:
项目结构:

在这里插入图片描述
POM.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.8.RELEASE</version>
		<relativePath /> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>demoJDBC</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>demo</name>
	<description>Demo project for Spring Boot</description>
 
	<properties>
		<java.version>1.8</java.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>
 
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值