アーカイブ「2024年01月」

ebonyrack 0.5.0 をリリースしました。(最近こればかり。。)

https://github.com/shigenobu/ebonyrack/releases

0.4.0 から 0.5.0 での機能追加は以下のとおりです。

  • テーブルからクラス作成(一括・個別)
  • DDLインポートの個別対応
  • テーブル・シーケンス・ノートのコピー&ペイスト
  • DDLに関連するノートの情報をdocコメントとして記載

その他、諸々細かな修正等はありますが、

今回の中では「テーブルからクラス作成」が比較的大きな機能かなと。

これはテンプレートにテーブル情報を渡して、

そのテンプレートをレンダリングすることでクラス(ソースコード)の生成が出来るというものです。

テンプレートは、Velocityの機能が使えるので、他テンプレートを取り込んだりすることもできます。

テンプレートはカスタマイズ可能です。

テンプレートは、

~/.ebonyrack/template/

ディレクトリ以下に配備します。起動時にサンプルが配備されます。

「Sample.java.vm」というように、「{識別名}.{出力したい拡張子}.vm」としてください。

「コピー&ペイスト」もかなり大変ではあったのですが、ひとまずできてます。

とはいえ、コピー時に参照をコピーするだけで、ペイスト時に複製をかける仕組みにしているため、

コピーからペイストの間に、元データに修正が入ると、ペイストされたデータも同様の変更が入るようになってます。

そもそも、コピー&ペイストとして、これがあっているかはわからないのですが、

ひとまずそんな感じになってます。

だいぶできたのですが、少し忙しくなりそうなので、

ebonyrackの機能追加は見合わせようかなと。

もちろん、不具合あれば修正していきますが、

時間みて、操作マニュアル等のドキュメント作成をしていこうかと考えています。

改めて、0.5.0 での機能は以下のようになってます。

  • テーブル作成
  • シーケンス作成
  • ノート作成
  • データのWrite out → JSONを出力するので、バージョン管理で使えるかも
  • データのRead in → Write outされたJSONを取り込めるので、作業者以外はいいかも
  • DDLのImport(最初に一括と、個別で追加)
  • DDLの出力(一括と個別)
  • 画像の出力
  • HTMLの出力 → 本アプリを使わない作業者にいいかも
  • クラス用ソースコード生成(一括と個別)

機能としては、一通り出揃った感はあるので、

今後としては、使い勝手の向上、見栄えの向上、パフォーマンス調整とかでしょうか。

使ってくれる人がいれば嬉しいです。

以上

投稿日時:2024年01月26日 16:19   カテゴリー:java, mariadb, mysql   [コメントがあればどうぞ]

ebonyrack 0.4.0 をリリースしました。

https://github.com/shigenobu/ebonyrack/releases

今回の目玉は、DDLからのIMPORTです。

結構危険な機能なので、新規プロジェクト作成直後しか利用できません。

この機能により、mysqldumpまたはmariadb-dumpで出力される

  • CREATE SEQUENCE
  • CREATE TABLE

をパースして、ebonyrack上に展開することが可能となります。

いい加減なDDLでは駄目で、データベースが吐き出すDDLを使ってください。

こんな感じですね。

mariadb-dump --databases test -d > test.sql

DDLのパースには、antlr4を使っています。

(ANTLR)

https://www.antlr.org/

※内包したため、かなりバイナリが重くなりました。。

※ANTLRを使ったMariaDBのパースについては、そのうち書こうかと思います。

とはいえ、以下の機能の部分のパースは無視しています。

  • テーブルのオプション
  • カラムのオプション(生成列とかCHECK制約とかINVISIBLEとか)
  • 外部キー

一応、実案件の100を超えるテーブルは取り込めたので、まあ大丈夫かなと。

備忘録を兼ねて、今後のTODOを記載しておきます。

  • オブジェクトのコピー&ペイスト(やっぱりあるといいなと思いました)
  • IE記法の導入
  • ヘルプダイアログ
  • クラス生成
  • DDL出力時に関連するノートをDOCコメントとして出力

このうちの「クラス生成」は、テンプレートを指定すると、

クラスコードが作れるってやつですね。

これをやると、設計段階でプログラムのクラスが作成できるのでいいかなと思っています。

以上

投稿日時:2024年01月19日 16:30   カテゴリー:java, mariadb, mysql   [コメントがあればどうぞ]