jabrena/plinth

311-frameworks-spring-jdbc

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 trig…

First seen Mar 25, 2026

Installation

$ npx skills add jabrena/plinth --skill 311-frameworks-spring-jdbc

Summary

  • 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

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from jabrena/plinth · top by installs.

npx skills add jabrena/plinth

Browse all from jabrena/plinth

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 437
License LICENSE
Default branch main
Open issues 22
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Version0.18.0
LicenseApache-2.0
More metadata
author
Juan Antonio Breña Moral
version
0.18.0

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,909 B
  • docs SUMMARY.md 901 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 262 installs

SKILL.md

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.

  1. Gather scope and decide target improvements

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

  1. Apply framework-aligned changes

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

  1. 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).