MyBatis-Plus 中的 `extends BaseMapper<UserEntity>` 到底是什么意思?
MyBatis-Plus 中的extends BaseMapperUserEntity到底是什么意思在 MyBatis-Plus 项目中你几乎每个实体都会看到类似下面的代码MapperpublicinterfaceUserMapperextendsBaseMapperUserEntity{}很多人第一次看到都会懵这个extends BaseMapperUserEntity到底是什么鬼它帮我干了什么为什么我接口里什么方法都不写就能用selectById、insert、updateById这些方法这篇博客就来把这件事讲清楚尽量用最白话、最直白的语言不绕弯子。1. 先说结论一句话记住extends BaseMapperUserEntity的意思是“我这个 UserMapper 接口自动继承了 MyBatis-Plus 写好的一个万能父接口 BaseMapper它里面已经预定义了 20 个最常用的单表 CRUD 方法而且这些方法全部是针对 UserEntity 这张表的。”你什么都不用写就能直接用这些方法userMapper.selectById(1L)userMapper.insert(user)userMapper.updateById(user)userMapper.deleteById(1L)userMapper.selectList(...)……这就是 MyBatis-Plus 号称“单表 CRUD 无需写 SQL”的核心秘密。2. BaseMapper 到底是什么BaseMapperT是 MyBatis-Plus 提供的一个泛型接口位于包com.baomidou.mybatisplus.core.mapper.BaseMapper它里面定义了 20 个通用方法全部是针对泛型 T也就是你的实体类的。下面是 BaseMapper 里最常用的几个方法部分摘录publicinterfaceBaseMapperTextendsSerializable{// 插入intinsert(Tentity);// 根据 ID 删除intdeleteById(Serializableid);// 根据实体条件删除intdelete(WrapperTwrapper);// 根据 ID 修改只更新非 null 字段intupdateById(Tentity);// 根据条件修改intupdate(Tentity,WrapperTupdateWrapper);// 根据 ID 查询TselectById(Serializableid);// 根据条件查询一条记录TselectOne(WrapperTqueryWrapper);// 查询列表ListTselectList(WrapperTqueryWrapper);// 分页查询IPageTselectPage(IPageTpage,WrapperTqueryWrapper);// 统计数量LongselectCount(WrapperTqueryWrapper);// ... 还有更多比如 selectMaps、selectObjs 等}重点来了当你写extends BaseMapperUserEntity时MyBatis-Plus 会自动把上面这些方法“复制”到你的UserMapper接口里而且这些方法里面的 SQL 都是针对UserEntity这张表自动生成的。所以你才能在 Service 层直接写AutowiredprivateUserMapperuserMapper;publicUsergetUser(Longid){returnuserMapper.selectById(id);// 自动生成 select * from user where id ?}完全不用自己写任何Select、xml或 SQL。3. 它是怎么做到的原理简单版MyBatis-Plus 在项目启动时做了下面几件事扫描所有标注了Mapper的接口发现某个接口extends BaseMapperT通过反射拿到泛型 T这里是 UserEntity根据 UserEntity 的TableName、TableId等注解自动生成对应的 SQL 模板把这些方法动态注入到你的 Mapper 接口的代理对象里MyBatis 的 Mapper 都是动态代理最终效果就是你写了一个空接口但运行时它拥有了 20 个现成方法全是针对你这张表的。4. 为什么这么设计有什么好处好处说明极大减少重复代码以前每个表都要写一堆 selectById、insert、update 的 xml现在不用了统一规范所有表的 CRUD 操作都用同样的方法名代码风格一致开发效率翻倍新增一张表只需写实体类 Mapper 接口空着就行秒级完成 CRUD维护成本降低改表字段只要实体类改了BaseMapper 方法自动适配减少 SQL 错误不用手写 SQL自动生成字段名、表名出错的概率几乎为 05. 什么时候不能依赖 BaseMapperBaseMapper 虽然强大但只适合单表简单 CRUD。以下情况你还是得自己写 SQL 或扩展多表关联查询join复杂条件动态 where批量插入/更新虽然有 saveBatch但性能不如自定义特殊 SQL存储过程、复杂聚合性能极致优化需要索引提示、自定义 join这时候你可以publicinterfaceUserMapperextendsBaseMapperUserEntity{Select(SELECT u.*, d.dept_name FROM user u LEFT JOIN dept d ON u.dept_id d.id WHERE u.id #{id})UserVOselectUserWithDept(Param(id)Longid);}或者用 Wrapper 动态拼接QueryWrapperUserEntitywrappernewQueryWrapper();wrapper.eq(age,18).like(name,梦);ListUserEntitylistuserMapper.selectList(wrapper);6. 总结最核心的几句话extends BaseMapperUserEntity “免费获得 20 个针对 User 表的通用 CRUD 方法”这些方法由 MyBatis-Plus 在启动时自动注入到你的 Mapper 接口你接口可以是空的但运行时它会变得“很丰富”这是 MyBatis-Plus “单表 CRUD 无需写 SQL”的核心魔法适合 80% 的单表操作场景复杂查询再自己写现在你再看到别人项目里写extends BaseMapperUser就知道他们在偷懒但这是官方鼓励的偷懒了

相关新闻

AI短剧狂飙,谁先失业

AI短剧狂飙,谁先失业

技术服务于“爽点效率”,才会成为生产力。作者|王铁梅编辑|古廿Seedance 2.0引爆互联网半个月后,被称为短剧界“竖店”的郑州,气氛开始变化。往年春节档前后,是短剧公司最忙的时候。但今年,一批团队选择按下暂停键。“…

2026/7/5 9:29:14 阅读更多 →
节约安全成本:企业如何选择合适的事件日志管理(SIEM )解决方案?

节约安全成本:企业如何选择合适的事件日志管理(SIEM )解决方案?

在许多企业的日常运维中,安全团队经常面临这样的场景:日志每天在产生,却分散在服务器、网络设备和各类安全系统中;安全事件发生后,只能依赖人工逐条排查;审计时间临近时,才发现合规报告需要临时…

2026/7/7 10:38:41 阅读更多 →
为什么国内大厂纷纷”弃坑”MySQL,转投PostgreSQL阵营?

为什么国内大厂纷纷”弃坑”MySQL,转投PostgreSQL阵营?

作为一名经历过LAMP时代的老架构师,我想和大家聊聊这几年国内技术圈的一个有趣现象:曾经一统江湖的MySQL,正在悄悄被PostgreSQL”偷家”。一、现象:大厂们的集体”叛逃” 先来看一组数据。根据DB-Engines最新排名,Pos…

2026/7/6 1:22:03 阅读更多 →

最新新闻

听歌不想只发截图?用MusicCard把喜欢的歌做成专属音乐海报

听歌不想只发截图?用MusicCard把喜欢的歌做成专属音乐海报

文章目录1.在极空间一键部署Music Card1.1ssh远程连接到极空间1.2安装docker1.3安装Music Card2.安装cpolar实现随时随地开发3.配置公网地址4.保留固定公网地址总结有些歌适合单曲循环,也适合被认真分享。只是很多时候,我们想表达的不只是“我在听这首歌…

2026/7/7 12:03:16 阅读更多 →
网盘直链下载助手完整指南:告别限速,一键获取真实下载链接

网盘直链下载助手完整指南:告别限速,一键获取真实下载链接

网盘直链下载助手完整指南:告别限速,一键获取真实下载链接 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国…

2026/7/7 11:57:12 阅读更多 →
如何免费解锁WeMod专业版:3个关键步骤与安全指南

如何免费解锁WeMod专业版:3个关键步骤与安全指南

如何免费解锁WeMod专业版:3个关键步骤与安全指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 还在为WeMod专业版的高昂订阅费而烦恼吗&am…

2026/7/7 11:55:12 阅读更多 →
腾讯混元 Hy3 开源:多任务比肩大尺寸模型,多项指标显著优化

腾讯混元 Hy3 开源:多任务比肩大尺寸模型,多项指标显著优化

【导语:继 4 月底发布 Hy3 preview 后,腾讯混元 Hy3 现已开源,在推理、智能体、长上下文等任务上显著进步,多项指标优化明显,成为高性价比可靠选择。】混元 Hy3 开源:多维度升级亮点足 腾讯混元 Hy3 在发布…

2026/7/7 11:53:12 阅读更多 →
DAB单移相控制、双有源桥DCDC变换器(电压闭环)仿真(附参考文献)

DAB单移相控制、双有源桥DCDC变换器(电压闭环)仿真(附参考文献)

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、算法改进、程序设计科研仿真。🍎完整代码获取 定制创新 论文复现私信🍊个人信条:做科研,博学之、审问之、慎思之、明辨之、…

2026/7/7 11:53:12 阅读更多 →
Paperxie 毕业论文智能写作功能|一站式搞定本科硕博论文,告别熬夜凑稿难题

Paperxie 毕业论文智能写作功能|一站式搞定本科硕博论文,告别熬夜凑稿难题

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/科研绘图毕业论文 - PaperXie智能写作PaperXieAi论文智能生成软件,10分钟生成万字毕业论文、期刊论文、文献综述、PPT,Aigc查重、降重报告、文献资料。只需一个标题,从开…

2026/7/7 11:49:11 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻