311-frameworks-spring-jdbc について
Java プロジェクトに Spring JDBC の指針を適用するスキルです。Spring Framework 7+ では JdbcClient を標準とし、安全な SQL、トランザクション、結果処理、検証手順を扱います。
主な機能
- 01JdbcClient を優先するクエリと更新
- 02パラメーター化 SQL
- 03トランザクションと例外処理
- 04バッチ更新と生成キー
- 05@JdbcTest による JDBC テスト
活用シーン
- 01Spring JDBC コードのレビュー
- 02SQL インジェクションリスクの検出
- 03データアクセスとトランザクションのリファクタリング
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jabrena/ plinth --skill 311-frameworks-spring-jdbcインストール後、Claude Code で/311-frameworks-spring-jdbcを入力して読み込まれたか確認します。
同梱ファイルreferences/311-frameworks-spring-jdbc.md
詳細
Spring JDBC — JdbcClient(Spring Framework 7 以降)
Spring JDBC のガイドラインを適用し、JdbcClient をデフォルトとして使用します。JdbcClient で対応していないレガシーコードや API(バッチ更新、KeyHolder、RowCallbackHandler によるストリーミング)に限り、JdbcTemplate / NamedParameterJdbcTemplate を使用します。
このスキルの対象範囲
- パラメーター化された SQL(ユーザー入力を連結しない)
- JdbcClient の流れるような API(Spring Framework 7 以降)— クエリと更新で優先的に使用
- JdbcClient による名前付きパラメーター。レガシーコードの移行では NamedParameterJdbcTemplate を使用
- RowMapper、query(Class)、レコード
- バッチ処理と生成キー(必要に応じて JdbcTemplate / JdbcOperations)
- 生成キーの安全な取り扱い(KeyHolder、単一行の JdbcClient 更新)
- サービス層の @Transactional 境界
- 読み取り専用トランザクション(@Transactional(readOnly = true))
- 単一行の安全な取得(queryForObject ではなく optional() / findFirst())
- 大規模な結果セットのストリーミング(RowCallbackHandler、ResultSetExtractor)
- DataAccessException の処理(DuplicateKeyException、EmptyResultDataAccessException)
- @Sql フィクスチャを使った @JdbcTest スライステスト
スコープ: 参照ルールと適切なコード例・不適切なコード例に基づいて推奨事項を適用します。
制約
Spring JDBC に変更を加える前に、プロジェクトがコンパイルできることを確認してください。コンパイルに失敗した場合は、ただちに作業を中止してください。改善を適用した後は、完全な検証を実行してください。
- 必須: 変更を加える前に
./mvnw compileまたはmvn compileを実行します - 安全性: コンパイルに失敗した場合は、ただちに作業を中止します
- 検証: 改善を適用した後に
./mvnw clean verifyまたはmvn clean verifyを実行します - SQL インジェクション: 信頼できない入力を SQL 文字列に連結しないでください。必ずバインドパラメーターを使用します
- 適用前: 詳細なルールと適切なパターン・不適切なパターンについて、参照資料を読みます
このスキルを使う場面
- Spring JDBC(JdbcTemplate、JdbcClient、NamedParameterJdbcTemplate)を使った Java コードをレビューする
- Java コードの Spring JDBC データアクセスに関するベストプラクティスを適用する
- JDBC コードの SQL インジェクションのリスクを検出して修正する
- JDBC 操作のトランザクション境界や例外処理を改善する
- Spring Framework 7 の JdbcClient の使用状況をレビューする
ワークフロー
- 参照資料を読み、プロジェクトの状況を把握する
変更を提案する前に、references/311-frameworks-spring-jdbc.md を読み、現在のプロジェクト設定を確認します。
- 対象範囲を把握し、改善内容を決める
依頼された成果、制約、適用する変更のうち安全な最小限の範囲を特定します。
- フレームワークに沿った変更を適用する
参照パターンとプロジェクトの規約に従って、設定やコードを実装またはリファクタリングします。
- 検証を実行し、結果を報告する
適切なビルドやテストを実行し、変更内容、検証内容、今後の対応事項をまとめます。
参照資料
詳細なガイダンス、例、制約については、references/311-frameworks-spring-jdbc.md を参照してください。