springboot集成screw反向生成數(shù)據(jù)庫說明文檔
一、screw介紹
不是大廠寫的,是個人寫的,但是不得不說,好使啊, 為愛發(fā)電。
二、使用步驟
1.新建一個空的springboot項目
這個使用idea,選擇springboot,下一步下一步就行。
我這里是maven項目,pom文件引入jar包。
我這里的整個pom.xml內(nèi)容
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.3.3</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.easylinkin</groupId> <artifactId>my-screw</artifactId> <version>0.0.1-SNAPSHOT</version> <name>my-screw</name> <description>my-screw</description> <url/> <licenses> <license/> </licenses> <developers> <developer/> </developers> <scm> <connection/> <developerConnection/> <tag/> <url/> </scm> <properties> <java.version>17</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>cn.smallbun.screw</groupId> <artifactId>screw-core</artifactId> <version>1.0.5</version> </dependency> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> </dependency> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
2.生成文檔的測試類
package com.easylinkin.myscrew; 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.HikariDataSource; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @Slf4j @SpringBootTest class MyScrewApplicationTests { //@Test void contextLoads() { } /** * 獲取數(shù)據(jù)源配置 */ @Test void generate() { log.info("開始生成數(shù)據(jù)庫文檔"); String dbFilePath = "/Users/zwmac/work/ovu/數(shù)據(jù)庫"; // 生成文件配置 EngineConfig engineConfig = EngineConfig.builder() // 生成文件路徑,自己mac本地的地址,這里需要自己更換下路徑 .fileOutputDir(dbFilePath) // 打開目錄 .openOutputDir(false) // 文件類型 HTML/WORD/MD 三種格式 .fileType(EngineFileType.WORD) // 生成模板實現(xiàn) .produceType(EngineTemplateType.freemarker).build(); //數(shù)據(jù)庫名稱 String[] dbNames = {"ovuhome"}; for (String dbName : dbNames) { HikariDataSource hikariDataSource = new HikariDataSource(); //設置數(shù)據(jù)庫連接 hikariDataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/" + dbName + "?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true"); hikariDataSource.setUsername("root"); hikariDataSource.setPassword("12345678"); // 生成文檔配置(包含以下自定義版本號、描述等配置連接) Configuration config = Configuration.builder() //文檔版本號 .version("1.0.1") //文檔名稱 .description("公寓數(shù)據(jù)庫設計文檔") //數(shù)據(jù)源 .dataSource(hikariDataSource) //生成引擎配置 .engineConfig(engineConfig) //高級配置 //.produceConfig(getProcessConfig()) .build(); // 執(zhí)行生成 new DocumentationExecute(config).execute(); } log.info("生成數(shù)據(jù)庫文檔完成"); } /** * 配置想要生成的表+ 配置想要忽略的表 * @return 生成表配置 */ public static ProcessConfig getProcessConfig(){ // 忽略表名 List<String> ignoreTableName = Arrays.asList("testa_testa","testb_testb"); // 忽略表前綴 List<String> ignorePrefix = Arrays.asList("testa","testb"); // 忽略表后綴 List<String> ignoreSuffix = Arrays.asList("_testa","_testb"); return ProcessConfig.builder() //根據(jù)名稱指定表生成 我需要生成所有表 這里暫時不設置 .designatedTableName(new ArrayList<>()) //根據(jù)表前綴生成 我需要生成所有表 這里暫時不設置 .designatedTablePrefix(new ArrayList<>()) //根據(jù)表后綴生成 我需要生成所有表 這里暫時不設置 .designatedTableSuffix(new ArrayList<>()) //忽略表名 .ignoreTableName(ignoreTableName) //忽略表前綴 .ignoreTablePrefix(ignorePrefix) //忽略表后綴 .ignoreTableSuffix(ignoreSuffix).build(); } }
測試類運行,就不說了,自己摸索摸索。
3.生成的word文檔效果
到此這篇關于springboot集成screw反向生成數(shù)據(jù)庫說明文檔的文章就介紹到這了,更多相關springboot screw生成數(shù)據(jù)庫說明文檔內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用IDEA將Java/Kotliin工程導出Jar包的正確姿勢
這篇文章主要介紹了使用IDEA將Java/Kotliin工程導出Jar包的正確姿勢,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03Mybatis-plus使用注解 @TableField(exist = false)
這篇文章主要介紹了Mybatis-plus使用注解 @TableField(exist = false),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03java Person,Student,GoodStudent 三個類的繼承、構造函數(shù)的執(zhí)行
這篇文章主要介紹了java Person,Student,GoodStudent 三個類的繼承、構造函數(shù)的執(zhí)行,需要的朋友可以參考下2017-02-02JAVA系統(tǒng)中Spring?Boot應用程序的配置文件application.yml使用詳解
這篇文章主要介紹了JAVA系統(tǒng)中Spring?Boot應用程序的配置文件application.yml的相關資料,application.yml是Spring?Boot應用程序的配置文件,定義了服務器、Spring、日志、安全及其他配置屬性,確保應用程序正確啟動和運行,需要的朋友可以參考下2025-01-01Java后臺返回和處理JSon數(shù)據(jù)的方法步驟
這篇文章主要介紹了Java后臺返回和處理JSon數(shù)據(jù)的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09