开发者社区> 问答> 正文

getConnection返回对象包含获取连接的profile信息

主要上层需要做sql分段profile,排查sql慢的问题,希望getConnection返回的对象 能够包含 从连接池等待空闲连接的时间和实际创建连接的时间。

原提问者GitHub用户bucketli

展开
收起
山海行 2023-07-05 22:02:58 47 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在Java中,通过JDBC获取数据库连接时,可以使用java.sql.Connection接口提供的getMetaData()方法来获取连接的元数据信息。其中,元数据信息包括了数据库的相关信息,例如数据库名称、版本、驱动程序名称、URL等。如果使用了Druid连接池,还可以获取连接的监控信息,例如连接的创建时间、活跃时间、持续时间、SQL执行次数等。

    2023-07-29 23:10:59
    赞同 展开评论 打赏
  • 问题已修复,请用新版本 https://github.com/alibaba/druid/releases/tag/1.1.14

    原回答者GitHub用户wenshao

    2023-07-06 12:58:38
    赞同 展开评论 打赏
  • Druid连接池提供了一些方法来获取连接的详细信息,包括从连接池等待空闲连接的时间和实际创建连接的时间。您可以使用以下方法来获取这些信息:

    1. 获取连接的等待时间:在获取连接之后,您可以调用getConnection方法的getConnectionWaitMillis方法来获取从连接池等待空闲连接的时间(以毫秒为单位)。例如:
    Connection connection = dataSource.getConnection();
    long waitTime = connection.unwrap(DruidPooledConnection.class).getConnectionWaitMillis();
    

    getConnectionWaitMillis方法返回一个long类型的值,表示从连接池获取连接之前等待的时间。

    1. 获取连接的创建时间:在获取连接之后,您可以调用getConnection方法的getConnectTimeMillis方法来获取连接的实际创建时间(以毫秒为单位)。例如:
    Connection connection = dataSource.getConnection();
    long createTime = connection.unwrap(DruidPooledConnection.class).getConnectTimeMillis();
    

    getConnectTimeMillis方法返回一个long类型的值,表示连接的实际创建时间。

    2023-07-06 08:51:48
    赞同 展开评论 打赏
问答分类:
SQL
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载