Estoy usando DriverManager.getConnection(url, prop) para obtener la conexión. Estoy tratando de inyectar los interceptores jdbc usando propiedades como las siguientes, pero no funciona.
Properties prop = new Properties(); ... prop.setProperty("jdbcInterceptors", "com.amazonaws.xray.sql.mysql.TracingInterceptor;");Sin embargo, cuando intentamos hacerlo a través de la fuente de datos, funciona.
import org.apache.tomcat.jdbc.pool.DataSource; DataSource source = new DataSource(); source.setUrl("url"); source.setUsername("user"); source.setPassword("password"); source.setDriverClassName("com.mysql.jdbc.Driver"); source.setJdbcInterceptors("com.amazonaws.xray.sql.mysql.TracingInterceptor;"); No estoy seguro de qué está mal con las propiedades de DriverManager .
Estos interceptores son una característica de Tomcat org.apache.tomcat.jdbc.pool.DataSourceProxy y su subclase org.apache.tomcat.jdbc.pool.DataSource . Esta no es una función de JDBC en sí, ni una función del controlador JDBC que está utilizando, por lo que la única forma de acceder es a través de una fuente de datos de Tomcat.
En resumen, no funciona con DriverManager porque esta característica no existe en DriverManager .