96SEO 2026-06-16 03:32 16
MyBatis‑Plus 学习笔记,聊聊我的那些疑惑
说实话,刚接触 MP 的时候,我真是懵逼。
哈哈,一打开官方文档,我的脑子像被七彩灯泡闪了一下。

别kan它标榜“约定大于配置”,其实背后暗藏的坑还是挺多的。
咱就是说这玩意儿到底是怎么帮我们省事的呢?
先从Zui基础的依赖说起吧。
在 Spring Boot 项目里只要加上 mybatis-plus-boot-starter,其他的东西基本douNeng自动装配。
不对不对,应该是 “只要加上 starter,别的东西基本douNeng自动装配”。
那好,依赖搞定了我们来kankan实体类该怎么写。
@TableName 用来映射表名。
@TableId 表示主键使用雪花算法生成。
@TableField 对应列名。
还有个小技巧:Ru果字段和列名完全一致,Ke以省略 @TableField。
这个时候我常常会想:“那我是不是Ke以直接把 Lombok 搞进来?”
答案是肯定的,@Data、@Builder 搞定后代码geng简洁。
不过啊,用 Lombok 要注意 IDE 的插件,否则会报错kan不到属性。
Mapper 接口到底该怎么写?Mappers Zui常见的Zuo法是让它们继承 BaseMapper
比如说 UserMapper extends BaseMapper
这样一来就拥有了 insert、delete、update、select 等一堆方法。
可是有时候我们需要自定义 SQL,这时就得在 Mapper 接口里加 @Select、@Update 注解了。
比如:
@Update
void deductBalance Long id, @Param Integer amount);
条件构造器真的好用吗?
先说说 QueryWrapper 吧,玩儿起来hen像拼乐高。
wrapper.eq.like……层层叠加,非常灵活。
LambdaQueryWrapper geng加类型安全,用法类似:
wrapper.eq
.like;
但是有一点容易踩雷:Ru果你忘记调用 select 指定列,默认会查询全部字段,这在大表上可Neng导致性Neng问题。
SERVICE 层:到底要不要自己写?IService 提供了 CRUD 基础实现,我一般直接继承 ServiceImpl 就行了。
public class UserServiceImpl extends ServiceImpl implements IUserService { }
不过当业务变得复杂时你会发现自己得在 Service 里写点业务代码,比如事务控制、缓存处理之类的。
# 实际项目中常见的几个疑问 # 分页查询怎么写才算 SEO 优化友好?IPage
IPage
P.S. 别忘了在 Controller 上加 @GetMapping ,这样搜索引擎才Neng抓到路径哦!
# 为什么百度不收录我的接口文档? #问:我把接口文档放在 /doc/html 下但百度搜索根本找不到它们,是不是哪里配置错了?
A:主要原因有三点:
页面没有 meta robots=“index” 或者被 robots.txt 禁止爬取;
Sitemap 没有把 /doc/html 加进去;
PWA 或 SPA 页面渲染依赖 JS,而百度爬虫对 JS 支持有限。
解决办法就是检查 robots.txt、添加 sitemap 条目,并且提供一个纯 HTML 的静态备份。懂得dou懂啦!
# 常见错误与自我纠正 ## 错误一:忘记在实体类上加 @TableName 。
# 正确Zuo法:一定要对应数据库表名,否则 MP 会默认驼峰转下划线去找表,结果找不到。
// 不对不对,是应该这么写:
@TableName
public class User { … }
MyBatis‑Plus 本身不提供自动关联功Neng,需要自行写 XML 或者使用 MyBatis 的 association/collection 标签。
或者干脆用 Spring Data JPA 那套,也行,只要你愿意折腾。
# 动态 SQL 小技巧 #当查询条件hen多时用 wrapper.when) Neng让代码geng干净。
*举例:
wrapper.when, w -> w.like)
.when);
# 性Neng调优的小细节 #
打开 mybatis-plus.global-config.db-config.logic-delete-value 和 logic-not-delete-value,让逻辑删除走索引而不是全表扫描。
开启 Mybatis‑Plus 的性Neng分析插件,Ke以在控制台kan到每条 SQL 执行时间,一旦超过阈值立马优化。
# 我到底还Neng提哪些疑问呢? #批量插入到底是调用 saveBatch 还是手动 foreach 插入好?
答:saveBatch Yi经内部Zuo了 JDBC 批处理,一般情况下够用了。不过Ru果你有特殊需求,还是得自己实现。
MP 自带代码生成器真的Neng省事吗?
答:Neng省事,但前提是你的库结构规范、命名统一,否则生成出来的代码可Neng还得手动改一通。
事务传播行为默认是什么?
答:默认是 PROPAGATION_REQUIRED,Ru果你在同一个 Service 方法里调用另一个带 @Transactional 的方法,它们会共享同一个事务。
# 小结——别让疑问卡住你 #MyBatis‑Plus 是个强大的工具,但它不是万Neng钥匙;真正解决业务问题,还得靠你对业务逻辑的深刻理解。
遇到坑别慌,先去官方 GitHub kan Issue,再去掘金、CSDN 搜索关键词——往往有人Yi经踩过同样的坑。
Zui重要的是多写、多调试、多回顾,你会发现 MP 的“约定”真的Neng让开发速度提升不少。
好了这篇随性又带点碎碎念的笔记就到这里啦——Ru果还有啥没说清楚的,欢迎留言讨论哈!哈哈~/
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback