使用screw-core优点:
1、轻量级:无复杂依赖,集成简单
2、多数据库支持:MySQL、MariaDB、Oracle、SQL Server、PostgreSQL、TiDB 等
3、多格式输出:HTML、Word、Markdown
4、高度可定制:支持忽略表、前缀/后缀过滤、自定义模板(Freemarker)
下面给出简单例子
一、添加相关依赖
<dependency> <groupId>cn.smallbun.screw</groupId> <artifactId>screw-core</artifactId> <version>1.0.5</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>3.4.5</version> </dependency>
二、创建生成类ScrewExportDemo,写个main方法
完整代码如下:
java
import cn.smallbun.screw.core.Configuration;
import cn.smallbun.screw.core.engine.EngineConfig;
import cn.smallbun.screw.core.engine.EngineFileType;
import javax.sql.DataSource;
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 java.util.ArrayList;
public class ScrewExportDemo {
public static void main(String[] args) {
// 1. 配置数据源
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setJdbcUrl("jdbc:mysql://数据库ip:数据库端口/数据库名?useInformationSchema=true&characterEncoding=UTF-8");
hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
hikariConfig.setUsername("用户名");
hikariConfig.setPassword("用户密码");
hikariConfig.addDataSourceProperty("useInformationSchema", "true"); // 必须启用以获取注释
DataSource dataSource = new HikariDataSource(hikariConfig);
// 2. 配置生成引擎 (输出为 Word)
EngineConfig engineConfig = EngineConfig.builder()
.fileOutputDir("d:/screw-docs") // 输出目录
.openOutputDir(true) // 生成后是否打开目录
.fileType(EngineFileType.WORD) // 文件类型:WORD, HTML, MD
.produceType(EngineTemplateType.freemarker)
.fileName("数据库设计文档") // 文件名
.build();
// 忽略配置(可选)
ProcessConfig processConfig = ProcessConfig.builder()
.ignoreTableName(new ArrayList<String>() {{ add("test_order"); }})
.ignoreTablePrefix(new ArrayList<String>() {{ add("test_"); }})
.build();
// 3. 配置生成参数
Configuration config = Configuration.builder()
.version("1.0.0") // 文档版本
.description("数据库表结构文档") // 文档描述
.dataSource(dataSource) // 数据源
.engineConfig(engineConfig) // 引擎配置
.produceConfig(processConfig) // 生产配置
.build();
// 4. 执行生成
new DocumentationExecute(config).execute();
System.out.println("数据库设计文档生成完成!");
}
}
直接运行即可