DataGripでSQL生成を「手作業」するのは卒業せよ:CRUD自動生成とライブテンプレートで爆速開発を実現する極意
現場でエンジニアの生産性を左右するのは、IDEの機能を知っているかどうかではない。「いかにツールを自分の分身としてカスタマイズし、単純作業を自動化し尽くしているか」だ。
DataGripは単なるSQLクライアントではない。正しく設定すれば、CRUDコードの記述時間を0秒に近づける「最強のコード生成エンジン」になる。今回は、既存テーブルからSQLをバリバリ生成し、開発スピードを異次元に引き上げるための実践的テクニックを伝授する。
—
1. 「SQL生成ウィザード」をハックせよ
多くのエンジニアが「右クリック > SQL Scripts > Generate SQL」を使うだけで満足しているが、それは入り口に過ぎない。
隠れた神機能:Extractorのカスタマイズ
単なる`INSERT`文の生成ではなく、アプリケーションのDTOやORMモデルに合わせた形式で出力したい場合、`Data Extractors`を使いこなすべきだ。
1. `Cmd+Shift+Alt+G` (or `Ctrl+Shift+Alt+G`) でSQL生成ダイアログを開く。
2. ここで重要なのは、出力形式(Extractor)を自作することだ。
3. `Scripts` フォルダにJS/Groovyでカスタムスクリプトを配置すれば、「テーブル定義を読み込み、JavaのEntityクラスやGoのStruct、あるいはTypeScriptのInterfaceを吐き出す」といった芸当が可能になる。
現場の知恵: 「既存テーブルの変更を検知して、自動でマイグレーションスクリプトを生成する」設定をここに組み込めば、手動のDDL作成から解放される。
—
2. ライブテンプレート:CRUD生成の最終兵器
「毎回同じような `WHERE id = ?` を書く」のは今日で終わりにしよう。DataGripのライブテンプレートは、SQLの断片ではなく「文脈」を記憶させるものだ。
推奨テンプレート:`crud-prep`
以下の設定を `Settings > Editor > Live Templates` に登録せよ。
- Abbreviation: `crud-select`
- Template text:
SELECT $COLUMNS$
FROM $TABLE$
WHERE $PK$ = :$PK_VAR$
/ DataGrip: 実行時に $TABLE$ を補完し $COLUMNS$ をリストアップ /
ポイント: テンプレートの変数に「Expression(関数)」を割り当てること。`columnNames()` や `tableNames()` を指定すれば、カーソル位置のテーブル情報を動的に取得し、爆速でクエリが完成する。
—
3. チーム開発における「設定の神聖化」
個々人がバラバラの設定で開発するのは、技術的負債の温床だ。DataGripの設定はプロジェクト単位でGit管理するのが鉄則である。
`.idea` ディレクトリの活用
DataGripの設定ファイルは、プロジェクトルートの `.idea/dataSources/` に集約される。これをGitで共有することで、以下の恩恵が得られる。
1. データソース定義の統一: 接続先、SSHトンネル、ドライバー設定がチーム全員で同期される。
2. クエリ履歴の共有: 開発中に頻出する特定のクエリを「User Parameters」として共有できる。
ベストプラクティス:`.idea/dataSources.xml` の構成例
—
4. 導入必須の「神プラグイン」
標準機能で足りない「痒いところ」を補うための必須プラグインだ。
- [Key Promoter X](https://plugins.jetbrains.com/plugin/9792-key-promoter-x): マウス操作を検知し、「今の作業、ショートカットでやれば0.5秒速いぞ」と通知してくれる。身体に叩き込むための教官。
- [Rainbow Brackets](https://plugins.jetbrains.com/plugin/10080-rainbow-brackets): 複雑なサブクエリやJOINのネストを視覚的に整理する。これ無しでのクエリ読解は時間の無駄だ。
—
5. 伝説のエンジニアに近づくための「キーボードショートカット」
マウスに手を伸ばした時点で、君の生産性は半分になる。最低限、これらは指に染み込ませろ。
| 操作 | ショートカット (Mac) |
| :— | :— |
| データソースへ即座にジャンプ | `Cmd + E` |
| クエリの整形 (必須) | `Cmd + Alt + L` |
| SQLスクリプト生成ダイアログ | `Cmd + Shift + Alt + G` |
| 現在カーソルがあるテーブルの定義を表示 | `Cmd + B` |
—
最後に:思考をコードに直結させる技術
DataGripの真の価値は、「DB構造を脳内でシミュレーションする時間を、SQLの実行と分析に充てられる」点にある。
ツールに支配されるな。ツールをハックし、自分の思考スピードを制限するあらゆるボトルネックを排除せよ。設定ファイルをGitにコミットした瞬間から、チームの生産性は確実に跳ね上がるはずだ。
さあ、次はどのクエリを自動生成しようか?