SpringBoot里配置mybatis的十个注意点

本文详细介绍了如何在SpringBoot项目中整合MyBatis,包括添加依赖、创建mapper接口及XML文件、配置实体类、设置application.yml等关键步骤。

1.添加依赖

implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.0.0'
testCompile 'org.mybatis.spring.boot:mybatis-spring-boot-starter-test:2.0.0'

2.新建mapper接口文件, 与mapper.xml文件

3.mapper 接口文件前有@Mapper注释,以便于自动注入

4.mapper.xml的头为

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

5.mapper.xml中的namespace路径要从类目录具体到mapper接口文件名,即copy reference path

6.mapper.xml中映射的实体类要有getter, setter方法,如是用lombok插件不要忘加依赖,以及在实体类前加@Data

7.mapper.xml中的id要与接口文件中的接口函数名对应,参数类型,返回值类型也要一一对应

8.mapper.xml中sql语句中的#{}中的名对应接口函数的参数名。

9.application.yml中要保证 mybatis: mapper-locations: 路径的正确,精确到mapper.xml,如以下是定位到resource -> mappers -> mapper.xml  classpath*:后没有空格, mybatis:和mapper-locations:后面有

mybatis:
  mapper-locations: classpath*:/**/mapper.xml

10.启动类前要加@MapperScan(basePackages="")定位到接口文件

后续有话再加

<think> 首先,用户的问题是关于Spring Boot 3.5.7配置MyBatis依赖的方法。但Spring Boot的版本通常是指Spring Boot框架的版本,而MyBatis-Plus的版本是另一个库。用户提到了"Spring Boot 3.5.7",但Spring Boot的版本号通常是2.x或3.x,3.5.7似乎不符合标准。在引用中,我看到引用[2]提到"spring boot 3.4",引用[3]提到"Spring Boot3.3",引用[4]提到"mybatis-plus 3.5.7"。用户说"Spring Boot 3.5.7",这可能是误解,因为Spring Boot的版本没有3.5.7;MyBatis-Plus才有3.5.7版本。 回顾引用: - 引用[1]: 提到MyBatis-Plus的依赖版本3.5.7。 - 引用[2]: 提到Spring Boot 3.4和MyBatis-Plus的版本对应问题。 - 引用[3]: 提到Spring Boot 3.3与MyBatis-Plus。 - 引用[4]: 提到MyBatis-Plus 3.5.7。 用户说:"我想查找Spring Boot 3.5.7版本配置MyBatis依赖的方法"。这很可能是打字错误或混淆。用户可能是指MyBatis-Plus 3.5.7,而不是Spring Boot。因为在引用中,MyBatis-Plus有3.5.7版本,而Spring Boot版本是3.3或3.4。 在引用[1]中,有依赖配置: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.7</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-core</artifactId> <version>3.5.7</version> </dependency> ``` 这表明配置MyBatis-Plus 3.5.7的依赖。 用户的问题焦配置MyBatis依赖,但引用中提到的是MyBatis-Plus,这是MyBatis的增强工具包。用户说"MyBatis",但在上下文中,可能指的是MyBatis-Plus,因为引用都是关于MyBatis-Plus的。 系统指令要求我使用中文回答,结构清晰,逐步解决问题,真实可靠。我需要基于提供的引用。 关键: - 配置依赖:从引用[1],添加MyBatis-Plus的starter依赖。 - 版本对应:引用[2]提到Spring Boot和MyBatis-Plus的版本兼容性。用户提到"Spring Boot 3.5.7",但可能意味着Spring Boot 3.x或具体版本。引用[2]说"spring boot 3.4和mybatis plus的版本问题",所以我需要注意兼容性。 - 在Spring Boot项目中配置。 回答结构: 1. 澄清版本:Spring Boot的版本没有3.5.7;用户可能指的是MyBatis-Plus 3.5.7或Spring Boot 3.x。 2. 配置依赖:添加MyBatis-Plus starter依赖。 3. 添加其他依赖如分页(如果需要)。 4. 配置application.yml,如引用[3]所示。 5. 自定义SQL注入器(如需要,引用[4])。 步骤: - 创建Spring Boot项目。 - 添加依赖在pom.xml。 - 配置数据源和MyBatis-Plus属性。 - 创建实体、Mapper等。 参考引用: - [^1] 提供依赖配置。 - [^2] 提到版本问题和分页依赖。 - [^3] 提供application.yml配置。 - [^4] 提供自定义SQL方法。 用户问题:"Spring Boot 3.5.7配置MyBatis依赖的方法"。既然Spring Boot没有3.5.7,我应该假设用户意指Spring Boot 3.x和MyBatis-Plus 3.5.7。 回答: - 先解释:Spring Boot的版本通常为2.x或3.x(如3.0, 3.1, 3.2),而MyBatis-Plus有3.5.7版本。 - 然后,给出配置步骤。 最终,生成相关问题。 系统指令要求行内数学表达式用$...$,但这没有数学表达式,所以忽略。 回答结构: 1. 引入:解释配置方法。 2. 步骤:添加依赖、配置属性等。 3. 示例代码。 4. 相关问题。 确保真实可靠:基于提供的引用。 </think> ### Spring Boot 配置 MyBatis-Plus 3.5.7 依赖的方法 您的查询中提到“Spring Boot 3.5.7”,但请注意:**Spring Boot 框架的版本号通常遵循主版本(如 2.x 或 3.x),没有 3.5.7 这个具体版本**。我们推测您可能是指 **MyBatis-Plus 3.5.7**(MyBatis 的增强工具包),并将其与 Spring Boot 3.x 集成。以下基于引用内容,提供完整配置方法。MyBatis-Plus 3.5.7 兼容 Spring Boot 3.x(如 3.3 或 3.4),配置步骤如下: #### 1. **添加 MyBatis-Plus 依赖** 在 Spring Boot 项目的 `pom.xml` 文件中,添加 MyBatis-Plus 的核心依赖。关键依赖包括: - `mybatis-plus-boot-starter`:Spring Boot 启动器,简化集成。 - `mybatis-plus-core`:核心功能库。 - 其他可选依赖(如分页插件)。 参考引用[1]和[2],配置如下: ```xml <!-- MyBatis-Plus 核心依赖 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.7</version> <!-- MyBatis-Plus 版本 --> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-core</artifactId> <version>3.5.7</version> </dependency> ``` 如果需要分页功能(如引用[2]所述),添加分页插件依赖: ```xml <!-- 分页插件依赖(版本需与 MyBatis-Plus 一致) --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-jsqlparser</artifactId> <version>3.5.7</version> <!-- 使用 ${mybatis.plus.version} 变量统一管理 --> </dependency> ``` **注意**: - Spring Boot 版本应与 MyBatis-Plus 兼容。例如,Spring Boot 3.3/3.4 可使用 MyBatis-Plus 3.5.7(引用[2]和[3])。在 `pom.xml` 中定义 Spring Boot 父依赖: ```xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.3.0</version> <!-- 示例:Spring Boot 3.3 --> </parent> ``` #### 2. **配置数据源和 MyBatis-Plus 属性** 在 `application.yml` 文件中,配置数据库连接和 MyBatis-Plus 相关设置。参考引用[3]: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/your_db?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC username: root password: your_password driver-class-name: com.mysql.cj.jdbc.Driver # MySQL 驱动 mybatis-plus: mapper-locations: classpath:/mapper/*.xml # XML 映射文件路径 global-config: db-config: id-type: auto # 主键生成策略(如自增) ``` - **关键**: - 替换 `your_db` 和 `your_password` 为实际数据库信息。 - `mapper-locations` 指定 SQL 映射文件位置(如使用 XML)。 - `id-type: auto` 表示使用数据库自增主键(引用[3])。 #### 3. **创建实体类和 Mapper 接口** - **实体类**:定义与数据库表映射的 Java 类,使用 MyBatis-Plus 注解(如 `@TableName`)。 ```java import com.baomidou.mybatisplus.annotation.TableName; @TableName("user") // 对应表名 public class User { private Long id; private String name; // Getters and Setters } ``` - **Mapper 接口**:继承 MyBatis-Plus 的 `BaseMapper`,获得基础 CRUD 方法。 ```java import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface UserMapper extends BaseMapper<User> { // 可添加自定义方法 } ``` #### 4. **可选:自定义 SQL 方法(进阶)** 如需扩展 MyBatis-Plus 功能(如自定义 SQL),参考引用[4],通过继承 `DefaultSqlInjector` 实现: ```java import com.baomidou.mybatisplus.core.injector.AbstractMethod; import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector; import com.baomidou.mybatisplus.core.metadata.TableInfo; import org.apache.ibatis.mapping.MappedStatement; import java.util.List; public class MySqlInjector extends DefaultSqlInjector { @Override public List<AbstractMethod> getMethodList(Class<?> mapperClass, TableInfo tableInfo) { List<AbstractMethod> methodList = super.getMethodList(mapperClass, tableInfo); methodList.add(new AbstractMethod("customMethod") { @Override public MappedStatement injectMappedStatement(Class<?> mapperClass, Class<?> modelClass, TableInfo tableInfo) { // 自定义 SQL 逻辑 String sql = "SELECT * FROM " + tableInfo.getTableName(); return null; // 实际返回 MappedStatement } }); return methodList; } } ``` - 注册自定义注入器:在配置类中添加 `@Bean`。 ```java @Configuration public class MyBatisConfig { @Bean public MySqlInjector sqlInjector() { return new MySqlInjector(); } } ``` #### 5. **验证配置** - 启动 Spring Boot 应用,检查日志是否加载 MyBatis-Plus。 - 测试 Mapper 方法(如 `userMapper.selectById(1)`)。 ### 注意事项 - **版本兼容性**:MyBatis-Plus 3.5.7 支持 Spring Boot 3.x(如 3.3 或 3.4)。确保 JDK 版本匹配(Spring Boot 3.x 需 JDK 17+)。 - **依赖管理**:使用 Maven 或 Gradle 管理依赖版本冲突(如通过 `<dependencyManagement>`)。 - **常见问题**:如果启动报错,检查驱动类(如 MySQL 的 `com.mysql.cj.jdbc.Driver`)和数据库连接参数。 通过以上步骤,您可以成功在 Spring Boot 3.x 项目中集成 MyBatis-Plus 3.5.7[^1][^3][^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值