К основному содержанию
скилл CX Codex

311-frameworks-spring-jdbc — скилл для Claude Code: Spring JDBC

Скилл для ревью и написания JDBC-кода на Spring: подсказывает JdbcClient, ловит SQL-инъекции и правит границы транзакций.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add jabrena/plinth --skill 311-frameworks-spring-jdbc -a claude-code
Открыть на GitHub

Что делает 311-frameworks-spring-jdbc

Скилл разбирает програмный доступ к базе через Spring JDBC. По умолчанию он опирается на JdbcClient из Spring Framework 7+, а JdbcTemplate и NamedParameterJdbcTemplate оставляет для легаси-кода и случаев, где нужны batch-обновления, KeyHolder или потоковая выдача через RowCallbackHandler.

Внутри — набор правил и примеров хорошего и плохого кода: параметризованный SQL, маппинг через RowMapper в records, работа с batch и сгенерированными ключами, @Transactional на сервисном слое, read-only транзакции, безопасное чтение одной строки через optional() и findFirst(), обработка DataAccessException, тесты-срезы @JdbcTest с фикстурами @Sql. Скилл сначала читает references/311-frameworks-spring-jdbc.md, потом смотрит на проект и предлагает минимальный набор правок.

Есть жёсткое условие: перед любыми изменениями проект должен собираться. Если ./mvnw compile или mvn compile падает, скилл останавливается и ничего не трогает. После правок он гоняет ./mvnw clean verify. Это повод сначала починить сборку, а уже потом просить рефакторинг.

Какие задачи решает

  • найти конкатенацию пользовательского ввода в SQL-строке
  • перевести легаси-код с NamedParameterJdbcTemplate на JdbcClient
  • разложить результат запроса в record через RowMapper
  • вынести границы транзакции в сервисный слой
  • заменить queryForObject на optional() там, где строка может отсутствовать

Примеры запросов агенту

  • Проверь этот репозиторий на SQL-инъекции в JDBC-коде
  • Перепиши эти запросы на JdbcClient из Spring Framework 7
  • Посмотри транзакции и обработку DataAccessException в сервисах

Как установить 311-frameworks-spring-jdbc

1Через Skills CLI (Vercel)

npx skills add jabrena/plinth --skill 311-frameworks-spring-jdbc -a claude-code

2Вручную: положить файлы

~/.claude/skills/311-frameworks-spring-jdbc/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/311-frameworks-spring-jdbc/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора40

412-frameworks-quarkus-panache Скилл для работы с Hibernate ORM Panache в Quarkus: подсказывает паттерны запросов, проекций и блокировок, проверяя сборку до и после правок. CX Codex +1 331установок 402-frameworks-quarkus-rest Скилл для проектирования и ревью REST API на Quarkus: ресурсы JAX-RS, валидация, коды ответов, версионирование и кэширование. CX Codex +1 331установок 133-java-testing-acceptance-tests Скилл превращает согласованные Gherkin-сценарии в приёмочные тесты Java: RestAssured, фикстуры БД и Kafka, WireMock для внешних API. CX Codex +1 329установок 312-frameworks-spring-data-jdbc Скилл для работы с Spring Data JDBC на Java records: сущности, репозитории, границы агрегатов, транзакции и борьба с N+1. CX Codex +1 329установок 012-agile-epic Скилл ведёт агента по вопросам и собирает готовый Markdown-документ эпика: ценность, объём, критерии успеха, риски. CX Codex +1 326установок 323-frameworks-spring-boot-testing-acceptance-tests Скилл превращает согласованные Gherkin-сценарии в приёмочные тесты Spring Boot: TestRestTemplate, Testcontainers, WireMock. CX Codex +1 324установок 401-frameworks-quarkus-core Скилл для ревью и правки ядра Quarkus: CDI-бины, профили, интерцепторы, виртуальные потоки. Пригодится, когда проект на Java уже собирается и пора навести порядок в конфигурации. CX Codex +1 321установок 114-java-maven-search Разбирает отчёты об устаревших зависимостях и плагинах в вашем pom.xml и помогает искать координаты артефактов Maven. CX Codex +1 315установок

Похожие

sql-jdbc-access-design Samuel Berthe Проектирует, как продукт отдаёт клиентам свои данные по SQL: JDBC/ODBC-эндпоинт, шару в хранилище или хостед-запросы. Пригодится до того, как подключится первый клиент. CX Codex +1 7 800установок spring-framework Mindrally Скилл задаёт агенту правила разработки на Spring Framework и Spring Boot: структура слоёв, внедрение зависимостей, тесты, REST. CX Codex +1 731установок spring-boot Claude MPM Team Скилл по Spring Boot 3.x: подсказывает агенту, как устроены авто-конфигурация, внедрение зависимостей, REST-контроллеры и Actuator. Пригодится, когда пишете Java-сервис. CX Codex +1 309установок neo4j-driver-java-skill neo4j-contrib Подсказывает агенту, как подключить Java или Kotlin к Neo4j: драйвер, сессии, транзакции, пул соединений. CX Codex +1 770установок design-patterns decebals Справочник паттернов проектирования на Java с готовыми шаблонами кода. Помогает агенту внедрять Builder, Factory или Strategy при рефакторинге и проектировании архитектуры. CX Codex +1 336установок java-spring-boot pluginagentmarketplace Скилл помогает создавать бэкенд на Spring Boot 3: настраивать REST API, аутентификацию через Spring Security, доступ к базам через Spring Data и мониторинг Actuator. CX Codex +1 11 800установок

Рядом в теме «Бэкенд и API»

Всё по теме «Бэкенд и API» →

Вопросы о 311-frameworks-spring-jdbc

Как установить 311-frameworks-spring-jdbc в Claude?

Выполните npx skills add jabrena/plinth --skill 311-frameworks-spring-jdbc -a claude-code. Скилл окажется в ~/.claude/skills/311-frameworks-spring-jdbc/SKILL.md.

Что делает 311-frameworks-spring-jdbc?

Проверяет и переписывает JDBC-код на Spring: параметризованный SQL, JdbcClient, RowMapper, batch, транзакции, обработку исключений и тесты-срезы.

Нужно ли что-то настроить до запуска скилла?

Проект должен компилироваться. Скилл сам запускает ./mvnw compile или mvn compile и при ошибке сборки останавливается, не внося изменений.

Исходный текст

SKILL.md · Apache-2.0
---
name: 311-frameworks-spring-jdbc
description: Use when you need to write or review programmatic JDBC with Spring — including JdbcClient (Spring Framework 7+) as the default API, JdbcTemplate only where batch/streaming APIs require JdbcOperations, NamedParameterJdbcTemplate for legacy named-param code, parameterized SQL, RowMapper mapping to records, batch operations, transactions, safe handling of generated keys, DataAccessException handling, read-only transactions, streaming large result sets, and @JdbcTest slice testing. This should trigger for requests such as Review Java code for Spring JDBC (JdbcTemplate, JdbcClient, NamedParameterJdbcTemplate); Apply best practices for Spring JDBC data access in Java code; Detect and fix SQL injection risks in JDBC code; Improve transaction boundaries or exception handling for JDBC operations; Review JdbcClient usage in Spring Framework 7. Part of Plinth Toolkit
license: Apache-2.0
metadata:
  author: Juan Antonio Breña Moral
  version: 0.19.0
---
# Spring JDBC — JdbcClient (Spring Framework 7+)

Apply Spring JDBC guidelines with JdbcClient as the default; use JdbcTemplate / NamedParameterJdbcTemplate only for legacy code or APIs not covered by JdbcClient (batch updates, KeyHolder, RowCallbackHandler streaming).

**What is covered in this Skill?**

- Parameterized SQL (never concatenate user input)
- JdbcClient fluent API (Spring Framework 7+) — preferred for queries and updates
- Named parameters via JdbcClient; NamedParameterJdbcTemplate for legacy migration
- RowMapper, query(Class), and records
- Batch operations and generated keys (JdbcTemplate / JdbcOperations where needed)
- Safe handling of generated keys (KeyHolder; single-row JdbcClient updates)
- Service-layer @Transactional boundaries
- Read-only transactions (@Transactional(readOnly = true))
- Safe single-row access (optional() / findFirst() vs queryForObject)
- Streaming large result sets (RowCallbackHandler, ResultSetExtractor)
- DataAccessException handling (DuplicateKeyException, EmptyResultDataAccessException)
- @JdbcTest slice testing with @Sql fixtures

**Scope:** Apply recommendations based on the reference rules and good/bad code examples.

## Constraints

Before applying any Spring JDBC changes, ensure the project compiles. If compilation fails, stop immediately. After applying improvements, run full verification.

- **MANDATORY**: Run `./mvnw compile` or `mvn compile` before applying any change
- **SAFETY**: If compilation fails, stop immediately
- **VERIFY**: Run `./mvnw clean verify` or `mvn clean verify` after applying improvements
- **SQL INJECTION**: Never concatenate untrusted input into SQL strings — always use bind parameters
- **BEFORE APPLYING**: Read the reference for detailed rules and good/bad patterns

## When to use this skill

- Review Java code for Spring JDBC (JdbcTemplate, JdbcClient, NamedParameterJdbcTemplate)
- Apply best practices for Spring JDBC data access in Java code
- Detect and fix SQL injection risks in JDBC code
- Improve transaction boundaries or exception handling for JDBC operations
- Review JdbcClient usage in Spring Framework 7

## Workflow

1. **Read reference and assess project context**

Read `references/311-frameworks-spring-jdbc.md` and inspect the current project setup before proposing changes.

2. **Gather scope and decide target improvements**

Identify requested outcomes, constraints, and the minimum safe set of changes to apply.

3. **Apply framework-aligned changes**

Implement or refactor configuration/code following the reference patterns and project conventions.

4. **Run verification and report results**

Execute appropriate build/tests and summarize what changed, what was verified, and any follow-up actions.

## Reference

For detailed guidance, examples, and constraints, see [references/311-frameworks-spring-jdbc.md](references/311-frameworks-spring-jdbc.md).

© Juan Antonio Breña Moral · Apache-2.0 · jabrena/plinth

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой