一个非常好用的快速生成数据库表映射工具-Screw

将数据库的表结构生成文档

需要引入的依赖


            org.springframework.boot
            spring-boot-starter-jdbc
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            cn.smallbun.screw
            screw-core
            1.0.5
        
        
            com.zaxxer
            HikariCP
            5.1.0
        

测试代码

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.ArrayList;

/**
 * Description:
 *
 * @author: james
 * @date: 2025/6/20
 */
public class Testaaa {

    public static void main(String[] args) {

            //数据源
            HikariConfig hikariConfig = new HikariConfig();
            hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
            hikariConfig.setJdbcUrl("jdbc:mysql://localhost:3306/bb");
            hikariConfig.setUsername("root");
            hikariConfig.setPassword("james@04321");
            //设置可以获取tables remarks信息
            hikariConfig.addDataSourceProperty("useInformationSchema", "true");
            hikariConfig.setMinimumIdle(2);
            hikariConfig.setMaximumPoolSize(5);
            DataSource dataSource = new HikariDataSource(hikariConfig);
            //生成配置 (下面这个目录需要先创建好)
            String fileOutputDir = "C:\\Users\\admin\\Desktop\\screw_word";
            EngineConfig engineConfig = EngineConfig.builder()
                    //生成文件路径
                    .fileOutputDir(fileOutputDir)
                    //打开目录
                    .openOutputDir(true)
                    //文件类型
                    .fileType(EngineFileType.WORD)
                    //生成模板实现
                    .produceType(EngineTemplateType.freemarker)
                    //自定义文件名称
                    .fileName("screw_mysql").build();
            //忽略表
            ArrayList ignoreTableName = new ArrayList<>();
            ignoreTableName.add("test_user");
            ignoreTableName.add("test_group");
            //忽略表前缀
            ArrayList ignorePrefix = new ArrayList<>();
            ignorePrefix.add("test_");
            //忽略表后缀
            ArrayList ignoreSuffix = new ArrayList<>();
            ignoreSuffix.add("_test");
            ProcessConfig processConfig = ProcessConfig.builder()
                    //指定生成逻辑、当存在指定表、指定表前缀、指定表后缀时,将生成指定表,其余表不生成、并跳过忽略表配置
                    //根据名称指定表生成
//                .designatedTableName(new ArrayList<>())
                    //根据表前缀生成
//                .designatedTablePrefix(new ArrayList<>())
                    //根据表后缀生成
//                .designatedTableSuffix(new ArrayList<>())
                    //忽略表名
                    .ignoreTableName(ignoreTableName)
                    //忽略表前缀
                    .ignoreTablePrefix(ignorePrefix)
                    //忽略表后缀
                    .ignoreTableSuffix(ignoreSuffix).build();
            //配置
            Configuration config = Configuration.builder()
                    //版本
                    .version("1.0.0")
                    //描述
                    .description("数据库设计文档生成")
                    //数据源
                    .dataSource(dataSource)
                    //生成配置
                    .engineConfig(engineConfig)
                    //生成配置
                    .produceConfig(processConfig)
                    .build();
                //执行生成
            new DocumentationExecute(config).execute();
    }
}

你可能感兴趣的:(数据库,java)