当前位置: 首页 > news >正文

Spring Boot 2整合MyBatis Plus详细指南

1. 环境准备

  • Spring Boot版本:2.x(推荐2.7.x)
  • MyBatis Plus版本:3.5.x(兼容Spring Boot 2)
  • 数据库:MySQL 8.0+(其他数据库需调整驱动)

2. 创建项目并添加依赖

pom.xml中添加核心依赖:

<dependencies><!-- Spring Boot Starter --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- MyBatis Plus Starter --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version></dependency><!-- 数据库驱动(以MySQL为例) --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!-- Lombok简化代码 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency>
</dependencies>


3. 配置数据源与MyBatis Plus

application.yml中配置:

spring:datasource:url: jdbc:mysql://localhost:3306/test_db?useSSL=false&serverTimezone=UTCusername: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Driver# MyBatis Plus配置
mybatis-plus:configuration:map-underscore-to-camel-case: true  # 开启驼峰命名转换global-config:db-config:id-type: auto  # 主键生成策略(数据库自增)mapper-locations: classpath:mapper/*.xml  # XML映射文件路径


4. 实体类与Mapper

(1) 实体类(使用Lombok简化):

import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableName;@Data
@TableName("user")  // 对应数据库表名
public class User {private Long id;private String name;private Integer age;private String email;
}

(2) Mapper接口

import com.baomidou.mybatisplus.core.mapper.BaseMapper;public interface UserMapper extends BaseMapper<User> {// 继承BaseMapper即拥有CRUD基础方法
}

(3) 启用Mapper扫描: 在启动类添加@MapperScan注解:

@SpringBootApplication
@MapperScan("com.example.demo.mapper")  // 替换为实际Mapper包路径
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}
}


5. Service层与Controller层

(1) Service接口

public interface UserService extends IService<User> { }

(2) Service实现类

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { 
}

(3) Controller示例

@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userService;@GetMapping("/{id}")public User getById(@PathVariable Long id) {return userService.getById(id);}@PostMappingpublic boolean save(@RequestBody User user) {return userService.save(user);}
}


6. 高级功能配置

(1) 分页插件

@Configuration
public class MyBatisPlusConfig {@Beanpublic MybatisPlusInterceptor paginationInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor());return interceptor;}
}

(2) 逻辑删除配置: 在application.yml中启用:

mybatis-plus:global-config:db-config:logic-delete-field: deleted  # 逻辑删除字段名logic-delete-value: 1        # 删除状态值logic-not-delete-value: 0    # 未删除状态值


7. 测试验证

使用@SpringBootTest进行单元测试:

@SpringBootTest
class UserMapperTest {@Autowiredprivate UserMapper userMapper;@Testvoid testSelect() {List<User> users = userMapper.selectList(null);users.forEach(System.out::println);}
}


8. 常见问题解决
  1. 数据库连接失败

    • 检查spring.datasource配置
    • 确认MySQL服务已启动
    • 添加&allowPublicKeyRetrieval=true到URL(MySQL 8.0+)
  2. Mapper扫描失败

    • 确认@MapperScan路径正确
    • 检查Mapper接口是否添加@Repository@Mapper注解
  3. 字段映射错误

    • 开启驼峰命名:map-underscore-to-camel-case: true
    • 使用@TableField指定字段名:
      @TableField("user_name")
      private String name;
      

通过以上步骤,即可完成Spring Boot 2与MyBatis Plus的整合,快速实现高效数据操作。

http://www.dtcms.com/a/304532.html

相关文章:

  • 【面试场景题】阿里云子账号设计
  • 从零开始学习Dify-爬取网站文章,批量提取和输出热点摘要(十)
  • CRMEB电商系统集群部署指南:阿里云COS静态文件加速与资源分离最佳实践
  • 聊聊测试环境不稳定如何应对
  • 人工智能与法律:智能司法的创新与挑战
  • C++ 进阶
  • Typecho handsome新增评论区QQ,抖音,b站等表情包
  • 【Clumsy】只是学习记录
  • 晶界能计算
  • flexiblejs + pxtorem 实现浏览器缩放适配:兼顾系统缩放与文本放大体验
  • 图形界面应用程序技术栈大全
  • getgff.py脚本-python006
  • 【学习路线】游戏开发大师之路:从编程基础到独立游戏制作
  • 2025年科研算力革命:8卡RTX 5090服务器如何重塑AI研究边界?
  • react 项目怎么打断点
  • vite + chalk打印输出彩色命令行
  • 基于Dify构建本地化知识库智能体:从0到1的实践指南
  • 橡胶制品加工:塑造生活的柔韧力量
  • python基础:request请求Cookie保持登录状态、重定向与历史请求、SSL证书校验、超时和重试失败、自动生成request请求代码和案例实践
  • Python批量生成N天前的多word个文件,并根据excel统计数据,修改word模板,合并多个word文件
  • 中科米堆CASAIM金属件自动3d测量外观尺寸三维检测解决方案
  • 火山方舟使用豆包基模 —— 基础流程
  • 深港同心·科创启航——“智创探索+实习计划”启航礼在前海举行
  • 三十、【Linux邮件服务器】搭建Postfix邮件服务器
  • Ubuntu卡在启动画面:显卡驱动与密码重置
  • ubuntu18.04制作raid0
  • Ubuntu 部署 PaddleOCR 完整指南
  • Ubuntu 抽取系统制作便于chroot的镜像文件
  • C#开发基础之深入理解“集合遍历时不可修改”的异常背后的设计
  • 三十一、【Linux网站服务器】搭建httpd服务器演示个人主页、用户认证、https加密网站配置