CtrlK
BlogDocsLog inGet started
Tessl Logo

511-frameworks-micronaut-jdbc

Use when you need programmatic JDBC in Micronaut — pooled DataSource, parameterized SQL, io.micronaut.transaction.annotation.Transactional, batching, and domain exception translation. This should trigger for requests such as Review JDBC or SQL data access in a Micronaut project; Improve transactions and parameter binding for Micronaut JDBC; Translate SQLException to domain exceptions or stream large result sets; Fix self-invocation bypassing @Transactional in Micronaut. Part of cursor-rules-java project

74

Quality

67%

Does it follow best practices?

Impact

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Optimize this skill with Tessl

npx tessl skill review --optimize ./skills/511-frameworks-micronaut-jdbc/SKILL.md
SKILL.md
Quality
Evals
Security

Micronaut JDBC — programmatic SQL

Apply programmatic JDBC patterns in Micronaut with safe SQL and clear transactions.

What is covered in this Skill?

  • Injected javax.sql.DataSource (Hikari-backed with micronaut-jdbc-hikari) and try-with-resources for Connection / PreparedStatement
  • PreparedStatement with bind parameters — never string concatenation
  • Mapping ResultSet rows to Java records (dedicated mapRow method)
  • Safe single-row queries with Optional<T>; never assume rs.next() succeeds
  • SQLException translation to domain exceptions (catch-translate-rethrow)
  • Streaming large result sets with setFetchSize to avoid OOM
  • Batch updates with addBatch / executeBatch for bulk inserts
  • @Transactional service boundaries and TransactionDefinition.Propagation (e.g. REQUIRES_NEW for independent commits)
  • Self-invocation pitfall: call transactional collaborators through injected beans, not this.method()
  • SQL text blocks for multi-line SQL (upserts, dialect-specific clauses)
  • When to prefer Micronaut Data (@512) vs raw JDBC

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

Constraints

Compile before JDBC refactors; verify after changes.

  • MANDATORY: Run ./mvnw compile or mvn compile before applying any change
  • PREREQUISITE: Project must compile before applying JDBC improvements
  • SAFETY: If compilation fails, stop immediately
  • BLOCKING CONDITION: Compilation errors must be resolved by the user before proceeding
  • VERIFY: Run ./mvnw clean verify or mvn clean verify after applying improvements
  • BEFORE APPLYING: Read the reference for detailed rules and examples

When to use this skill

  • Review JDBC or SQL data access in a Micronaut project
  • Improve transactions and parameter binding for Micronaut JDBC
  • Translate SQLException to domain exceptions or stream large result sets
  • Fix self-invocation bypassing @Transactional in Micronaut

Workflow

  1. Read reference and assess project context

Read references/511-frameworks-micronaut-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/511-frameworks-micronaut-jdbc.md.

Repository
jabrena/cursor-rules-java
Last updated
Created

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.