Agent skill

311-frameworks-spring-jdbc

Use when you need to write or review programmatic JDBC with Spring — including JdbcClient (Spring Framework 6.1+) 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. Part of the skills-for-java project

Stars 350
Forks 63

Install this agent skill to your Project

npx add-skill https://github.com/jabrena/cursor-rules-java/tree/main/skills/311-frameworks-spring-jdbc

Metadata

Additional technical details for this skill

author
Juan Antonio Breña Moral
version
0.14.0

SKILL.md

Spring JDBC — JdbcClient (Spring Framework 6.1+)

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 6.1+) — 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

Reference

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

Expand your agent's capabilities with these related and highly-rated skills.

jabrena/cursor-rules-java

513-frameworks-micronaut-db-migrations-flyway

Use when you need to add or review Flyway database migrations in a Micronaut application — micronaut-flyway, db/migration scripts, flyway.datasources.* configuration, and alignment with JDBC or Micronaut Data. Part of the skills-for-java project

350 63
Explore
jabrena/cursor-rules-java

014-agile-user-story

Guides the creation of agile user stories and Gherkin feature files. Use when the user wants to create a user story, write acceptance criteria, define Gherkin scenarios, or author BDD feature files. Part of the skills-for-java project

350 63
Explore
jabrena/cursor-rules-java

502-frameworks-micronaut-rest

Use when you need to design, review, or improve REST APIs with Micronaut — including @Controller routes, HTTP status codes, DTOs, Bean Validation, exception handlers, pagination, idempotency, ETag/If-Match, caching headers, versioning, contract-first OpenAPI (OpenAPI Generator), optional runtime OpenAPI via micronaut-openapi, and security annotations. Part of the skills-for-java project

350 63
Explore
jabrena/cursor-rules-java

114-java-maven-search

Covers Maven Central search (Search API, maven-metadata.xml, artifact URLs) and project-local update reports via versions-maven-plugin (display-property-updates, display-dependency-updates, display-plugin-updates). Use when finding or verifying coordinates, browsing Central, or checking what newer versions apply to the user’s pom.xml. Part of the skills-for-java project

350 63
Explore
jabrena/cursor-rules-java

323-frameworks-spring-boot-testing-acceptance-tests

Use when you need to implement acceptance tests from a Gherkin .feature file for Spring Boot applications — including finding scenarios tagged @acceptance, implementing happy path tests with TestRestTemplate, @SpringBootTest, Testcontainers with @ServiceConnection for DB/Kafka, and WireMock for external REST stubs. Requires .feature file in context. Part of the skills-for-java project

350 63
Explore
jabrena/cursor-rules-java

200-agents-md

Use when you need to generate an AGENTS.md file for a Java repository — covering project conventions, tech stack, file structure, commands, Git workflow, and contributor boundaries — through a modular, step-based interactive process that adapts to your specific project needs. Part of the skills-for-java project

350 63
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results