问题中的几乎所有内容。我刚刚发现 p6spy 与 hibernate 相关联,看到实际的 sql 查询真的很酷,尽管我对它的工作原理感到很困惑。
那么它是怎样工作的?
问问题
2197 次
1 回答
2
p6spy 的基本思想是这样的:
- 取决于你在你的代码中选择
Datasource
或使用JDBC driver
,你所做的不是引用真实的,而是指定 p6spy 特定的:com.p6spy.engine.spy.P6SpyDriver
或com.p6spy.engine.spy.P6DataSource
分别(有关完整文档,请参阅:p6spy.readthedocs.io/en/latest/configandusage.html)。 - 之后您在
spy.properties
文件中配置真实的(分别使用realdriver
或realdatasource
属性) - 根据配置,您可以实现 sql 语句的日志记录(使用
com.p6spy.engine.logging.P6LogFactory
) - 所以为了回答你的问题,我们的想法是所有 jdbc 调用(语句执行、事务相关的东西)都将由 p6spy 包装(代理),并且根据您的配置,这些可以通过文件记录器(使用
appender=com.p6spy.engine.logging.appender.FileLogger
)、stdout 记录器来记录(使用appender=com.p6spy.engine.logging.appender.StdoutLogger
)或 log4j 记录器(使用appender=com.p6spy.engine.logging.appender.Log4jLogger
:)
如果对更多细节感兴趣,请随时询问,或查看项目本身:https ://github.com/p6spy/p6spy
于 2013-09-08T05:40:30.813 回答