☰
Current Page
Main Menu
Home
Home
Editing
code-gen
Edit
Preview
h1
h2
h3
default
Set your preferred keybinding
default
vim
emacs
markdown
Set this page's format to
AsciiDoc
Creole
Markdown
MediaWiki
Org-mode
Plain Text
RDoc
Textile
Rendering unavailable for
BibTeX
Pod
reStructuredText
Help 1
Help 1
Help 1
Help 2
Help 3
Help 4
Help 5
Help 6
Help 7
Help 8
Autosaved text is available. Click the button to restore it.
Restore Text
# 代码生成(code-gen) ## 背景介绍 代码生成器引入了更加灵活和高效的 builder 模式,使得开发者能够快速生成符合需求的代码,同时保持代码的优雅和整洁。这个新特性旨在进一步提升开发效率,减少重复劳动,让开发者能够更加专注于业务逻辑的实现。 数据库支持: MySql数据库 、Oracle数据库、Postgre数据库、达梦数据库、SQLServer数据库等 ## 安装 DEMO工程下载 ``` http://192.168.175.55:9888/mijiuye/code-gen.git ``` pom 依赖 ``` <dependency> <groupId>com.sie.meta</groupId> <artifactId>sie-snest-code-generator</artifactId> <version>1.0-SNAPSHOT</version> </dependency> ``` 快速生成 在 CodeGenerator 中的 main 方法中直接添加生成器代码,并进行相关配置,然后直接运行即可生成代码。 代码示例 ``` FastAutoGenerator.create(ConfigUtils.load("pg.properties")) .dataSourceConfig(builder -> { builder.databaseQueryClass(SQLQuery.class); }) .strategyConfig(builder -> { builder.include("API_INFO"); }) .globalConfig(builder -> { builder.outputDir("C:\\Users\\29662\\Documents\\dynamic-group\\src\\main\\java\\com\\sie\\snest\\dynamic\\group\\model\\"); builder.author("mijiuye"); }) .packageConfig(builder -> { builder.parent("com.sie.snest.dynamic.group"); builder.version("1.0.0"); }) .templateEngine(new FreemarkerTemplateEngine()) .execute(); ``` ## 全局配置 (GlobalConfig) 全局配置提供了对代码生成器整体行为的设置,包括输出目录、作者信息、lomback 集成、时间类型策略等。 ### 方法说明 | 方法 | 说明 | 示例 | | :--- | :--- | :--- | | disableOpenDir\(\) | 禁止自动打开输出目录 | 默认值:`true` | | outputDir\(String\) | 指定代码生成的输出目录 | `/opt/sie`默认值: Windows:`D://`Linux/Mac:`/tmp` | | author\(String\) | 设置作者名 | `sie`默认值: 配置文件中的作者名 | | commentDate\(String\) | 设置注释日期格式 | 默认值:`yyyy-MM-dd` | 示例配置 {#示例配置-1} ``` DataSourceConfig dataSourceConfig = new DataSourceConfig.Builder("jdbc:mysql://127.0.0.1:3306/snest", "root", "123456").build(); ``` 可选配置 | 方法 | 说明 | 示例 | | :--- | :--- | :--- | | dbQuery\(IDbQuery\) | 数据库查询 | new MySqlQuery\(\),只在SQLQuery下生效 | | schema\(String\) | 数据库 schema\(部分数据库适用\) | snest | | databaseQueryClass\(AbstractDatabaseQuery\) | 数据库查询方式 | 默认DefaultQuery.class\(通用元数据\), SQLQuery.class\(SQL查询\) | ```java // 使用SQL查询的方式生成代码,属于旧的代码生成方式,通用性不是好,老的代码可以继续使用,适配数据库需要完成dbQuery和typeConvert的扩展,后期不再维护这种方式 DataSourceConfig dataSourceConfig = new DataSourceConfig.Builder("jdbc:mysql://127.0.0.1:3306/snest", "root", "123456") .dbQuery(new MySqlQuery()) .databaseQueryClass(SQLQuery.class) .build(); ``` ## 策略配置 \(StrategyConfig\) 策略配置是 snesst 代码生成器的核心部分,它允许开发者根据项目需求定制代码生成的规则,包括命名模式、表和字段的过滤、以及各个代码模块的生成策略。 ### 方法说明 {#方法说明-4} | 方法 | 说明 | 示例 | | :--- | :--- | :--- | | enableCapitalMode | 开启大写命名 | 默认值:`false` | | enableSkipView | 开启跳过视图 | 默认值:`false` | | enableSchema | 启用 schema | 默认值:`false`,多 schema 场景时启用 | | addInclude\(String…\) | 增加表匹配\(内存过滤\) | 与`addExclude`互斥,只能配置一项,支持正则匹配,如`^t_.*`匹配所有以`t_`开头的表名 | | addExclude\(String…\) | 增加表排除匹配\(内存过滤\) | 与`addInclude`互斥,只能配置一项,支持正则匹配,如`.*st$`匹配所有以`st`结尾的表名 | | addTablePrefix\(String…\) | 增加过滤表前缀 | | | addTableSuffix\(String…\) | 增加过滤表后缀 | | | addFieldPrefix\(String…\) | 增加过滤字段前缀 | | ## 编译配置(CompilerConfig) 编译配置支持能配置class文件, | 方法 | 说明 | 示例 | | :--- | :--- | :--- | | classpathEntries | 设置三方库 | | | modulepathEntries | 设置模块 | | | sourceFiles | 设置源代码文件 | | | sourceLocations | 设置源代码路径 | | | includes | 设置包含 | | | excludes | 设置排除 | | ## 数据库配置 (DataSourceConfig) 基础配置 | 属性 | 说明 | 示例 | | :--- | :--- | :--- | | url | jdbc 路径 | jdbc:mysql://127.0.0.1:3306/snest | | username | 数据库账号 | root | | password | 数据库密码 | 123456 | ## 包配置 (PackageConfig) 包配置用于定义生成代码的包结构,包括父包名、模块名、实体类包名、服务层包名等。 方法说明 | 方法 | 说明 | 示例 | | :--- | :--- | :--- | | parent\(String\) | 设置父包名 | 默认值:`com.sie` | | moduleName\(String\) | 设置父包模块名 | 默认值: 无 | | | | pathInfo\(Map<OutputFile, String>\) |
Uploading file...
Sidebar
[[_TOC_]]
Edit message:
Cancel