Springboot+Screw 自動生成資料庫文件
阿新 • • 發佈:2022-04-14
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(); } }