Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为jdbc连接编写包装器以记录时间、审核的有效方法_Java_Spring Data_Jndi_Spring Jdbc - Fatal编程技术网

Java 为jdbc连接编写包装器以记录时间、审核的有效方法

Java 为jdbc连接编写包装器以记录时间、审核的有效方法,java,spring-data,jndi,spring-jdbc,Java,Spring Data,Jndi,Spring Jdbc,我们使用spring数据结合JNDI查找来获取数据源并建立连接 <bean id="testDataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="java:comp/env/jdbc/testDs"/> </bean> 我正在寻找一种解决方案,在获得DB连接之前编写包装器,这样我就可以在日志中

我们使用spring数据结合JNDI查找来获取数据源并建立连接

<bean id="testDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName" value="java:comp/env/jdbc/testDs"/>
</bean>

我正在寻找一种解决方案,在获得DB连接之前编写包装器,这样我就可以在日志中记录时间,或者插入一条新记录,根据insert/delete/update语句将少量事务阻塞到少数表中


目前,我们没有考虑使用数据库触发器。任何帮助/建议/示例都将不胜感激。

您可以通过扩展BasicDataSource并向构造函数添加日志来创建自己的数据源类。您应该能够将JNDI数据源注入到新的数据源类中。

您可以通过扩展BasicDataSource并向构造函数添加日志来创建自己的数据源类。您应该能够将JNDI数据源注入到新的数据源类中。

Spring是否有可用的类,我可以扩展这些类来实现上述功能。请注意,您可以使用以下内容:org.apache.commons.dbcp.basicDatasource我尝试使用您告诉的方式。虽然我能够记录连接打开的时间,但我无法掌握执行的sql语句。根据文档getConnectionInitSqls(),我使用了以下方法。但它不起作用。知道如何记录sql语句吗?您必须扩展JdbcTemplate并重载方法以包含日志记录。另一种选择是使用AOP执行日志记录。我不是AOP专家,所以您可能想在考虑AOP的情况下重新提问。谢谢我使用动态代理记录sql语句。下面是我遵循的链接。Spring是否有任何可用的类可以扩展以实现上述功能。请注意,您可以使用以下内容:org.apache.commons.dbcp.basicDatasource我尝试使用您告诉的方式。虽然我能够记录连接打开的时间,但我无法掌握执行的sql语句。根据文档getConnectionInitSqls(),我使用了以下方法。但它不起作用。知道如何记录sql语句吗?您必须扩展JdbcTemplate并重载方法以包含日志记录。另一种选择是使用AOP执行日志记录。我不是AOP专家,所以您可能想在考虑AOP的情况下重新提问。谢谢我使用动态代理记录sql语句。下面是我遵循的链接。