P6spy 跟 SqlProfiler 打印JDBC真实SQL
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/!
1 楼
iwindyforest
22 小时前
这个应该是针对sqlserver数据库的, 别的数据可以可能用不上的吧?
Druid连接池配合filter的属性设置就可以查看完整的sql语句了, 而且兼容几乎所有数据库, 不受框架限制.
Druid连接池配合filter的属性设置就可以查看完整的sql语句了, 而且兼容几乎所有数据库, 不受框架限制.
2 楼
cuisuqiang
16 小时前
iwindyforest 写道
这个应该是针对sqlserver数据库的, 别的数据可以可能用不上的吧?
Druid连接池配合filter的属性设置就可以查看完整的sql语句了, 而且兼容几乎所有数据库, 不受框架限制.
Druid连接池配合filter的属性设置就可以查看完整的sql语句了, 而且兼容几乎所有数据库, 不受框架限制.
都能用