What problem does it solve? Writing a new DAO by hand often produces code that clashes with the project's existing persistence style — wrong retry placement, inconsistent logging, unsafe SQL, or guessed column names. This Skill creates or completes a JDBC DAO/repository for a Java entity that is indistinguishable from the DAOs already in the project. ## Core Features & Use Cases - Pattern-mirroring DAO generation: Reads an existing DAO plus the connection provider to detect where retry, locking, and logging live, then writes the new DAO in that exact form instead of imposing a fixed style. - Non-negotiable safety invariants: Enforces parameterized PreparedStatement for all external input (anti-injection), try-with-resources on every Connection/Statement/ResultSet, explicit column lists (never SELECT *), and atomic transactions only for multi-step operations. - Real round-trip verification: Compiles the DAO and, when a test database is available, runs insert → findById → list → delete to prove the column-to-field mapping, with declared skips when no database exists. - Use Case: In a Java desktop app using UCanAccess/Access, ask for the DAO of a Training entity and receive a class in the project's persistence package with PT-BR methods, snake_case columns, void writes, and clean throws SQLException propagation because retry and logging live in the Database provider. ## Quick Start Ask the assistant to create the JDBC DAO for a specific entity, naming the real table and columns or authorizing it to read them from the project schema.