✨ Introducing new features. close #3396 代码生成支持数据库表结构文档导出

This commit is contained in:
lbw committed 2021-11-30 21:48:09 +08:00
1 parent 08e7eccaf1
commit 61983ec946
3 files changed
+37 -1

No files matched your search

+7
View File
@@ -15,6 +15,7 @@
<description>代码生成模块</description>
<properties>
<screw.version>0.0.1</screw.version>
<sqlserver.version>4.0</sqlserver.version>
<db2.version>11.5.0.0</db2.version>
<oracle.version>12.1.0.1-atlassian-hosted</oracle.version>
@@ -123,6 +124,12 @@
<groupId>org.apache.velocity</groupId>
<version>${velocity.version}</version>
</dependency>
<!--生成文档-->
<dependency>
<groupId>io.springboot.plugin</groupId>
<artifactId>screw-spring-boot-starter</artifactId>
<version>${screw.version}</version>
</dependency>
<!--web 模块-->
<dependency>
<groupId>org.springframework.boot</groupId>
@@ -17,18 +17,25 @@
package com.pig4cloud.pigx.codegen.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.IoUtil;
import cn.smallbun.screw.boot.config.Screw;
import cn.smallbun.screw.boot.properties.ScrewProperties;
import com.baomidou.dynamic.datasource.DynamicRoutingDataSource;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pig4cloud.pigx.codegen.entity.GenConfig;
import com.pig4cloud.pigx.codegen.service.GenTableColumnService;
import com.pig4cloud.pigx.codegen.service.GeneratorService;
import com.pig4cloud.pigx.common.core.util.R;
import com.pig4cloud.pigx.common.core.util.SpringContextHolder;
import lombok.AllArgsConstructor;
import lombok.SneakyThrows;
import org.springframework.http.HttpHeaders;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
/**
* 代码生成器
@@ -41,6 +48,8 @@ import javax.servlet.http.HttpServletResponse;
@RequestMapping("/generator")
public class GeneratorController {
private final Screw screw;
private final GeneratorService generatorService;
private final GenTableColumnService columnService;
@@ -94,4 +103,24 @@ public class GeneratorController {
IoUtil.write(response.getOutputStream(), Boolean.TRUE, data);
}
@SneakyThrows
@GetMapping("/doc")
public void generatorDoc(String[] tableNames, String dsName, HttpServletResponse response) {
// 设置指定的数据源
DynamicRoutingDataSource dynamicRoutingDataSource = SpringContextHolder.getBean(DynamicRoutingDataSource.class);
DynamicDataSourceContextHolder.push(dsName);
DataSource dataSource = dynamicRoutingDataSource.determineDataSource();
// 设置指定的目标表
ScrewProperties screwProperties = SpringContextHolder.getBean(ScrewProperties.class);
screwProperties.setDesignatedTableName(CollUtil.toList(tableNames));
// 生成
byte[] data = screw.documentGeneration(dataSource, screwProperties).toByteArray();
response.reset();
response.addHeader(HttpHeaders.CONTENT_LENGTH, String.valueOf(data.length));
response.setContentType("application/octet-stream; charset=UTF-8");
IoUtil.write(response.getOutputStream(), Boolean.TRUE, data);
}
}
+1 -1
View File
@@ -33,7 +33,7 @@
</organization>
<properties>
<spring-boot.version>2.5.6</spring-boot.version>
<spring-boot.version>2.5.7</spring-boot.version>
<spring-cloud.version>2020.0.4</spring-cloud.version>
<spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>