如何获取jdbcTemplate使用的当前Connection对象

时间:2017-06-23 05:16:33

标签: java spring jdbc spring-jdbc jdbctemplate

我正在寻找一种方法来拦截JDBCTemplate内部创建的连接,即JDBCTemplate调用函数$(function(){ $(".js-disable-form-individual").on("submit", function() { e.preventDefault(); $(this).find("input[type=submit]").prop('disabled', true); }) $('.js-disable-btn').on('click',function() { $('#loading-modal').modal('show'); }) }); 时创建的连接。

例如:如果我使用getConnection()我想获取用于完成此更新语句的连接的信息。有没有办法在此语句的执行中或执行后查看连接的元数据?我正在使用C3P0连接池。

许多人建议使用jdbcTemplate.update(query);,但这只是从池中获取新连接并且无法解决我的问题。

这个帖子也有效地提出了同样的问题:How to get current Connection object in Spring JDBC

2 个答案:

答案 0 :(得分:0)

我正面临着同样的问题。我想知道模板用于更新或运行查询的当前连接。我测试了以下两种方法,但是它们都每次都返回新的连接,而不是当前用于执行语句的连接?

Connection conn = DataSourceUtils.getConnection(template.getDataSource());
        Connection con=template.getDataSource().getConnection();

@Bean
public DataSource dataSource() throws NamingException {
    javax.naming.InitialContext ctx = new javax.naming.InitialContext();
    DataSource dataSource = (javax.sql.DataSource) ctx.lookup(dsnName);
    return dataSource;
}

答案 1 :(得分:0)

jdbcTemplate.getDataSource().getConnection();

通过使用上面的行,我们可以获取连接对象。