我使用jooq来处理Wildfly Web应用程序中PostgreSQL数据库上的SQL查询。根据{{3}}上的示例,DSLContext通过CDI注入我的bean。 bean看起来像这样:
public class Foo {
private @Inject DSLContext jooq;
...
public boolean update....
{
...
try {
jooq.doStuff();
}
catch(Exception e) {
System.out.println(e.getCause().getMessage());
}
finally {
jooq.close();
}
...
}
当我运行应用程序时,每个连接都会泄漏。我错过了什么?
答案 0 :(得分:1)
构造函数是关键点。
由于https://www.jooq.org/doc/3.10/manual/sql-building/dsl-context/connection-vs-datasource/上的文档说jooq将管理连接,因此传递数据源对象而不是连接对象可以解决问题:
public DSLContext getDSLContext() throws SQLException {
return DSL.using(ds, SQLDialect.MYSQL);
}
http://awolski.com/integrating-jooq-easy/ 中的