1. 程式人生 > 其它 >Springboot+Screw 自動生成資料庫文件

Springboot+Screw 自動生成資料庫文件

Springboot+Screw 自動生成資料庫文件

目錄

1.新建Springboot專案新增依賴

<!-- 自動生成資料庫文件-->
<dependency>
    <groupId>cn.smallbun.screw</groupId>
    <artifactId>screw-core</artifactId>
    <version>1.0.5</version>
</dependency>
<!-- 必須新增此依賴 否則 DataSource Bean 不能找到-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

2.配置資料庫連線

## MYSQL
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/jsjt-dev?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&failOverReadOnly=false&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root

3.具體程式碼

package com.xmstdy.screw;

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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;

import javax.sql.DataSource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

@SpringBootApplication
public class Application implements ApplicationRunner {

    @Autowired
    ApplicationContext applicationContext;

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Override
    public void run(ApplicationArguments args) throws Exception {

        DataSource dataSourceMysql = applicationContext.getBean(DataSource.class);

        //模板引擎配置 生成檔案配置
        EngineConfig engineConfig = EngineConfig.builder()
                // 生成檔案路徑
                .fileOutputDir("E://")
                // 開啟目錄
                .openOutputDir(false)
                // 檔案型別
                .fileType(EngineFileType.WORD)
                // 生成模板實現
                .produceType(EngineTemplateType.freemarker).build();

        // 生成文件配置(包含以下自定義版本號、描述等配置連線),文件名稱拼接:資料庫名_描述_版本.副檔名
        Configuration config = Configuration.builder()
                .title("資料庫文件")
                // 版本號
                .version("1.0.0")
                // 描述
                .description("資料庫設計文件")
                // 資料來源
                .dataSource(dataSourceMysql)
                // 模板引擎配置
                .engineConfig(engineConfig)
                // 載入配置:想要生成的表、想要忽略的表
                .produceConfig(getProcessConfig())
                .build();
        // 執行生成
        new DocumentationExecute(config).execute();
    }

    /**
     * 配置想要生成的表+ 配置想要忽略的表
     *
     * @return 生成表配置
     */
    public static ProcessConfig getProcessConfig() {
        // 忽略表名
        List<String> ignoreTableName = Arrays.asList("");

        return ProcessConfig.builder()
                //根據名稱指定表生成
                .designatedTableName(new ArrayList<>())
                //根據表字首生成
                .designatedTablePrefix(new ArrayList<>())
                //根據表字尾生成
                .designatedTableSuffix(new ArrayList<>())
                //忽略表名
                .ignoreTableName(ignoreTableName)
                .build();
    }

}

4.文件展示