知用堂
第二套高阶模板 · 更大气的阅读体验

当程序员的“家务活”遇上ORM代码生成

发布时间:2025-12-21 22:20:57 阅读:378 次

每天下班回家,做饭、洗碗、拖地,这些家务事已经够烦了。可对ref="/tag/46/" style="color:#479099;font-weight:bold;">程序员老张来说,最头疼的不是加班,而是重复写那些数据库操作的代码。就像每天刷锅洗碗,动作一样,枯燥得让人走神。

重复造轮子,不如让工具动手

老张做的是后台系统,每个新模块都要建表、写实体类、写增删改查接口。光是User表相关的代码,他已经写了不下十遍。字段一多,手一抖就漏了个逗号,调试半小时才发现问题出在生成SQL时字段名拼错了。

后来同事推荐他试试ORM框架的代码生成工具。比如用MyBatis-Plus搭配一个代码生成器,配置好数据库连接,选中user表,点一下,实体类、Mapper、Service、Controller全出来了。连常用的分页查询都写好了,就像厨房装了洗碗机,按下按钮,剩下的交给机器。

省下的时间去跑步,不香吗?

以前老张周末总得抽半天补工作进度,现在需求来了,数据表一设计完,代码生成脚本跑一遍,基础结构就有了。剩下的时间,他能专心优化业务逻辑,甚至下午五点半准时关电脑,去楼下跑个五公里。

他现在用的生成器还能自定义模板。比如公司规定Controller返回格式要统一,他就把模板改了一下,所有生成的接口自动套上标准响应包装。就像定制了一套餐具,每顿饭摆出来都整齐划一。

举个实际例子

这是他常用的代码生成片段:

AutoGenerator generator = new AutoGenerator();

DataSourceConfig dsConfig = new DataSourceConfig();
dsConfig.setUrl("jdbc:mysql://localhost:3306/health_db");
dsConfig.setDriverName("com.mysql.cj.jdbc.Driver");
dsConfig.setUsername("root");
dsConfig.setPassword("123456");

generator.setDataSource(dsConfig);
PackageConfig pkgConfig = new PackageConfig();
pkgConfig.setParent("com.zhiyongtang.health");
generator.setPackageInfo(pkgConfig);

generator.execute();

运行完,entity、mapper、service目录下全齐了。字段名自动转驼峰,注解也加上了。连Swagger的@ApiModel都生成好了,省得手动补文档。

工具不是万能的,复杂查询还得自己写。但至少那些机械劳动的部分,能少碰就少碰。身体坐久了,颈椎不舒服,代码写多了,脑子也容易僵。让工具多干点,自己才能活得轻松点。