裸辞半年后,我在城中村出租屋里重新捡起了MyBatis

算法Web
2026-08-11 17:55
阅读 328

广州的八月热得离谱,月租1800的单间里,我盯着猎聘的已读不回,心里凉了半截。三个月前还在珠江新城敲代码,现在连面试都约不到。

从“造火箭”到“拧螺丝”

我前两年折腾Node.js、爬虫和区块链,简历花里胡哨。结果去科韵路面试,技术总监一句“你熟悉MyBatis吗”直接把我问懵。过去太依赖ORM框架,连手写JOIN都快忘了。整天研究共识算法,觉得CRUD低端,结果连螺丝刀都拿不稳。

城中村的深夜补习

面试完那晚,我翻出泛黄的《MyBatis从入门到精通》。看到“#{ }和${ }的区别”,才明白基础不牢,谈何架构。从那天起,我每天早起重建项目。MyBatis核心就两步:mybatis-config.xml配置环境,mapper.xml写SQL映射。真正头疼的是动态SQL,用<if><where><foreach>标签拼接条件。第一晚调试多条件查询,卡了三小时,只因<if test="name != null">里引号写错。凌晨一点,我对着屏幕骂了句“扑街”。

那些年我踩过的坑

重新学MyBatis,我最大的感悟是:基础知识不扎实,迟早要还债

第一,别迷信ORM自动生成。 之前用Sequelize,一条User.findAll()完事。但在MyBatis里,必须清楚写每条SQL。这恰是性能优化关键——重构联表查询时,我手动写JOIN解决N+1问题,查询从3秒降到200毫秒。

第二,SQL注入不是闹着玩的。 能用#{}就别用${},除非动态表名或ORDER BY字段。我曾用${orderBy}导致安全通报,社死一整天。

第三,爬虫思维与持久层设计相通。 爬虫解析网页,MyBatis映射表结构,本质都是格式转换。写XPath积累的经验,在写resultMap处理层级关系时全用上了。

写在最后

今天刚收到二面通知,薪资开到15k,比之前少三分之一,但我决定去。这半年Gap让我明白:技术圈再卷,基本功永远是底气。底层的数据结构、网络协议、数据库原理,才真正值钱。别急着追风口,先把眼前代码写好。就像广州老城区的骑楼,一百年了还稳稳当当。

评论 0

最热最新
暂无评论
算法WebLv.1
0
影响力
0
文章
0
粉丝