智契通项目开发周记(第二周):数据库建模与代码生成器集成

张开发
2026/4/18 11:23:32 15 分钟阅读

分享文章

智契通项目开发周记(第二周):数据库建模与代码生成器集成
一、 本周工作概述如果说第一周是绘制蓝图那么第二周就是正式“打桩”。本周的核心任务是从架构设计走向具体的数据模型落地。基于《智契通项目总体架构设计》文档中的核心能力我重点完成了以下工作数据库建模根据业务需求设计了用户、合同核心、模板管理等关键数据表结构。工程化落地利用MyBatis-Plus代码生成器Code Generator一键生成了Entity、Mapper、Service、Controller层的基础代码。基础验证通过Knife4j接口文档对生成的代码进行了初步的连通性测试。二、 数据库设计业务逻辑的物理落地在架构设计阶段我们规划了contract-core合同核心数据和contract-user用户权限模块。本周我将这些逻辑模型转化为物理模型MySQL 8.0。1. 核心表设计思路用户表 (user)存储系统用户信息包含用户名、加密密码、角色标识RBAC基础。合同主表 (contract_info)这是系统的核心。字段考量除了基础的title标题、status状态外重点设计了content合同原文和structured_data结构化JSON。考虑到合同文本可能较长content字段设计为LONGTEXT类型。版本控制预留了parent_id父版本ID字段为后续实现“多版本对比与历史追溯”模块做铺垫。模板表 (contract_template)存储预置的劳动合同、租赁合同等模板。设计了category分类和variables变量字段JSON以支持动态填充。2. 设计规范严格遵循阿里Java开发手册规范表名使用小写和下划线。所有表均包含create_time和update_time字段满足审计日志需求。三、 代码生成器集成为了避免繁琐的手动编写Setter/Getter和基础SQL我利用Spring Boot生态中强大的MyBatis-Plus代码生成器进行了自动化开发。1. 配置策略编写了CodeGenerator类配置了以下策略数据源指向本地MySQL数据库。全局策略开启Swagger2注解支持配合Knife4j开启Lombok模型减少模板代码。包策略自动将代码生成到com.zhiqitong.contract-core模块下。2. 生成效果运行生成器后针对contract_info表自动生成了以下文件ContractInfo.java(Entity)包含Swagger字段说明注解。ContractInfoMapper.javaxml包含基础的CRUD方法。ContractInfoService.javaImpl业务逻辑接口与实现。ContractInfoController.javaRESTful风格的API接口。3. 技术价值这一步虽然看似只是“工具使用”但实际上确立了团队的代码规范。所有团队成员后续生成的代码都将遵循相同的风格如统一的异常处理封装、统一的响应格式BaseResponse极大地降低了代码Review的成本。四、 前端基础页面搭建在后端代码生成后前端也同步进行了基础页面的搭建以验证接口连通性。页面结构基于第一周的BasicLayout创建了ContractList.vue页面。API对接利用api目录下的自动生成脚本或手动编写简易调用测试了GET /contract/list接口。组件化使用Element Plus的el-table组件渲染合同列表目前虽无复杂样式但已跑通了从数据库到页面的完整链路。

更多文章