如何使用hibernate为mssql server配置p6spy?

时间:2017-08-16 16:59:40

标签: sql-server hibernate p6spy

在我们的网络应用程序中,我们使用spring,hibernate& sql server 2016 as db。我们使用jndi连接到数据库。要记录hibernate执行的所有查询,我正在尝试实现p6spy。

以下是我所做的更改。

更改资源信息
<Resource name="jdbc/eportalcore" auth="Container" 
            type="javax.sql.DataSource" 
            driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
            url="jdbc:sqlserver://localhost:1433;databaseName=eportal-core;" 
            username="eportaldbadmin" 
            password="P@ssw0rd" 
            maxTotal="100" 
            maxIdle="20" 
            minIdle="5" 
            maxWaitMillis="10000" />

<Resource name="jdbc/eportalcore" auth="Container" 
            type="javax.sql.DataSource" 
            driverClassName="com.p6spy.engine.spy.P6SpyDriver" 
            url="jdbc:p6spy:sqlserver://localhost:1433/eportal-core" 
            username="eportaldbadmin" 
            password="P@ssw0rd" 
            maxTotal="100" 
            maxIdle="20" 
            minIdle="5" 
            maxWaitMillis="10000" />

并在tomcat目录的lib文件夹下添加了spy.properties文件。此外,我已将p6spy-3.0.0.jar放在lib文件夹中。

但在此之后我的应用程序没有连接到数据库。我在这做什么错?如果我删除此更改,那么它正常工作。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我有同样的问题,这就是我做的工作。注意我的数据库连接属性在属性文件中(不应该是一个问题),我使用tomcat作为应用程序服务器。您还可以在项目中将P6Spy添加为Maven依赖项。

之前: db.properties

db.driver=net.sourceforge.jtds.jdbc.Driver
db.url=jdbc:jtds:sqlserver://${db.server}/${db.name};useNTLMv2=true;domain=XX

之后Download(latest version when writing this response)该项目。将p6spy-3.7.0.jar和spy.properties放在tomcat / lib文件夹中。如下所述更改spy.properties和应用程序属性。重新启动应用程序,你应该找到一个spy.log来正常打印你的日志。

db.properties

db.driver=com.p6spy.engine.spy.P6SpyDriver
db.url=jdbc:p6spy:jtds:sqlserver://${db.server}/${db.name};useNTLMv2=true;domain=XX

spy.properties

driverlist=net.sourceforge.jtds.jdbc.Driver