用spring框架,持久化采用spring的JdbcTemplate,我需要在程序中取得连接池中的当前连接数,google了很久,没有结果。还望高人指点。数据源用的是第三方组件:org.enhydra.jdbc.pool.StandardXAPoolDataSourceapplicationContext.xml中的数据源配置:
<bean id="QueryDS" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource"
destroy-method="shutdown">
<property name="dataSource">
<bean class="org.enhydra.jdbc.standard.StandardXADataSource"
destroy-method="shutdown">
<property name="transactionManager" ref="jotm" />
<property name="driverName" value="${QueryProvider.driverClassName}" />
<property name="url" value="${QueryProvider.url}" />
<property name="maxCon" value="${QueryProvider.maxCon}" />
<property name="minCon" value="${QueryProvider.minCon}" />
</bean>
</property>
<property name="user" value="${QueryProvider.username}" />
<property name="password" value="${QueryProvider.password}" />
</bean>DAO中的代码:        JdbcTemplate jt = getJdbcTemplate();
        jt.getDataSource();
        jt.getDataSource().getConnection();在Dao中可以拿到JdbcTemplate 对象,可以取得DataSource,可以取得Connection,不知道用什么方法可以在DAO中拿到连接池中的当前连接数。会不会是数据源中的连接数信息都是封装的,不对外的。
请大牛指点。

解决方案 »

  1.   

    搞定了
    还是要谢谢CSDN和大家。。
      

  2.   

            // 取DB连接数
            StandardXAPoolDataSource xaPoolDataSource = (StandardXAPoolDataSource) SpringInit
                    .getApplicationContext().getBean("QueryDS");
            StandardXADataSource xaDataSource = (StandardXADataSource) xaPoolDataSource
                    .getDataSource();
            xaDataSource.getConnectionCount()方法就是从Spring容器中取得最源始的数据源实例StandardXADataSource,这里自然有各种方法取得连接的情报。