blog

強力な、ワンクリックでのデータベースドキュメント生成 - データベーステーブル構造のリバースエンジニアリング

データベースドキュメントはエンタープライズプロジェクトの開発において提供される必要があるドキュメントで、通常は開発者が手作業で書く必要があります。書いた後、データベースの変更を手作業で修正する必要があ...

Dec 31, 2020 · 4 min. read
シェア

解決内容

データベースドキュメンテーションは、企業プロジェクトの開発において提供される必要があるドキュメントであり、通常は開発者が手作業で記述する必要があります。書き込みの完了後、データベースの変更を手動で変更する必要があるため、多くのマンパワーを無駄に。また、このドキュメントは、技術的な内容を持っていない、プログラマは、多くの場合、この作業を行うために配置された自分の心を持っているチーム内の自分の位置の悲観的な期待に抵抗され、その結果、出発も可能です。この文書の次のような内容:ネジ:私は最近、githubの上にデータベースドキュメント生成ツールを見つけました。 このツールは、リバースエンジニアリングのためのデータベースのテーブル構造に応じて、簡単な、高速を介して構成することができ、文書にデータベースのテーブル構造とフィールドの逆生成。

機能

  • シンプル、軽量、優れたデザイン
  • マルチフォーマット文書:html、word、markdwon
  • 柔軟な拡張性:ユーザー定義のテンプレートと表示スタイルの変更をサポート

依存ライブラリの探索

mvnセントラルリポジトリで最新バージョンを見るには、SpringBootプロジェクトに以下のmaven座標を導入します:

<dependency>
 <groupId>.smallbun.screw</groupId>
 <artifactId>screw-core</artifactId>
 <version>1.0.3</version>
</dependency>

mavenリポジトリのコンパイル済み依存関係からわかるように、screw-coreの実装は以下のものに依存しています。freemarkerに注目してください。このプロジェクトでは、ドキュメントを生成するテンプレートとしてfreemarkerを使用しているからです。また、screamはデータベースのコネクションプールとしてHikariCPを利用しています:

  • SpringBootプロジェクトでは、HikariCPデータベース接続プーリングを導入する必要があります。
  • データベースの種類とバージョンに応じて、正しいJDBCドライバーを導入してください。

始めましょう

以上の作業が終わったら、ドキュメント生成のパラメーターを設定します。ドキュメント生成を実装するには、コードを書く方法と、mavenプラグインを使う方法があります。

  • 個人的には、その時のコードを使い、ユニットテストケースを書くだけで、比較的独立した、柔軟な使い方ができる方がまだ好きです。
  • これをpom.xmlのプラグイン設定の中に入れると、ただでさえ長いpom.xmlがさらに長くなってしまいます。

だからmavenのプラグインは、私はあなたにデモを与えることはありません、直接Ctrl + C / Vで、あなたのsrc/test/javaディレクトリに次のコードを実行します。単に設定を変更し、それを実行します

import.smallbun.screw.core.Configuration;
import.smallbun.screw.core.engine.EngineConfig;
import.smallbun.screw.core.engine.EngineFileType;
import.smallbun.screw.core.engine.EngineTemplateType;
import.smallbun.screw.core.execute.DocumentationExecute;
import.smallbun.screw.core.process.ProcessConfig;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import org.junit.jupiter.api.Test;
import javax.sql.DataSource;
import java.util.ArrayList;
public class ScrewTest {
 
 @Test
 void testScrew() {
 // 
 HikariConfig hikariConfig = new HikariConfig();
 hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
 hikariConfig.setJdbcUrl("jdbc:mysql://.1:3306/database");
 hikariConfig.setUsername("db-username");
 hikariConfig.setPassword("db-password");
 //テーブルの備考情報を取得するための設定
 hikariConfig.addDataSourceProperty("useInformationSchema", "true");
 hikariConfig.setMinimumIdle(2);
 hikariConfig.setMaximumPoolSize(5);
 DataSource dataSource = new HikariDataSource(hikariConfig);
 //コンフィギュレーションを生成する
 EngineConfig engineConfig = EngineConfig.builder()
 //ファイルパスを生成する
 .fileOutputDir("d://")
 //ディレクトリを開く
 .openOutputDir(true)
 //生成されるファイルのタイプ: HTML
 .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()
 //生成ロジックを指定し、指定されたテーブル、指定されたテーブル接頭辞、指定されたテーブル接尾辞がある場合、指定されたテーブルが生成され、残りのテーブルは生成されず、無視テーブル構成はスキップされる。
 //テーブル生成を名前で指定する
 .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();
 }
}

上記のコードをテストケース内で実行すると、データベースドキュメントが自動的に fileOutputDir 設定ディレクトリに生成されます。

効果

  • この記事はアルファベット・ブログの許可を得て転載しています。

.また、このところ以下のような素晴らしいコンテンツをアウトプットしていますので、ご期待ください。

  • 「SpringBoot 2.0のハンズオン、ハンズオフ。
  • 春のセキュリティ-JWT-OAuth2
  • フロントエンドとバックエンドを分離するRBAC権利管理システムの実際
  • 「ブロンズからキングへのSpringCloud Microservicesハンズオン".
  • VUE徹底解説シリーズ
Read next

DevToolsの新機能

DevTools は、間違いなく、ウェブ アプリケーションの開発やテストに最も役立つツールの 1 つです。Chrome 85では、DevToolsに以下のような改良が加えられました。 コンソール設定のグループ類似トグルが繰り返しメッセージに適用されるようになりました。コンソール設定の「コンテキストのみを選択(Selecte...

Dec 31, 2020 · 5 min read