Available in versions: Dev (3.21) | Latest (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11
JDBC Connection
Supported by ✅ Open Source Edition ✅ Express Edition ✅ Professional Edition ✅ Enterprise Edition
Sometimes, access to the JDBC java.sql.Connection is required from code that would otherwise use jOOQ. Your DSLContext and Configuration is configured with a JDBC Connection or DataSource via a org.jooq.ConnectionProvider, but rather than going through those SPIs, you can access (and acquire) a java.sql.Connection directly from your DSLContext. This can be done easily using DSLContext.connection() or DSLContext.connectionResult(). Just write:
// When you don't produce any results:
create.connection((Connection c) -> {
// Modify your JDBC connection or get information from it
c.setClientInfo("key", "value");
// Run statements directly with JDBC
try (Statement s = c.createStatement()) {
s.executeUpdate("INSERT INTO author (id, first_name, last_name) VALUES (3, 'William', 'Shakespeare')";
}
});
// When you produce results
int rows = create.connectionResult(c -> {
try (Statement s = c.createStatement()) {
return s.executeUpdate("INSERT INTO author (id, first_name, last_name) VALUES (3, 'William', 'Shakespeare')";
}
});
Feedback
Do you have any feedback about this page? We'd love to hear it!