【MyBatis-Plus保姆级教程】第一章:从零到一,轻松掌握MyBatis-Plus基础与环境搭建(2025版)

摘要:

嗨,大家好,我是默语 ‍!今天我们要开启一个新的系列——《MyBatis-Plus保姆级教程》。作为一名Java开发者,如果你还在为繁琐的XML配置和重复的CRUD代码而烦恼,那么MyBatis-Plus(简称MP)绝对是你的救星! 这篇文章是系列的第一篇,我会带你从零开始,深入理解MP的核心定位与技术优势,手把手教你如何搭建一个标准的开发环境,并完整演示在Spring Boot项目中集成MyBatis-Plus的全流程。我们还会实战讲解数据库连接池与数据源的配置。准备好了吗?让我们一起告别CRUD的重复劳动,拥抱更高效、更优雅的持久层开发方式!

博主 默语带您 Go to New World.
个人主页—— 默语 的博客 优秀内容
《java 面试题大全》
《java 专栏》
《idea技术专区》
《spring boot 技术专区》
《MyBatis从入门到精通》
《23种设计模式》
《经典算法学习》
《spring 学习》
《MYSQL从入门到精通》数据库是开发者必会基础之一~
惟余辈才疏学浅,临摹之作或有不妥之处,还请读者海涵指正。☕
吾期望此文有资助于尔,即使粗浅难及深广,亦备添少许微薄之助。苟未尽善尽美,敬请批评指正,以资改进。!⌨


默语是谁?

大家好,我是 默语,别名默语博主,擅长的技术领域包括Java、运维和人工智能。我的技术背景扎实,涵盖了从后端开发到前端框架的各个方面,特别是在Java 性能优化、多线程编程、算法优化等领域有深厚造诣。

目前,我活跃在CSDN、掘金、阿里云和 51CTO等平台,全网拥有超过15万的粉丝,总阅读量超过1400 万。统一 IP 名称为 默语 或者 默语博主。我是 CSDN 博客专家、阿里云专家博主和掘金博客专家,曾获博客专家、优秀社区主理人等多项荣誉,并在 2023 年度博客之星评选中名列前 50。我还是 Java 高级工程师、自媒体博主,北京城市开发者社区的主理人,拥有丰富的项目开发经验和产品设计能力。希望通过我的分享,帮助大家更好地了解和使用各类技术产品,在不断的学习过程中,可以帮助到更多的人,结交更多的朋友.


我的博客内容涵盖广泛,主要分享技术教程、Bug解决方案、开发工具使用、前沿科技资讯、产品评测与使用体验。我特别关注云服务产品评测、AI 产品对比、开发板性能测试以及技术报告,同时也会提供产品优缺点分析、横向对比,并分享技术沙龙与行业大会的参会体验。我的目标是为读者提供有深度、有实用价值的技术洞察与分析。

默语:您的前沿技术领航员

大家好,我是默语
全网搜索“默语”,即可纵览我在各大平台的知识足迹。

公众号“默语摸鱼”,每周定时推送干货满满的技术长文,从新兴框架的剖析到运维实战的复盘,助您技术进阶之路畅通无阻。

微信端添加好友“Solitudemind”,与我直接交流,不管是项目瓶颈的求助,还是行业趋势的探讨,随时畅所欲言。

快来加入技术社区,一起挖掘技术的无限潜能,携手迈向数字化新征程!


文章目录

  • 默语:您的前沿技术领航员
    • @[TOC]
  • 【MyBatis-Plus保姆级教程】第一章:从零到一,轻松掌握MyBatis-Plus基础与环境搭建(2025版)
    • ✨ 引言
    • 第一阶段:基础认知与环境搭建
      • 1.1 MyBatis-Plus核心定位与技术优势解析
        • 什么是MyBatis-Plus?
        • ⚔️ MP vs MyBatis vs JPA
        • 技术优势
      • 1.2 开发环境配置标准指南(JDK/Maven/IDE)
        • 1. JDK (Java Development Kit)
        • 2. Maven
        • 3. IDE (Integrated Development Environment)
      • 1.3 Spring Boot项目集成MyBatis-Plus全流程
        • 步骤1:创建Spring Boot项目
        • 步骤2:添加Maven依赖
        • 步骤3:配置Mapper扫描
        • 步骤4:创建实体类 (Entity)
        • 步骤5:创建Mapper接口
      • 1.4 数据库连接池与数据源配置实战
        • 配置文件 `application.yml`
        • 测试验证
    • 总结
    • 参考资料

【MyBatis-Plus保姆级教程】第一章:从零到一,轻松掌握MyBatis-Plus基础与环境搭建(2025版)

搜索词条: MyBatis-Plus, MyBatis-Plus教程, Spring Boot集成MyBatis-Plus, Java ORM框架, MyBatis-Plus入门, MyBatis-Plus环境搭建, 数据源配置

✨ 引言

在现代Java Web开发中,数据持久层框架是不可或缺的一环。从原生的JDBC到Hibernate、MyBatis,我们一直在追求更高的开发效率和更优雅的代码实现。MyBatis以其灵活性和对SQL的强大控制力,赢得了广大开发者的青睐。然而,它在处理简单的CRUD(增删改查)操作时,仍需要我们手动编写SQL语句和映射配置,这在业务复杂的项目中无疑增加了许多重复性工作。

为了解决这个问题,MyBatis-Plus 横空出世! 它并非要取代MyBatis,而是作为MyBatis的“增强工具包”,在完全兼容MyBatis所有功能的基础上,只做增强不做改变,旨在简化开发、提高效率。本系列文章将带你系统地学习MyBatis-Plus,而今天,作为开篇之作,我们将聚焦于打好基础——全面认识MP并搭建起我们的第一个MP应用。


第一阶段:基础认知与环境搭建

1.1 MyBatis-Plus核心定位与技术优势解析

什么是MyBatis-Plus?

MyBatis-Plus (简称MP) 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。它的slogan是“为简化而生”,这一点在它的功能设计中体现得淋漓尽致。

你可以把它想象成给MyBatis加装了一个“超级涡轮增压”。你原来在MyBatis中能做的一切,现在依然能做;而你原来觉得繁琐的事情,MP帮你一键搞定。

⚔️ MP vs MyBatis vs JPA
特性 MyBatis JPA (如Hibernate) MyBatis-Plus
定位 半自动ORM框架 全自动ORM框架 MyBatis的增强工具
SQL控制 需手动编写所有SQL,控制力强 自动生成SQL,对SQL干预能力弱 通用CRUD自动生成,复杂SQL可手写
开发效率 相对较低,有重复工作 极高,专注业务逻辑 极高,兼顾灵活性与效率
学习曲线 较平缓 较陡峭,概念多 非常平缓,开箱即用
侵入性 较低 较高,实体类需遵循JPA规范 无侵入性,仅增强Mapper
技术优势

MP的核心优势可以总结为以下几点:

  • 无侵入性:只做增强,完全兼容原生MyBatis的用法,项目迁移成本极低。
  • 强大的CRUD操作:内置通用Mapper和通用Service,只需简单配置,无需编写任何SQL即可实现单表的增、删、改、查,极大提升开发效率。
  • 内置代码生成器:提供强大的代码生成器(AutoGenerator),可以一键生成实体类、Mapper、Service、Controller等代码,让你从重复的劳动中解放出来。
  • 内置分页插件:基于MyBatis物理分页,无需关心具体数据库的分页语法,使用非常简单。
  • 条件构造器:提供强大的条件构造器(Wrapper),让你告别手写WHERE子句的烦恼,以面向对象的方式构建复杂的查询条件。
  • 主键自动生成:支持多种主键生成策略,如雪花算法(Snowflake)、UUID、自增等。
  • 性能分析插件:可以输出SQL分析,帮助你优化慢查询。
  • 支持多种数据库:完美支持MySQL、Oracle、SQL Server、PostgreSQL等主流数据库。

1.2 开发环境配置标准指南(JDK/Maven/IDE)

工欲善其事,必先利其器。一个稳定、标准的开发环境是高效学习和工作的前提。

1. JDK (Java Development Kit)

JDK是Java开发的核心。推荐使用长期支持(LTS)版本,如 JDK 8JDK 17

  • 安装: 前往 Oracle官网 或 AdoptOpenJDK 等镜像站下载对应操作系统的安装包进行安装。

  • 验证 : 安装完成后,打开命令行工具(CMD或Terminal),输入以下命令:

    java -version
    javac -version
    

    如果能正确显示版本号,则说明安装成功。✅

2. Maven

Maven是Java项目管理和构建的利器,我们用它来管理项目的依赖。

  • 安装: 前往 Maven官网 下载二进制包,解压到本地目录即可。

  • 配置: 配置 MAVEN_HOME环境变量,并将其 bin 目录添加到系统的 PATH

    变量中。可以修改conf/settings.xml文件配置国内镜像源(如阿里云)以加快依赖下载速度。

  • 验证: 打开新的命令行窗口,输入:

    mvn -v
    

    看到Maven版本信息即表示配置成功。✅

3. IDE (Integrated Development Environment)

一款优秀的IDE能极大提升我们的编码幸福感。强烈推荐使用 IntelliJ IDEA

  • 安装: 前往 JetBrains官网 下载社区版(免费)或旗舰版(付费)进行安装。

  • 配置: IDEA会自动识别已安装的JDK和Maven。你可以在

    File -> Settings -> Build, Execution, Deployment -> Build Tools -> Maven
    

    中检查并确认Maven的配置是否正确。


1.3 Spring Boot项目集成MyBatis-Plus全流程

现在,让我们进入实战环节,看看如何在一个全新的Spring Boot项目中集成MyBatis-Plus。

步骤1:创建Spring Boot项目

打开IntelliJ IDEA,选择 File -> New -> Project,使用 Spring Initializr 创建项目。

  • Project: Maven

  • Language: Java

  • Group: com.example

  • Artifact: mybatis-plus-demo

  • JDK: 选择你安装的JDK 17或8

  • Dependencies:

    • Spring Web: 用于构建Web应用,提供Controller。

    • MyBatis-Plus: 核心依赖。

    • MySQL Driver: 或者你使用的其他数据库驱动。

点击 “Create”,等待项目初始化完成。

步骤2:添加Maven依赖

Spring Initializr会自动在pom.xml中为我们添加好依赖。核心依赖如下:


    
        com.baomidou
        mybatis-plus-boot-starter
        3.5.7 

    
        org.springframework.boot
        spring-boot-starter-web
    

    
        com.mysql
        mysql-connector-j
        runtime
    

    
        org.projectlombok
        lombok
        true
    

    
        org.springframework.boot
        spring-boot-starter-test
        test
    

提示: Lombok可以通过注解(如@Data, @TableName)极大地简化JavaBean的编写,是MP的好搭档。

步骤3:配置Mapper扫描

在Spring Boot的启动类上,添加 @MapperScan 注解,告诉MP去哪里扫描我们的Mapper接口。

// MybatisPlusDemoApplication.java
package com.example.mybatisplusdemo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.example.mybatisplusdemo.mapper") // 扫描Mapper接口所在的包
public class MybatisPlusDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(MybatisPlusDemoApplication.class, args);
        System.out.println(" 项目启动成功!");
    }

}
步骤4:创建实体类 (Entity)

我们创建一个User实体类,对应数据库中的user表。

// entity/User.java
package com.example.mybatisplusdemo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data // Lombok注解,自动生成getter/setter/toString等方法
@TableName("user") // 指定实体类对应的数据库表名
public class User {

    @TableId(type = IdType.AUTO) // 声明主键,并设置为主键自增
    private Long id;

    private String name;

    private Integer age;

    private String email;
}
步骤5:创建Mapper接口

创建UserMapper接口,它需要继承 BaseMapperBaseMapper 中已经包含了大量的通用CRUD方法。

// mapper/UserMapper.java
package com.example.mybatisplusdemo.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.mybatisplusdemo.entity.User;
import org.springframework.stereotype.Repository;

@Repository // 建议加上此注解,交由Spring管理
public interface UserMapper extends BaseMapper {
    // 继承了BaseMapper后,就拥有了基本的CRUD能力
    // 如果有特殊的SQL需求,可以在这里自定义方法并编写XML
}

就这样,一个功能完备的DAO层就创建好了,是不是超级简单!


1.4 数据库连接池与数据源配置实战

最后一步,我们需要告诉Spring Boot如何连接到我们的数据库。这通常在application.ymlapplication.properties文件中配置。推荐使用.yml格式,因为它的层级结构更清晰。

配置文件 application.yml

src/main/resources目录下,创建或修改application.yml文件。

# application.yml
spring:
  datasource:
    # 默认使用 HikariCP 连接池,无需额外配置
    type: com.zaxxer.hikari.HikariDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    # 请修改为你的数据库地址、用户名和密码
    url: jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: your_username
    password: your_password
    hikari:
      # 连接池额外配置
      connection-timeout: 30000 # 连接超时时间:30秒
      maximum-pool-size: 10      # 最大连接数
      minimum-idle: 5          # 最小空闲连接数
      idle-timeout: 600000     # 空闲连接存活时间:10分钟

mybatis-plus:
  # 配置MyBatis-Plus的日志,方便在控制台看到执行的SQL
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  # 配置Mapper.xml文件的位置 (如果有自定义SQL)
  mapper-locations: classpath:/mapper/*.xml
  # 配置实体类别名,方便在XML中使用
  type-aliases-package: com.example.mybatisplusdemo.entity

⚠️注意: Spring Boot 2.0及以上版本默认使用高性能的 HikariCP 数据库连接池。你看到的spring.datasource.hikari.*就是对它的配置。请务必将your_database, your_username, your_password替换成你自己的数据库信息。

测试验证

万事俱备,只欠东风。我们编写一个简单的单元测试来验证整个流程是否通畅。

src/test目录下,找到MybatisPlusDemoApplicationTests.java文件,编写测试代码:

// MybatisPlusDemoApplicationTests.java
package com.example.mybatisplusdemo;

import com.example.mybatisplusdemo.entity.User;
import com.example.mybatisplusdemo.mapper.UserMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

import static org.junit.jupiter.api.Assertions.assertNotNull;

@SpringBootTest
class MybatisPlusDemoApplicationTests {

    @Autowired
    private UserMapper userMapper;

    @Test
    void contextLoads() {
        assertNotNull(userMapper, "UserMapper is null!");
        System.out.println("UserMapper注入成功!✅");
    }

    @Test
    void testSelect() {
        System.out.println("----- 开始测试 selectList 方法 ------");
        // 调用BaseMapper中的方法,参数为null表示查询所有
        List userList = userMapper.selectList(null);
        // 断言查询结果不为空
        assertNotNull(userList);
        userList.forEach(System.out::println);
        System.out.println("----- 测试结束 ------");
    }

}

运行testSelect测试方法,如果你的数据库中有数据,控制台将会打印出用户信息以及MP执行的SQL语句。这标志着你的第一个MyBatis-Plus应用已经成功运行起来了!

总结

恭喜你!完成了MyBatis-Plus学习的第一步。回顾一下,今天我们一起学习了:

  1. MP的核心定位:它是MyBatis的增强工具,旨在简化开发,提高效率,且无侵入性。

  2. 环境搭建:标准化了JDK、Maven、IDE的配置流程,为后续开发打下坚实基础。

  3. Spring Boot集成:我们从零开始,一步步在Spring Boot项目中集成了MyBatis-Plus,包括添加依赖、配置扫描、创建实体和Mapper。

  4. 数据源配置 :学习了如何在application.yml中配置数据库连接信息和连接池参数。

通过今天的学习,你不仅掌握了理论知识,更重要的是亲手搭建并验证了一个可运行的MP项目。这为你后续深入学习条件构造器、代码生成器、分页插件等高级功能铺平了道路。希望这篇文章能让你感受到MyBatis-Plus的魅力,告别繁琐,拥抱高效!继续关注本系列,我们下一章再见!

参考资料

  • MyBatis-Plus官方文档
  • Spring Boot官方文档
  • Maven官方网站
  • Lombok Project

如对本文内容有任何疑问、建议或意见,请联系作者,作者将尽力回复并改进;( 联系微信:Solitudemind )

点击下方名片,加入 IT 技术核心学习团队。一起探索科技的未来,共同成长。

为了让您拥有更好的交互体验,特将这行文字设置为可点击样式:点击下方名片,加入 IT
技术核心学习团队。一起探索科技的未来,共同成长。

你可能感兴趣的:(mybatis,mybatis-plus)