如何记录用<sql:query>或<sql:update>

时间:2019-05-07 04:52:16

标签: java jsp logging tomcat9

我有一个包含以下代码的JSP文件

<sql:update var="result" dataSource="${datasource}">
            INSERT INTO movie (name,rating) values (?,?)

            <sql:param value="${mtgReq.params['name']}"/>
            <sql:param value="${mtgReq.params['rating']}"/>
       </sql:update>
       <c:set target="${outputMap}" property="postResult" value="${result}"/>

我想记录与参数值一起执行的SQL查询。就像在Hibernate中一样。
唯一的问题是,我没有在后台使用任何框架,而只是纯JDBC。
我发现了这个logging framework example,它在DataSource对象上添加了代理层并记录了查询。
唯一的问题是,他们的配置可以与DataSource的{​​{1}}文件中全局声明的server.xml一起使用,但是我希望它可以在应用程序级别进行配置,以便可以为每个Web应用程序进行配置,因此我遵循了他们的示例,但在应用程序的context.xml文件中写了相同的内容,这就是它的样子

Tomcat

上面的配置对我不起作用,并给我这个错误

<?xml version="1.0" encoding="UTF-8"?>
<Context cookies="false" path="/testweb" privileged="true" reloadable="true">
    <Resource auth="Container"
             closeMethod="close"
             connectionTimeout="300000"
             dataSource.implicitCachingEnabled="true"
             driverClassName="org.hsqldb.jdbc.JDBCDriver"
             factory="com.zaxxer.hikari.HikariJNDIFactory"
             idleTimeout="120000"
             jdbcUrl="jdbc:hsqldb:file:C:\Softwares\apache-tomcat-9.0.19\databases\testWeb\testdb;shutdown=true"
             maxLifetime="1800000"
             maximumPoolSize="2"
             minimumIdle="1"
             name="jdbc/testwebT"
             username="sa"
             password=""
             poolName="testSamplePool"
             type="javax.sql.DataSource"/>
    <Resource name="jdbc/myProxy" 
          auth="Container"
          type="net.ttddyy.dsproxy.support.ProxyDataSource"
          factory="net.ttddyy.dsproxy.support.jndi.ProxyDataSourceObjectFactory"
          description="ds"
          listeners="count,sysout"
          proxyName="DS-PROXY"
          format="json"
          dataSource="java:jdbc/testwebT"/>
    <ResourceLink name="jdbc/testweb" global="jdbc/myProxy" type="javax.sql.DataSource"/>
    <JarScanner scanManifest="false"/>
    <WatchedResource>/WEB-INF/lib/</WatchedResource>
</Context>

有人可以告诉我我在哪里犯错吗? 预先感谢。

0 个答案:

没有答案