博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【hibernate系列】采用p6spy+SQLProfiler完整显示hibernate的S...
阅读量:6840 次
发布时间:2019-06-26

本文共 1585 字,大约阅读时间需要 5 分钟。

  hot3.png

    虽然在hibernate中有show_sql选项,但是显示出来的语句大多类似
    select * from xxx where value=?
    但是有时候我们需要得到完整的SQL语句,怎么办呢?使用P6SPY就可以完成这个任务

    p6spy是一个开源软件,它可以跟踪任何使用jdbc的应用产生的数据库操作。特别适合于监控ejb服务器产生的 sql statements。

    官方网址:
    目前p6spy 适用的应用服务器包括jboss, atg, orion, jonas, iplanet, weblogic, websphere, resin and tomcat.

下面我介绍一下p6spy在tomcat应用程序上安装的步骤:

(1),下载zip包
(2)解压出p6spy.jar spy.properties两个文件
(3)将p6spy.jar 放入应用程序的WEB-INF/lib目录,将spy.properties放入WEB-INF/classes目录
(4)修改spy.properties

    realdriver  =com.mysql.jdbc.Driver  将这行前面的#去掉

    logfile     = c:/spy.log  修改一个你需要的日志文件名
   
(5)修改hibernate.xml,修改connection.driver_class的值为com.p6spy.engine.spy.P6SpyDriver
(6)重启tomcat
(7)这样在c:/下的spy.log记录了数据库的访问情况。

 

 

用p6spy可以达到显示的那些参数原值的目的,但可读性差。可以利用SQL Profiler来处理这个事情。

解压sqlprofiler-0.3-bin.zip,把spy.properties拷贝到项目中,覆盖之前的spy.properties,要改的也只是realdriver,可以看到配置文件中有log4j,这就需要我们吧log4j的jar拷贝到应用中。

sqlprofiler.jar并不需要拷贝到应用中,他需要我们来执行:
java -Xmx256m -jar sqlprofiler.jar

spy.properties片断:
log4j.appender.SQLPROFILER_CLIENT=org.apache.log4j.net.SocketAppender
log4j.appender.SQLPROFILER_CLIENT.RemoteHost=localhost
log4j.appender.SQLPROFILER_CLIENT.Port=4445
log4j.appender.SQLPROFILER_CLIENT.LocationInfo=true
p6spy 通过SocketAppender 向sqlprofiler发送日志信息,sqlprofiler启动后就开始监听本机的4445端口,在应用中执行数据库操作后就可以在sqlprofiler的界面中看到sql语句的执行结果。

最后一个需要注意的问题就是需要先启动 SQLProfiler,此时状态栏显示P6SPY为未连接状态,然后再启动应用程序或者 Tomcat 等应用服务器,应用运行后SQLProfiler状态栏就会变为连接状态。这是因为 SQLProfiler 默认使用的是 Log4j 的 SocketAppender,所以要先启动。否则,会因你的应用程序或应用服务器中的 Web 应用之类的因连接不到 Socket 的服务器(SQLProfiler 相当于 Socket 的服务器)而发生错误,可以通过 SQL Profiler 控制界面最下面的连接状态就可以知道是否有程序连接上来。

转载于:https://my.oschina.net/iblike/blog/37612

你可能感兴趣的文章
Solaris下挂载光盘
查看>>
说说苏宁易购
查看>>
Hibernate 和 Mybatis 两者相比的优缺点
查看>>
负载均衡器部署方式和工作原理
查看>>
MBProgressHUD使用
查看>>
例说DNS递归/迭代名称解析原理
查看>>
逐步展示
查看>>
台湾一老师演讲词值得中国人深思
查看>>
看2014视频三国杀
查看>>
微信“封杀”网易云音乐,真的错了吗?
查看>>
支付宝架构师:从工程师到架构师的成长之路
查看>>
android系统如何自适应屏幕大小
查看>>
十周第二次课(5月28日)
查看>>
推荐系统之信息茧房问题
查看>>
maven参数
查看>>
predis连接redis sentinel的问题处理
查看>>
js写码良好习惯
查看>>
shmall参数设置不当引起数据库启动时报out of memory报错
查看>>
Linux查看性能的命令介绍
查看>>
Web模糊测试工具Powerfuzzer
查看>>