mcpField
3
311-frameworks-spring-jdbc

311-frameworks-spring-jdbc

github.com/jabrena開発456334 回インストール1 日前に更新
リポジトリ

311-frameworks-spring-jdbc について

Java プロジェクトに Spring JDBC の指針を適用するスキルです。Spring Framework 7+ では JdbcClient を標準とし、安全な SQL、トランザクション、結果処理、検証手順を扱います。

主な機能

  1. 01JdbcClient を優先するクエリと更新
  2. 02パラメーター化 SQL
  3. 03トランザクションと例外処理
  4. 04バッチ更新と生成キー
  5. 05@JdbcTest による JDBC テスト

活用シーン

  1. 01Spring JDBC コードのレビュー
  2. 02SQL インジェクションリスクの検出
  3. 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 の使用状況をレビューする

ワークフロー

  1. 参照資料を読み、プロジェクトの状況を把握する

変更を提案する前に、references/311-frameworks-spring-jdbc.md を読み、現在のプロジェクト設定を確認します。

  1. 対象範囲を把握し、改善内容を決める

依頼された成果、制約、適用する変更のうち安全な最小限の範囲を特定します。

  1. フレームワークに沿った変更を適用する

参照パターンとプロジェクトの規約に従って、設定やコードを実装またはリファクタリングします。

  1. 検証を実行し、結果を報告する

適切なビルドやテストを実行し、変更内容、検証内容、今後の対応事項をまとめます。

参照資料

詳細なガイダンス、例、制約については、references/311-frameworks-spring-jdbc.md を参照してください。

コメント