還在手動整理數據庫文檔?試試這個工具

簡介

在企業級開發中、咱們常常會有編寫數據庫表結構文檔的時間付出,從業以來,待過幾家企業,關於數據庫表結構文檔狀態:要麼沒有、要麼有、但都是手寫、後期運維開發,須要手動進行維護到文檔中,非常繁瑣、若是忘記一次維護、就會給之後工做形成不少困擾、無形中製造了不少坑留給本身和後人,因而須要一個插件工具 screw[1]來維護。java

screw 特色

  • 簡潔、輕量、設計良好。不須要 powerdesigner 這種重量的建模工具
  • 多數據庫支持 。支持市面常見的數據庫類型 MySQL、Oracle、SqlServer
  • 多種格式文檔。支持 MD、HTML、WORD 格式
  • 靈活擴展。支持用戶自定義模板和展現樣式

支持數據庫類型

[✔️] MySQL
[✔️] MariaDB
[✔️] TIDB
[✔️] Oracle
[✔️] SqlServer
[✔️] PostgreSQL
[✔️] Cache DBmysql

依賴

這裏以 mysql8 數據庫爲例子git

<!--數據庫文檔核心依賴-->
 <dependency>  <groupId>cn.smallbun.screw</groupId>  <artifactId>screw-core</artifactId>  <version>1.0.3</version>  </dependency>  <!-- HikariCP -->  <dependency>  <groupId>com.zaxxer</groupId>  <artifactId>HikariCP</artifactId>  <version>3.4.5</version>  </dependency>  <!--mysql driver-->  <dependency>  <groupId>mysql</groupId>  <artifactId>mysql-connector-java</artifactId>  <version>8.0.20</version>  </dependency> 複製代碼

1. 經過自定義代碼配置文檔生成

@Test
public void shouldAnswerWithTrue() {  //數據源  HikariConfig hikariConfig = new HikariConfig();  hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");  hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/test");  hikariConfig.setUsername("root");  hikariConfig.setPassword("root");  //設置能夠獲取tables remarks信息  hikariConfig.addDataSourceProperty("useInformationSchema", "true");  hikariConfig.setMinimumIdle(2);  hikariConfig.setMaximumPoolSize(5);  DataSource dataSource = new HikariDataSource(hikariConfig);  //生成配置  EngineConfig engineConfig = EngineConfig.builder()  //生成文件路徑  .fileOutputDir("/Users/lengleng")  //打開目錄  .openOutputDir(true)  //文件類型  .fileType(EngineFileType.HTML)  //生成模板實現  .produceType(EngineTemplateType.freemarker).build();   //忽略表  ArrayList<String> ignoreTableName = new ArrayList<>();  ignoreTableName.add("test_user");  ignoreTableName.add("test_group");  //忽略表前綴  ArrayList<String> ignorePrefix = new ArrayList<>();  ignorePrefix.add("test_");  //忽略表後綴  ArrayList<String> ignoreSuffix = new ArrayList<>();  ignoreSuffix.add("_test");  ProcessConfig processConfig = ProcessConfig.builder()  //忽略表名  .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(); } 複製代碼

2. 經過插件的形式生成文檔

<build>
 <plugins>  <plugin>  <groupId>cn.smallbun.screw</groupId>  <artifactId>screw-maven-plugin</artifactId>  <version>1.0.2</version>  <dependencies>  <!-- HikariCP -->  <dependency>  <groupId>com.zaxxer</groupId>  <artifactId>HikariCP</artifactId>  <version>3.4.5</version>  </dependency>  <!--mysql driver-->  <dependency>  <groupId>mysql</groupId>  <artifactId>mysql-connector-java</artifactId>  <version>8.0.20</version>  </dependency>  </dependencies>  <configuration>  <!--username-->  <username>root</username>  <!--password-->  <password>root</password>  <!--driver-->  <driverClassName>com.mysql.cj.jdbc.Driver</driverClassName>  <!--jdbc url-->  <jdbcUrl>jdbc:mysql://127.0.0.1:3306/test</jdbcUrl>  <!--生成文件類型-->  <fileType>HTML</fileType>  <!--文件輸出目錄-->  <fileOutputDir>/Users/lengleng</fileOutputDir>  <!--打開文件輸出目錄-->  <openOutputDir>false</openOutputDir>  <!--生成模板-->  <produceType>freemarker</produceType>  <!--描述-->  <description>數據庫文檔生成</description>  <!--版本-->  <version>${project.version}</version>  <!--標題-->  <title>數據庫文檔</title>  </configuration>  <executions>  <execution>  <phase>compile</phase>  <goals>  <goal>run</goal>  </goals>  </execution>  </executions>  </plugin>  </plugins> </build> 複製代碼

參考資料

[1]

screw: https://gitee.com/leshalv/screwweb

相關文章
相關標籤/搜索