目标
将数据库表字段分表生成表单,自动对应表字段以及注释,可导出为 html | doc | md 文件。
一、pom.xml准备
<!-- screw核心 -->
<dependency>
<groupId>cn.smallbun.screw</groupId>
<artifactId>screw-core</artifactId>
<version>1.0.3</version>
</dependency>
二、工具类配置及生成
修改数据库连接信息,直接运行即可。
默认导出文件为html格式,导出到桌面,如果没有特殊的要求,其他的配置不用更改。
import cn.smallbun.screw.core.Configuration;
import cn.smallbun.screw.core.engine.EngineConfig;
import cn.smallbun.screw.core.engine.EngineFileType;
import cn.smallbun.screw.core.engine.EngineTemplateType;
import cn.smallbun.screw.core.execute.DocumentationExecute;
import cn.smallbun.screw.core.process.ProcessConfig;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import javax.sql.DataSource;
import java.util.Arrays;
import java.util.List;
/**
* 生成数据库文档
*
* @author sgambler
*/
public class ScrewApplicationTests {
public static void main(String[] args) {
// 数据源
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306");
hikariConfig.setUsername("root");
hikariConfig.setPassword("123456");
// 设置可以获取tables remarks信息
hikariConfig.addDataSourceProperty("useInformationSchema", "true");
hikariConfig.setMinimumIdle(2);
hikariConfig.setMaximumPoolSize(5);
DataSource dataSource = new HikariDataSource(hikariConfig);
// 1、生成文件配置
EngineConfig engineConfig = EngineConfig.builder()
// 生成文件路径
.fileOutputDir("C:\\Users\\Administrator\\Desktop")
// 打开目录
.openOutputDir(false)
// 文件类型
.fileType(EngineFileType.HTML)
// 生成模板实现
.produceType(EngineTemplateType.freemarker).build();
// 忽略表名
List<String> ignoreTableName = Arrays.asList("test");
// 忽略表前缀
List<String> ignorePrefix = Arrays.asList("test_", "test");
// 忽略表后缀
List<String> ignoreSuffix = Arrays.asList("_test", "test");
// 2、配置想要忽略的表
ProcessConfig processConfig = ProcessConfig.builder().ignoreTableName(ignoreTableName)
.ignoreTablePrefix(ignorePrefix).ignoreTableSuffix(ignoreSuffix).build();
// 3、生成文档配置(包含以下自定义版本号、描述等配置连接)
Configuration config = Configuration.builder().version("1.0.0").description("数据库文档").dataSource(dataSource)
.engineConfig(engineConfig).produceConfig(processConfig).build();
// 4、执行生成
new DocumentationExecute(config).execute();
}
}
三、导出示例截图(html)
四、说明
- 数据库支持
MySQL、MariaDB、TIDB、Oracle、SqlServer、PostgreSQL、Cache DB - 文件类型
EngineFileType枚举类中提供三种类型:HTML、WORD、MD。 - 模板类型
EngineTemplateType枚举类中提供两种类型:freemarker、velocity。 - 生成方式
一种是代码生成,还有一种是通过Maven打包生成,私以为直接用工具类比较方便直接。
详情请查看:https://gitee.com/leshalv/screw
最后的最后,如果我的文章帮到了你,拜托拜托给个赞吧~~