<?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> <groupId>com.jewelry.risk</groupId> <artifactId>demo4</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo4</name> <description>demo4</description> <properties> <java.version>11</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring-boot.version>2.6.13</spring-boot.version> </properties> <dependencies> <!-- MyBatis 操作数据库 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.2</version> </dependency> <!-- MySQL 驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</s
时间: 2025-07-13 22:25:14 浏览: 5
<think>好的,我现在需要帮助用户解决关于在Maven项目中配置Spring Boot 2.6.13、MyBatis和MySQL依赖的问题。用户还提到最佳实践和常见问题,所以我需要详细整理这方面的信息。
首先,用户的需求是集成这三个组件,所以得确保POM文件中正确添加了Spring Boot的父项目,MyBatis的starter依赖,以及MySQL的连接器。我需要回忆一下各个依赖的groupId和artifactId,特别是版本号是否正确。比如Spring Boot的版本是2.6.13,对应的MyBatis Starter应该是哪个版本呢?通常Spring Boot的starter会管理其他依赖的版本,所以可能需要确认MyBatis Starter的版本是否兼容。
然后,常见问题可能包括依赖冲突、配置错误,比如数据库连接参数不正确。用户提到的引用[2]中提到yml配置问题,所以需要强调application.yml中的数据库配置是否正确,比如url、username、password,以及MyBatis的mapper-locations是否设置正确。
另外,用户可能遇到的另一个问题是自动配置的问题,比如DataSource自动配置失败。这时候是否需要排除某些自动配置类?但根据引用[2],用户建议不要随便排除,所以可能需要检查配置而不是排除类。
接下来,我需要考虑如何组织回答的结构。首先给出POM文件的配置示例,分步骤说明每个依赖的作用,然后提到MyBatis的配置文件和Spring Boot的配置项,比如mapper.xml的位置。接着,常见问题部分需要列出依赖冲突、配置错误、驱动类问题、Mapper扫描等,并给出解决方法,比如使用mvn dependency:tree检查冲突,或者添加@MapperScan注解。
可能还需要提到MySQL Connector的版本是否兼容,因为不同版本的Spring Boot可能对数据库驱动有要求。比如,Spring Boot 2.6.13可能默认使用MySQL Connector 8.x,所以用户需要确保版本一致。
另外,关于MyBatis的集成,是否需要额外的配置类?比如,在Spring Boot中,通常只需要在application.yml中配置mybatis.mapper-locations即可,同时使用@Mapper或者@MapperScan来扫描接口。
然后,常见问题中的配置错误,比如数据库URL格式是否正确,时区设置,SSL设置等,这些都是容易出错的地方,需要详细说明。
最后,总结最佳实践,包括使用父POM管理版本,合理配置yml文件,正确使用注解,以及定期检查依赖树等。
需要确保回答结构清晰,步骤明确,用户能够按照指导逐步配置,并解决可能遇到的问题。同时引用用户提供的引用[1]和[2],比如在配置数据库时提到引用[2]中关于不要随意排除自动配置类的建议。</think>### Maven POM 文件配置 Spring Boot 2.6.13 + MyBatis + MySQL 依赖的实践指南
#### 1. 基础依赖配置
在 Maven 的 `pom.xml` 中,需添加以下核心依赖:
```xml
<!-- Spring Boot 父级依赖(管理版本) -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.13</version>
<relativePath/> <!-- 优先从本地仓库加载 -->
</parent>
<dependencies>
<!-- Spring Boot Web 支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- MyBatis 与 Spring Boot 集成 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.3.1</version> <!-- 兼容 Spring Boot 2.6.x -->
</dependency>
<!-- MySQL 驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope> <!-- 运行时生效 -->
</dependency>
</dependencies>
```
#### 2. MyBatis 配置
在 `application.yml` 中添加数据库和 MyBatis 配置:
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/your_db?useSSL=false&serverTimezone=UTC
username: root
password: your_password
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
mapper-locations: classpath:mapper/*.xml # MyBatis XML 映射文件路径
configuration:
map-underscore-to-camel-case: true # 自动转换字段名(下划线转驼峰)
```
#### 3. 常见问题及解决方法
**问题1:依赖冲突**
- **现象**:启动时报 `NoSuchMethodError` 或 `ClassNotFoundException`
- **原因**:不同库的版本不兼容(如 MyBatis 与 Spring Boot 版本冲突)
- **解决**:使用 `mvn dependency:tree` 分析依赖树,排除冲突包。例如:
```xml
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
```
**问题2:数据库连接失败**
- **现象**:`Cannot create connection to database`
- **原因**:`application.yml` 配置错误(如 URL 格式、驱动类名错误)[^2]
- **解决**:
- 检查 URL 是否包含时区参数(如 `serverTimezone=UTC`)
- 确认 `driver-class-name` 是否为 `com.mysql.cj.jdbc.Driver`(MySQL 8.x+ 必须)
**问题3:MyBatis Mapper 未扫描**
- **现象**:`Invalid bound statement (not found)`
- **原因**:Mapper 接口未被 Spring 容器识别
- **解决**:
- 在启动类添加 `@MapperScan("com.example.mapper")`
- 或在 Mapper 接口上添加 `@Mapper` 注解
#### 4. 最佳实践
1. **版本对齐**:通过 Spring Boot 父级依赖统一管理版本,避免手动指定依赖版本(如 MySQL Connector)
2. **配置分离**:将敏感信息(密码)移至 `application-prod.yml`,通过 Profile 管理环境
3. **日志调试**:开启 MyBatis SQL 日志:
```yaml
logging:
level:
com.example.mapper: debug
```
阅读全文
相关推荐













