What problem does it solve? Generated or hand-written Java code against MariaDB often carries assumptions from other JDBC drivers — wrong URL schemes, unnecessary Class.forName calls, MySQL-style fetch-size streaming, or expecting a single generated key from batch inserts — producing bugs, SQL injection risk, or OOM failures. ## Core Features & Use Cases - Driver behavior corrections: Documents that JDBC 4 auto-registers the driver, the jdbc:mariadb:// URL scheme (with permitMysqlScheme for jdbc:mysql:), and that useServerPrepStmts defaults to false so parameter substitution is client-side. - Batch and transaction guidance: Covers addBatch()/executeBatch() with the COM_STMT_BULK protocol, getGeneratedKeys() returning one id per row, and autocommit defaulting to true requiring setAutoCommit(false) for transactions. - Pooling, failover, and error handling: Explains MariaDbPoolDataSource, multi-host failover URLs (sequential:, loadbalance:), sslMode TLS options, and the standard java.sql.SQLException hierarchy. - Use Case: When reviewing a Java service that loops single executeUpdate() calls for bulk inserts, apply this Skill to rewrite it with batched prepared statements and correctly read all generated keys. ## Quick Start Ask the AI to write or review Java code that connects to MariaDB using the mariadb-java-client JDBC driver, such as a pooled batch insert with generated keys.