SpringBoot集成MyBatis-Plus

MyBatis-Plus简介

MyBatis-Plus (简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

1.愿景

我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。、

MyBatis-Plus特性:

无侵入: 只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑

损耗小: 启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作

强大的 CRUD 操作: 内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求

支持 Lambda 形式调用: 通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错

支持多种数据库: 支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库

内置分页插件: 基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询

框架结构

2. 丰富的插件支持

MP 内置了许多实用的插件,如分页插件、乐观锁插件、性能分析插件等。这些插件可以轻松地集成到项目中,为开发过程提供更多的便利和保障。

以分页插件为例,只需简单地配置一下,即可实现分页查询功能:

java 复制代码
@Configuration
public class MybatisPlusConfig {
 
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
}
3. 代码生成器

MP 还提供了强大的代码生成器,可以根据数据库表结构自动生成实体类、Mapper 接口、Service 接口以及对应的实现类。这极大地减少了开发者的工作量,提高了开发效率,同时也保证了代码的规范性和一致性。

二、Druid 数据源简介

Druid 是阿里巴巴开源的一款数据库连接池,它具有强大的监控和管理功能,能够有效地提升数据库访问性能和稳定性。

  1. 高性能

Druid 采用了一系列的优化技术,如连接池的预初始化、连接的复用、SQL 语句的缓存等,大大提高了数据库连接的获取速度和执行效率。

  1. 丰富的监控信息

Druid 提供了非常丰富的监控信息,包括连接池的使用情况、SQL 执行的统计信息、慢查询日志等。通过这些监控信息,开发者可以及时发现和解决系统中可能存在的性能问题。

  1. 强大的扩展性

Druid 具有良好的扩展性,支持自定义扩展插件,可以根据实际需求对连接池进行定制化开发。

三、MyBatis-plus 与 Druid 数据源的整合

将 MyBatis-plus 与 Druid 数据源整合在一起,可以充分发挥两者的优势,实现更高效、更稳定的数据访问。

  1. 添加依赖

首先,在项目的 pom.xml 文件中添加 MyBatis-plus 和 Druid 数据源的依赖

java 复制代码
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.5.1</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.21</version>
</dependency>
2. 配置数据源

在 application.properties 文件中配置 Druid 数据源

3. 使用 MyBatis-plus 和 Druid 数据源

完成上述配置后,我们就可以在项目中使用 MyBatis-plus 和 Druid 数据源了。在代码中,我们只需注入 Mapper 接口,即可进行数据库操作:

java 复制代码
@Service
public class UserService {
 
    @Autowired
    private UserMapper userMapper;
 
    public List<User> getUserList() {
        return userMapper.selectList(null);
    }
}
相关推荐
csdn2015_38 分钟前
springboot读取配置的方法
java·spring boot·spring
AOwhisky1 小时前
下一代容器来了?Docker 宣布原生支持 WebAssembly
java·运维·docker·容器·rust·wasm
云云只是个程序马喽3 小时前
海外短剧平台搭建方案:私有化源码系统选型|云微短剧系统技术架构拆解
java·php
C137的本贾尼4 小时前
第七篇:消息队列(MQ)——就是个带存储的异步通信管道
java·开发语言·中间件
Flittly4 小时前
【AgentScope Java新手村系列】(19)多模态-图像音频视频
java·spring boot·spring
Javatutouhouduan4 小时前
国内大厂Java面试高频题库(2026突击版)
java·架构师·java面试·java面试题·后端开发·java程序员·java八股文
Tim_104 小时前
【C++】017、new/delete与malloc/free的区别
java·数据结构·算法
青山木5 小时前
一把 Redis 分布式锁,踩透四个坑:锁争抢、僵尸锁、锁过期、锁丢失
java·数据库·redis·后端
Java内核笔记5 小时前
万字避坑!Spring Boot 3.x 升 4.0 最全升级指南(附 Migration Checklist,建议收藏⭐)
java·后端
wuqingshun3141595 小时前
什么是代理模式?一般用在什么场景?
java·mysql·代理模式