最近公司项目用到iBatis,开发环境是JDeveloper + Oracle10g,在进行调试的时候感觉很不方便,因为后台并不打印SQL语句,而sqlmap.xml文件中的Sql语句错误又很难被发现,因此想到了用P6Spy帮一下忙,大致配置过程如下:
1、下载P6Spy.jar文件,虽然p6spy很久没有更新了,但是也能满足我只是“看看SQL语句“的需要了。
http://www.p6spy.com
直接下载p6spy-src.zip文件,因为要自定义p6spy的输出格式,而默认的输出中SQL中的空格导致察看SQL很不方便。
2、解压缩,是一个Ant编译目录,打开build.xml文件,里面定义了编译所需要用到的JAR包。
其中jboss.jar为2.4.6,比较早的版本,如果应用服务器不是jboss的话可以把com\p6spy目录下的management目录删除,这样编译的时候就可以不用找jboss.jar文件了(不好找)。
3、将com\p6spy\engine\logging\appender\FormattedLogger.java文件中的logSQL()方法更改为如下:
java 代码
- public void logSQL(int connectionId,long elapsed,String category,
- String prepared,String sql){
-
-
-
- sql = sql.replaceAll("\\s+"," ");
-
- String logEntry = "|" + category + "|" + sql;
- logText(logEntry);
- }
4、运行Ant进行编译,默认目标即是生成jar文件。
5、将dist\p6spy.jar拷贝到项目WEB-INF\lib目录下,也可以定义为自定义包变量引入到工程中。
6、将spy.properties文件拷贝到目录WEB-INF\classes目录下。
7、更改spy.properties文件,将项目中用到的数据库驱动改为com.p6spy.engine.spy.P6SpyDriver,并将spy.properties文件中的realdriver改为真实连接数据库的driver.
8、完成。
- p6spy.rar (88.5 KB)
- 描述: 更改后的p6spy.jar和spy.properties文件
- 下载次数: 646
分享到:
相关推荐
本文将详细探讨如何使用P6Spy来打印iBatis(现为MyBatis)执行的SQL语句,以便进行性能分析和调试。 首先,我们需要了解P6Spy的工作原理。P6Spy通过替换JDBC驱动,将自己插入到应用程序和数据库之间,监听所有的SQL...
这是自己整合的Spring 3.0+Struts2+Mybatis 3 + p6spy...如果大家不想使用p6spy跟踪SQL,可以把applicationContext_common.xml中的dataSourceImpl改成dataSource,然后把现在的P6DataSource删除即可。 祝大家使用愉快!
p6spy支持jpa(如hibernate、ibatis/mybatis)打印完整sql。 此为本人在p6spy源码基础上进行修改,使其能在sql日志中过滤resultset,是sql更简洁,开发更方便。
<property name="JDBC.Driver" value="com.p6spy.engine.spy.P6SpyDriver"/> <!-- 连接池配置 --> ``` 这里配置了数据库驱动、连接URL、用户名和密码,还包含了连接池的相关配置,如最大活跃连接数、最大...
在这种情况下,确保没有其他日志实现类冲突,或者可以考虑使用p6spy这样的第三方库来实现SQL的打印,以获得更详细的分析和日志记录。 总之,通过配置MyBatis-Plus的日志实现为`StdOutImpl`,开发者可以在控制台清晰...
Maven框架项目该项目不再更新维护,请移步该项目基于maven3.0构建的,项目中融合了Struts1 , Struts2 , Spring , SpringMVC , ...项目中的持久化框架sql语句的跟踪分别采用log4jdbc结合log4j和p6spy ,在控