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);
    }
}
相关推荐
ZSYP-S5 分钟前
Day 15:Spring 框架基础
java·开发语言·数据结构·后端·spring
yuanbenshidiaos12 分钟前
C++----------函数的调用机制
java·c++·算法
是小崔啊30 分钟前
开源轮子 - EasyExcel01(核心api)
java·开发语言·开源·excel·阿里巴巴
黄公子学安全39 分钟前
Java的基础概念(一)
java·开发语言·python
liwulin050640 分钟前
【JAVA】Tesseract-OCR截图屏幕指定区域识别0.4.2
java·开发语言·ocr
jackiendsc44 分钟前
Java的垃圾回收机制介绍、工作原理、算法及分析调优
java·开发语言·算法
Yuan_o_1 小时前
Linux 基本使用和程序部署
java·linux·运维·服务器·数据库·后端
Oneforlove_twoforjob1 小时前
【Java基础面试题027】Java的StringBuilder是怎么实现的?
java·开发语言
数据小小爬虫1 小时前
利用Java爬虫获取苏宁易购商品详情
java·开发语言·爬虫
小汤猿人类1 小时前
nacos-服务发现注册
java·开发语言·服务发现