SQLファイル単位のテーブルCRUD一覧自動生成ツール
Java8/IntelliJ/JSqlParser(*)
2016/07/15 バグfix(解析不能SQLにはERRORと表記してTSVに加えるよう修正)
→ 指定ディレクトリ配下の全SQLファイルをパース可能になった。
CRUD図がないと、機能とテーブル(データ)との関係が(ソース追わないと)わからない。でも、CRUD図のメンテは、つらい。
ということで、自動生成できないかと思って作りました。
とりあえず第1弾としては、SQLファイルが置かれている指定のディレクトリ配下のSQLファイルを解析(※偉そうに解析と言ってますが、解析自体は別の人が作ったモジュール)して、テーブル名の一覧にCRUD付けているだけです。
当初やりたかったのは、Action → Service → SQL → テーブル名一覧のCRUD という感じで、機能ごとにどのテーブル使ってるのかが知りたかったので、そこまでいけるようにしたい(並行して、ソースの構文木を解析して呼び出し関係やらまとめるツールも開発中)。
あと、SQLファイルのパースができるということは、そのSQLに対するテストコードも(今のSQLが正とするなら)自動生成できるので、そういうツールも作ろうと思ってます。
ZIP回答して、bat ファイルをコマンドプロンプトで実行してください。
※なにしろ趣味で作ったのでデバッグ甘いです。
※2ウェイSQLファイルをパースしており、SQLとして成立しないものは当然落ちます。(begin使ってる系があやしい。)
第1引数(★必須★):解析したいSQLファイルが置かれたディレクトリのフルパスです。
第2引数(任意):TSVファイル出力先を変えたい場合にフルパスを指定。
たとえばコマンドプロンプトで、下記のようにすると、bat ファイルと同じ場所に「crud.tsv」というTSVファイルを出力します。
>crudtool.bat C:\Project\src\main\resources\sql
※コマンドプロンプト版と違い、起動時の引数は不要(GUIで指定するので)。
パース完了したかどうかが画面に表現されないので注意。指定ディレクトリ内にTSVができあがっていれば完了。