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);
    }
}
相关推荐
冰帝海岸1 小时前
01-spring security认证笔记
java·笔记·spring
世间万物皆对象1 小时前
Spring Boot核心概念:日志管理
java·spring boot·单元测试
没书读了2 小时前
ssm框架-spring-spring声明式事务
java·数据库·spring
jokerest1232 小时前
web——sqliabs靶场——第十三关——报错注入+布尔盲注
mybatis
小二·2 小时前
java基础面试题笔记(基础篇)
java·笔记·python
开心工作室_kaic2 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
懒洋洋大魔王2 小时前
RocketMQ的使⽤
java·rocketmq·java-rocketmq
武子康2 小时前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud
qq_17448285753 小时前
springboot基于微信小程序的旧衣回收系统的设计与实现
spring boot·后端·微信小程序
转世成为计算机大神3 小时前
易考八股文之Java中的设计模式?
java·开发语言·设计模式