我使用的是QueryDSL(但它不是QueryDSL特定的问题),它需要JDBC连接才能工作。我必须确保连接正确关闭等。
我考虑两个选择:
简单
try(Connection con = dataSource.getConnection()) {
//here goes my QueryDSL code
}
使用ConnectionCallback
jdbcTemplate.execute(new ConnectionCallback<String>() {
public String doInConnection(Connection con) throws SQLException {
//here goes my QueryDSL code
}
}
是什么让我在这里使用jdbcTemplate而不是使用资源?这在某种程度上与交易处理有关吗?
DataSource是由JNDI从JBoss获得的。