news 2026/8/29 3:22:52

MyBatis-Plus 快速入门与常用注解、配置总结(黑马springcloud微服务课程)(day1)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MyBatis-Plus 快速入门与常用注解、配置总结(黑马springcloud微服务课程)(day1)

MyBatis-Plus 快速入门与核心用法总结

📚 目录(点击跳转对应章节)

一、前言
二、环境准备
三、MyBatis-Plus 快速开始
四、MyBatis-Plus 核心原理
五、常用注解详解
六、MyBatis-Plus 常用配置
七、手写 SQL 支持
八、总结


一、前言

在日常开发中,单表 CRUD 是最常见、也是最重复的工作。

MyBatis 虽然灵活,但通常需要编写大量 Mapper XML 或注解 SQL,开发效率较低。

MyBatis-Plus(简称 MP)是在 MyBatis 基础上的增强框架,提供了通用 CRUD 能力,在不影响原有功能的前提下,大幅减少样板代码,提高开发效率。

本文将从以下几个方面对 MyBatis-Plus 的核心用法进行总结:

  • 环境准备
  • 快速入门
  • 核心原理
  • 常用注解
  • 常用配置
  • 手写 SQL 支持

二、环境准备

数据源配置

application.yaml中配置数据库连接信息:

spring:datasource:url:jdbc:mysql://127.0.0.1:3306/mp?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghaidriver-class-name:com.mysql.cj.jdbc.Driverusername:rootpassword:MySQL123logging:level:com.itheima:debugpattern:dateformat:HH:mm:ss

三、MyBatis-Plus 快速开始

1. 引入依赖

MyBatis-Plus 提供了官方 Starter,已集成 MyBatis 自动装配功能,可直接替换 MyBatis Starter。

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version></dependency>

完整依赖示例如下:

<dependencies><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>

2. 定义 Mapper

MyBatis-Plus 提供了通用接口BaseMapper<T>,内置了常见的单表 CRUD 方法。

自定义 Mapper 只需继承BaseMapper

packagecom.itheima.mp.mapper;importcom.baomidou.mybatisplus.core.mapper.BaseMapper;importcom.itheima.mp.domain.po.User;publicinterfaceUserMapperextendsBaseMapper<User>{}

无需编写 XML 或 SQL,即可直接使用通用 CRUD 方法。


3. CRUD 操作说明

MyBatis-Plus 提供的常用 CRUD 方法包括:

  • insert:插入数据
  • selectById:根据 ID 查询
  • selectBatchIds:批量查询
  • updateById:根据 ID 更新
  • deleteById:根据 ID 删除

上述方法均由 MyBatis-Plus 自动实现,可直接调用,显著减少 XML 编写。


四、MyBatis-Plus 核心原理

MyBatis-Plus 通过实体类(PO)推断数据库表结构,默认遵循以下约定:

  • 实体类名(驼峰)映射为表名(下划线)
  • 实体属性名(驼峰)映射为字段名(下划线)
  • 名为id的属性默认作为主键

在实际项目中,若数据库设计不完全符合约定规则,可通过注解进行精确映射。


五、常用注解详解

1. @TableName

作用:指定实体类对应的数据库表名
使用位置:实体类

@TableName("user")publicclassUser{privateLongid;}

常用属性:

  • value:表名
  • schema:数据库 schema
  • autoResultMap:是否自动构建 ResultMap
  • excludeProperty:排除字段

2. @TableId

作用:指定主键字段
使用位置:实体类主键属性

@TableId(type=IdType.AUTO)privateLongid;

常见主键策略:

  • AUTO:数据库自增
  • INPUT:手动设置
  • ASSIGN_ID:雪花算法生成 Long 类型主键(默认)

3. @TableField

作用:声明普通字段映射关系

常见使用场景:

  • 属性名与字段名不一致
  • isXXX命名的布尔字段
  • 字段名是数据库关键字
  • 实体中存在非表字段

示例:

@TableField("is_married")privateBooleanmarried;@TableField(exist=false)privateStringextraInfo;

六、MyBatis-Plus 常用配置

1. 全局配置

mybatis-plus:type-aliases-package:com.itheima.mp.domain.poglobal-config:db-config:id-type:auto

配置说明:

  • type-aliases-package:实体类别名扫描路径
  • id-type:全局主键策略

2. Mapper XML 扫描路径

MyBatis-Plus 支持手写 SQL,默认 XML 扫描路径如下:

mybatis-plus:mapper-locations:classpath*:/mapper/**/*.xml

七、手写 SQL 支持

mapper目录下创建UserMapper.xml

<mappernamespace="com.itheima.mp.mapper.UserMapper"><selectid="queryById"resultType="User">SELECT * FROM user WHERE id = #{id}</select></mapper>

UserMapper接口中声明对应方法,即可与 MyBatis-Plus 自动 CRUD 方法混合使用。


八、总结

MyBatis-Plus 在不破坏 MyBatis 原有特性的前提下,提供了高效、简洁的单表操作能力,包括:

  • 通用 CRUD 自动实现
  • 灵活的注解配置
  • 合理的默认约定
  • 对 XML 与手写 SQL 的完全兼容

在实际开发中,大多数单表操作可以直接通过 MyBatis-Plus 完成,能够显著减少重复代码,提高整体开发效率。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/26 8:30:05

高速信号EMI抑制:AD画PCB布局布线关键点

以下是对您提供的博文《高速信号EMI抑制&#xff1a;Altium Designer中PCB布局布线的关键技术分析》的 深度润色与专业重构版本 。本次优化严格遵循您的全部要求&#xff1a; ✅ 彻底去除AI痕迹&#xff0c;语言更贴近资深硬件工程师的实战口吻 ✅ 摒弃模板化标题&#xff…

作者头像 李华
网站建设 2026/8/19 14:19:23

如何突破NCM格式限制?解锁音乐自由播放的3个实用技巧

如何突破NCM格式限制&#xff1f;解锁音乐自由播放的3个实用技巧 【免费下载链接】ncmdump 转换网易云音乐 ncm 到 mp3 / flac. Convert Netease Cloud Music ncm files to mp3/flac files. 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdump 问题&#xff1a;当你下…

作者头像 李华
网站建设 2026/8/23 13:58:47

企业微信智能签到工具:技术实现与合规指南

企业微信智能签到工具&#xff1a;技术实现与合规指南 【免费下载链接】AutoDingding 钉钉自动打卡 项目地址: https://gitcode.com/gh_mirrors/au/AutoDingding 企业微信签到是现代办公场景中的重要环节&#xff0c;但传统手动签到方式存在效率低下、位置限制等问题。本…

作者头像 李华
网站建设 2026/8/29 0:59:08

焕新经典游戏网络:IPXWrapper重连Windows 11局域网对战体验

焕新经典游戏网络&#xff1a;IPXWrapper重连Windows 11局域网对战体验 【免费下载链接】ipxwrapper 项目地址: https://gitcode.com/gh_mirrors/ip/ipxwrapper 你是否也曾因系统升级失去联机乐趣&#xff1f;当Windows 11彻底移除IPX/SPX协议支持&#xff0c;《暗黑破…

作者头像 李华
网站建设 2026/8/19 15:06:26

Openpose预处理器参数缺失故障排查与解决方案

Openpose预处理器参数缺失故障排查与解决方案 【免费下载链接】comfyui_controlnet_aux 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux 故障现象 在ComfyUI ControlNet Aux项目中执行Openpose预处理器时&#xff0c;系统抛出参数缺失错误&…

作者头像 李华
网站建设 2026/8/26 5:18:49

Qwen3-1.7B显存不足怎么办?量化压缩+低资源运行技巧详解

Qwen3-1.7B显存不足怎么办&#xff1f;量化压缩低资源运行技巧详解 1. 为什么Qwen3-1.7B在普通GPU上容易“卡住” 你刚下载好Qwen3-1.7B&#xff0c;满怀期待地想在自己的RTX 4060&#xff08;8GB显存&#xff09;或A10&#xff08;24GB&#xff09;上跑起来&#xff0c;结果…

作者头像 李华