【然然管理系统】基于 SpringBoot+MyBatisPlus+Freemarker 实现代码生成功能(上)

然然管理系统仓库地址,欢迎移步仓库点个小星星
https://gitee.com/OceanCore/ranran.git
https://github.com/qiaoting/ranran.git

一、前言

在后台管理系统开发中,CRUD 代码的编写占据了大量重复工作 —— 每个业务表都要写 Entity、Mapper、Service、Controller,不仅效率低,还容易出现格式不统一的问题。为此,然然管理系统新增了自动化代码生成功能,基于 SpringBoot+MyBatis+Freemarker 技术栈,实现 “数据库表→Java 业务代码” 的一键生成,本文先从整体设计和核心模块入手,讲解功能的实现思路。

系统截图:

二、功能设计

本代码生成功能的核心目标是:前端展示数据库表列表 → 选择表并传入基础配置 → 后端生成 Entity、Mapper、Service、Controller 代码 → 前端展示生成结果。整体流程如下:

前端请求表列表 → 后端查询information_schema获取表信息 → 前端提交表名/作者/模块名等配置 → 后端查询表字段 → 字段类型映射 → Freemarker渲染模板 → 返回生成的代码字符串 → 前端展示

三、技术环境

  • 基础框架:SpringBoot
  • 数据持久层:MyBatis(XML + 接口)
  • 模板引擎:Freemarker(代码模板渲染)
  • 辅助工具:Lombok(简化实体类)、自定义工具类(表名转类名、类型映射)

四、模块拆解

1. 数据层:查询数据库表与字段

核心是通过information_schema系统库查询表和字段信息,这是跨数据库(MySQL)通用的方式:

  • 表查询(GeneratorTableMapper):查询指定数据库下的所有表名、引擎、表注释。
  • 字段查询(GeneratorTableFieldMapper):查询指定表的字段名、类型、注释、主键、可空性等。

关键 Mapper XML 示例(字段查询):

<select id="selectAllField" parameterType="String" resultType="GeneratorTableField"> select column_name as columnname, data_type as columntype, column_comment as remarks, case when is_nullable = 'yes' then 1 else 0 end as isnullable, case when column_key = 'pri' then 1 else 0 end as isprimarykey from information_schema.columns where table_schema = (select database()) and table_name = #{tableName} order by ordinal_position </select>

2. 服务层:业务逻辑处理

服务层分为 3 个核心类,职责单一:

  • GeneratorTableService:封装表列表查询逻辑,对外提供getAllTable方法。
  • GeneratorTableFieldService:核心是字段类型映射(数据库类型→Java 类型),比如varcharStringdatetimeLocalDateTime
  • GeneratorService:整合表字段信息,通过 Freemarker 渲染模板,生成各类代码文件。

3. 工具类:通用能力封装

  • TableUtil:实现 “下划线表名→驼峰类名” 转换,支持移除指定前缀(比如t_sys_)。
  • GenerateUtil:组装代码生成所需的类信息(模块名、基础包名、类名等),补充到ClassInfoDto中。

4. 控制层:接口暴露

GeneratorController提供两个核心接口:

  • GET /api/generator/listTable:查询数据库表列表,支持指定数据库名。
  • POST /api/generator/getCode:接收表名、作者、模块名等配置,返回生成的代码 Map(key 为文件名,value 为代码字符串)。

五、功能演示(接口层面)

查询表列表:

GET /api/generator/listTable?dbName=ranran_db

返回结果包含表名、表注释、引擎等信息,前端可渲染为下拉列表 / 表格。

生成代码:

POST /api/generator/getCode { "tableName": "sys_user", "moduleName": "system", "functionName": "用户管理", "author": "ranran" }

返回结果为 Map,示例:

{ "entity.java": "package com.ranran.system.entity;...", "mapper.java": "package com.ranran.system.mapper;...", "service.java": "package com.ranran.system.service;...", "controller.java": "package com.ranran.system.controller;..." }

六、总结

本文从整体视角拆解了然然管理系统代码生成功能的核心设计与模块划分,下一篇将深入讲解字段类型映射、Freemarker 模板渲染、表名转换等核心细节,以及功能的扩展与优化思路。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1149132.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分类模型压缩终极方案:云端量化蒸馏全流程

分类模型压缩终极方案&#xff1a;云端量化蒸馏全流程 引言 当你开发一个移动端APP时&#xff0c;是否遇到过这样的困境&#xff1a;需要集成一个图像分类功能&#xff0c;但模型体积太大&#xff0c;动辄几百MB&#xff0c;严重影响用户体验&#xff1f;或者尝试在本地训练轻…

【Java毕设源码分享】基于springboot+vue的高中学生素质评价档案系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

MiDaS模型性能优化:推理速度与精度平衡

MiDaS模型性能优化&#xff1a;推理速度与精度平衡 1. 引言&#xff1a;AI 单目深度估计的工程挑战 在计算机视觉领域&#xff0c;单目深度估计&#xff08;Monocular Depth Estimation&#xff09;是一项极具挑战性的任务——仅通过一张2D图像推断出场景中每个像素的相对距离…

MiDaS模型详解:轻量高效的秘密

MiDaS模型详解&#xff1a;轻量高效的秘密 1. 技术背景与问题提出 在计算机视觉领域&#xff0c;深度估计是实现3D空间感知的关键技术之一。传统方法依赖双目立体视觉或多传感器融合&#xff08;如LiDAR&#xff09;&#xff0c;但这些方案成本高、部署复杂&#xff0c;难以在…

如何让AI看懂产线缺陷?Qwen3-VL-WEBUI落地实践全解析

如何让AI看懂产线缺陷&#xff1f;Qwen3-VL-WEBUI落地实践全解析 在一条高速运转的SMT贴片生产线上&#xff0c;一块刚完成回流焊的PCB板被自动传送至视觉检测工位。摄像头瞬间抓拍高清图像——画面中某处焊点隐约泛着不规则的银光。传统算法或许只能标记“异常区域”&#xf…

支持实时语义分析的中文NER工具|Cyberpunk风格WebUI体验

支持实时语义分析的中文NER工具&#xff5c;Cyberpunk风格WebUI体验 1. 项目背景与技术价值 在信息爆炸的时代&#xff0c;非结构化文本数据如新闻、社交媒体内容、企业文档等呈指数级增长。如何从这些海量文本中快速提取关键信息&#xff0c;成为自然语言处理&#xff08;NL…

无需编码!用AI 智能实体侦测服务快速实现文本信息抽取

无需编码&#xff01;用AI 智能实体侦测服务快速实现文本信息抽取 在当今信息爆炸的时代&#xff0c;非结构化文本数据&#xff08;如新闻、报告、社交媒体内容&#xff09;占据了企业数据总量的80%以上。如何从这些杂乱无章的文字中自动提取出关键信息——比如人名、地名、机…

【Java毕设源码分享】基于springboot+vue的公司人事管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

单目深度估计进阶:MiDaS高级应用指南

单目深度估计进阶&#xff1a;MiDaS高级应用指南 1. 引言&#xff1a;从2D图像到3D空间感知的跃迁 在计算机视觉领域&#xff0c;单目深度估计&#xff08;Monocular Depth Estimation&#xff09;是一项极具挑战性但又极具实用价值的技术。传统方法依赖双目立体匹配或多帧运…

一键启动Qwen3-VL-4B-Instruct|WEBUI镜像让多模态模型开箱即用

一键启动Qwen3-VL-4B-Instruct&#xff5c;WEBUI镜像让多模态模型开箱即用 在多模态大模型快速演进的今天&#xff0c;如何将强大的视觉语言能力高效落地到实际应用中&#xff0c;已成为开发者和企业关注的核心问题。部署复杂、依赖繁多、环境配置门槛高&#xff0c;常常成为技…

基于MiDaS的深度感知:快速部署与使用

基于MiDaS的深度感知&#xff1a;快速部署与使用 1. 引言&#xff1a;AI 单目深度估计的现实意义 在计算机视觉领域&#xff0c;从单张2D图像中恢复3D空间结构一直是极具挑战性的任务。传统方法依赖多视角几何或激光雷达等硬件设备&#xff0c;成本高且部署复杂。近年来&…

基于UDS协议的Bootloader定制之旅

基于UDS协议的Bootloader定制 采用autosar架构的标准&#xff0c;DCM集成uds协议&#xff0c;可定制nxpS32K&#xff0c;tc275&#xff0c;tc1782&#xff0c;NXP5746,NXP5748系列等在汽车电子开发领域&#xff0c;基于UDS&#xff08;Unified Diagnostic Services&#xff09;…

简单理解:STM32 互补 PWM 死区时间,档位设计 + 原理 + 实操全解析

一、 死区档位 “多高 3 位值” 的设计本质DT 寄存器是 8 位&#xff08;bit0~bit7&#xff09;&#xff0c;被拆为 高 3 位&#xff08;档位位&#xff09; 低 5 位&#xff08;微调位&#xff09;&#xff0c;一个档位对应多个高 3 位值的核心目的是&#xff1a;在有限的 8 位…

Rembg模型架构深度解析:U2NET原理

Rembg模型架构深度解析&#xff1a;U2NET原理 1. 智能万能抠图 - Rembg 在图像处理与内容创作领域&#xff0c;自动去背景是一项高频且关键的需求。无论是电商商品图精修、社交媒体内容制作&#xff0c;还是AI艺术生成前的素材准备&#xff0c;精准、高效的背景移除技术都至关…

从零开始使用MiDaS:深度估计实战指南

从零开始使用MiDaS&#xff1a;深度估计实战指南 1. 引言&#xff1a;走进单目深度估计的世界 在计算机视觉领域&#xff0c;三维空间感知一直是实现智能交互、机器人导航和增强现实&#xff08;AR&#xff09;的核心能力。然而&#xff0c;传统深度感知依赖双目摄像头或多传…

单目深度估计MiDaS:安防监控场景实践案例

单目深度估计MiDaS&#xff1a;安防监控场景实践案例 1. 引言&#xff1a;AI单目深度估计在安防中的价值 随着智能安防系统的不断演进&#xff0c;传统的2D视频监控已难以满足对空间感知和行为理解的高阶需求。如何让摄像头“看懂”三维世界&#xff0c;成为提升异常检测、入…

MiDaS部署技巧:如何优化CPU环境下的推理速度

MiDaS部署技巧&#xff1a;如何优化CPU环境下的推理速度 1. 引言&#xff1a;AI 单目深度估计 - MiDaS 在计算机视觉领域&#xff0c;单目深度估计&#xff08;Monocular Depth Estimation&#xff09;是一项极具挑战性但又极具应用价值的技术。它允许AI仅通过一张2D图像推断…

从零部署Qwen2.5-7B:vLLM推理加速与Gradio界面集成

从零部署Qwen2.5-7B&#xff1a;vLLM推理加速与Gradio界面集成 1. 引言 随着大语言模型&#xff08;LLM&#xff09;在自然语言处理领域的广泛应用&#xff0c;如何高效部署并快速构建交互式应用成为开发者关注的核心问题。阿里云推出的 Qwen2.5-7B 是当前极具竞争力的开源大…

Rembg抠图API监控:实时性能仪表盘

Rembg抠图API监控&#xff1a;实时性能仪表盘 1. 智能万能抠图 - Rembg 在图像处理与内容创作领域&#xff0c;自动去背景技术已成为提升效率的关键工具。无论是电商商品图精修、社交媒体素材制作&#xff0c;还是AI生成内容&#xff08;AIGC&#xff09;的预处理环节&#x…

MiDaS实战:工业检测深度估计案例

MiDaS实战&#xff1a;工业检测深度估计案例 1. 引言&#xff1a;AI 单目深度估计在工业场景中的价值 随着智能制造和自动化检测的快速发展&#xff0c;传统2D视觉系统在复杂环境下的局限性日益凸显。尤其是在缺陷检测、物料定位、空间避障等任务中&#xff0c;仅依赖颜色和轮…