P6spy 和 SqlProfiler 打印JDBC真实SQL

这篇文章只是分享这个软件而已,更直白点说,只要上网一搜就会有大量关于这个文章。

即使你不愿意上网再查,没关系,使用很简单,而且附件内有使用的文档,详尽描述了使用方式。 

附件有使用到的两个软件和使用手册,仅供参考。

 

既然写了,那就啰嗦两句,使不明真相的人了解一下到底分享的是什么。 

使用hibernate开发的朋友都知道,想在使用hibernate进行持久层操作的时候显示对应的sql语句,可以设置hibernate配置文件中的show_sql属性为true来实现这个需求。可是这个功能比较让人失望,因为他的语句是没错,但是参数值全是?这个带传入的参数符号,而且没有对本次访问做相关统计。

p6spy这个工具,其实就是一个中间驱动,在数据库调用端和实际数据库驱动间做一个代理人的角色,进而加入了一些特有的辅助功能。

说白了,使用他,就可以直白的看见和数据库之间交互的SQL、返回的结果、耗时等。

 

在此,说一下使用中的几个问题:

  •  首先得保证,你的启动在没有使用该程序前是可以正常运行的。
  • sqlprofiler配合使用时,一定要先启动sqlprofiler,再启动程序。
  • 如果是在Tomcat下使用,则要把spy.properties拷贝到Tomcat的Bin下一份,否则会报错:No suitable driver,Could not get database url。
  • 其次,启动服务后发现没有连接到sqlprofiler,那是因为spy.properties中SocketAppender指向时,使用的localhost,这里改为127.0.0.1即可。有人会说了,这个不一样吗,我只能说:不多解释。
  • 还有人说,p6spy.jar如果部署在具有空格的目录下,就会出现找不到驱动这种情况,这个我还真没发现,不过操作系统不同时,还是注意一下这个问题吧。

好吧,上货! 

 

请您到ITEYE网站看 java小强 原创,谢谢!
http://cuisuqiang.iteye.com/

自建博客地址:http://www.javacui.com/ ,内容与ITEYE同步!

你可能感兴趣的:(Java开源)