# springboot-generator **Repository Path**: lanping520/springboot-generator ## Basic Information - **Project Name**: springboot-generator - **Description**: Springboot项目代码生成器,根据Springboot项目模板生成完整可运行代码程序。 根据数据库表可以生成Springboot+MybatisPlus完整项目,支持Mysql、DB2、SQLServer数据库。利用maven构建多模块项目,生成包括Controller,Service,ServiceImpl,Mapper,Mapper xml代码文件,相关公共基础模块和配置文件等。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-11-23 - **Last Updated**: 2025-09-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Springboot项目代码生成器 ## 概述 这是一个基于Spring Boot的代码生成器项目,旨在帮助开发者快速生成常见的业务代码结构。该项目支持多种数据库类型(如MySQL、SQL Server、DB2),并提供丰富的模板来生成实体类、Mapper、Service、Controller等代码文件。 - 根据Springboot项目模板生成完整可运行代码程序。 - 根据数据库表可以生成Springboot+MybatisPlus完整项目,支持Mysql、DB2、SQLServer数据库。 - 利用maven构建多模块项目,生成包括Controller,Service,ServiceImpl,Mapper,Mapper xml代码文件, 相关公共基础模块和配置文件等。 ## 示例 代码生成器可以根据数据库表结构自动生成以下内容: - 实体类(Entity) - 数据传输对象(DTO) - 数据访问层(Mapper) - 服务层(Service) - 控制层(Controller) - 前端页面(Thymeleaf模板) 请看示例 GeneratorExample类 ```java package cn.lan.generator; import cn.lan.generator.bean.Connector; import cn.lan.generator.bean.ProjInfo; import cn.lan.generator.factory.ProjectManagerFactory; import cn.lan.generator.manager.AbstractProjectManager; import cn.lan.generator.utils.Constant; /** * @author lanping * @version 1.0 * @date 2019-07-14 **/ public class GeneratorExample { public static void main(String[] args) { ProjInfo projInfo = new ProjInfo(); projInfo.setAuthor("lanping"); projInfo.setPackageName("cn.lanping"); projInfo.setProjectName("springboot-demo"); projInfo.setProjectSimpleName("demo"); projInfo.setModuleName("user"); projInfo.setThymeleaf(false); projInfo.setProjectSysName("Springboot自动化代码工具"); projInfo.setPort(8080); projInfo.setDebugModel(true); projInfo.setCreateModulePomXml(true); Connector connector = new Connector(); connector.setDbType(Constant.DB_TYPE_MYSQL); connector.setDriver("com.mysql.cj.jdbc.Driver"); connector.setUrl("jdbc:mysql://127.0.0.1:3306/springboot_demo?useUnicode=true&useSSL=false&characterEncoding=utf-8" + "&serverTimezone=UTC&allowPublicKeyRetrieval=true"); connector.setUser("root"); connector.setPassword("root123456"); try { AbstractProjectManager projectManager = ProjectManagerFactory.getProjectManager(connector.getDbType()); //生成空业务的项目 // projectManager.createFilesEmptyBusiness(connector,projInfo); //单表或多表 /*TableEntity tableEntity = new TableEntity(); tableEntity.setTableNames("sys_user","sys_role"); projectManager.createFilesByTables(connector, projInfo, tableEntity);*/ //生成全部 projectManager.createFiles(connector, projInfo); } catch (Exception e) { e.printStackTrace(); } } } ``` 执行结果如下 ![](doc/images/2.png) - 在目录下会生成springboot-demo项目, 将springboot-demo拷贝到指定目录 如D:\\ ![](doc/images/3.png) - 在D:\\springboot-demo\\下通过maven打包,在cmd下执行 mvn clean package 即可打包完成。 - 本项目支持以下三种情况下自动生成代码 1. 生成全部项目,包括基础配置或基础模块以及相关业务模块, 调用方法 `projectManager.createFiles(connector, projInfo)` 2. 生成单表或多表业务方式,仅包括表业务模块,调用方法 `projectManager.createFilesByTables(connector, projInfo, tableEntity)` 3. 生成基础模块与基础配置,无业务模块,调用方法 `projectManager.createFilesEmptyBusiness(connector,projInfo)` ## Web端执行 可访问[Springboot Generator Web](https://gitee.com/lanping520/springboot-generator-web) 进行查看 ## 更新日志 ### generator 3.0 - 1、swagger 改成 Knife4j - 2、分页返回参数改成 data:{records:[],total:0} - 3、返回code使用 EnumCode枚举 - 4、加了 dto.list 分页查询的参数dto,原来的dto完善了部分参数 - 5、配置文件 properties 改为 yml