Use when you need programmatic JDBC in Quarkus — Agroal DataSource, parameterized SQL, transactions, batching, and Dev Services. This should trigger for requests such as Review JDBC or SQL data access in a Quarkus project; Improve transactions and parameter binding for Quarkus JDBC; Translate SQLException to domain exceptions or stream large result sets; Fix CDI self-invocation bypassing @Transactional in Quarkus; Review Agroal DataSource usage in Quarkus JDBC. Part of Plinth Toolkit
SkillScore77Maintained
Automatic
◆Coding pack
Last verified 8/20/2026
What it changes
Passed 15 of 20 test cases with the skill, and 13 of 20 without it.
Without skill64%
With skill77%
Checks it passed that the model alone missed
Halts refactoring immediately if initial compilation fails.
Catches SQLException explicitly within the data access layer.
Specifies running ./mvnw compile or mvn compile before modifying code.
and 4 more in the full report
4 fixed13 passed either way4 still failing1 broke
Pass-rate lift
+14 pp
Tokens
-15%
Agent turns
0%
Response time
-40%
Model gemini-3.6-flashMeasured 8/20/2026v117 of 22 cases passed with skill · 20 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 4 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 4
Prompt
Before applying JDBC refactoring or performance changes to a Quarkus code base, what mandatory build step must be executed first to safeguard the codebase?
What was checked, without and with the skill
Checked
Without skill
With skill
Specifies running ./mvnw compile or mvn compile before modifying code.
Missed
Passed
Halts refactoring immediately if initial compilation fails.
Missed
Passed
case-18 · gemini-3.6-flash · 8/20/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md60 lines2 files
Quarkus JDBC — programmatic SQL
Apply programmatic JDBC patterns in Quarkus with safe SQL and clear transactions.
What is covered in this Skill?
Injected javax.sql.DataSource (Agroal-backed) 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; 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 propagation types (TxType.REQUIRES_NEW for independent commits)
CDI self-invocation pitfall: always call transactional methods through the injected proxy
Dev Services for databases in dev/test
When to prefer Panache (@412) 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 Quarkus project
Improve transactions and parameter binding for Quarkus JDBC
Translate SQLException to domain exceptions or stream large result sets
Fix CDI self-invocation bypassing @Transactional in Quarkus
Use when you need MongoDB persistence in Quarkus — including Panache Mongo entities/repositories, document design, indexes, transactions where applicable, and error handling. This should trigger for requests such as Add MongoDB in Quarkus; Review Quarkus Mongo Panache design; Improve Mongo error handling in Quarkus services; Model MongoDB documents for a Quarkus service; Configure Quarkus MongoDB clients codecs or transactions. Part of Plinth Toolkit