Cursor-rules-java 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. Part of the skills-for-java project
install
source · Clone the upstream repo
git clone https://github.com/jabrena/cursor-rules-java
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jabrena/cursor-rules-java "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/511-frameworks-micronaut-jdbc" ~/.claude/skills/jabrena-cursor-rules-java-511-frameworks-micronaut-jdbc && rm -rf "$T"
manifest:
skills/511-frameworks-micronaut-jdbc/SKILL.mdsource content
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 (
) vs raw JDBC@512
Scope: Apply recommendations based on the reference rules and good/bad code examples.
Constraints
Compile before JDBC refactors; verify after changes.
- MANDATORY: Run
or./mvnw compile
before applying any changemvn compile - 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
or./mvnw clean verify
after applying improvementsmvn clean verify - 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
Reference
For detailed guidance, examples, and constraints, see references/511-frameworks-micronaut-jdbc.md.