在采用p6spy监控sql语句时,可以查看到preparedstatement中使用?来表现的具体的值,当直接使用preparedstatement时,可以指定传入的变量值的类型,如下:
PreparedStatement ps = con.prepareStatement("select * from user where id=?:)
ps.setLong(1,new Long(100));
这时通过p6spy监控的sql语句为:
select * from user where id=100
如果采用spring jdbctemplate对数据库进行操作,代码如下:
jdbcTemplate.queryForObject("select * from user where id=?", new Object[]{new Long(100)}, new int[]{Types.BIGINT});
这时同通过p6spy监控的sql语句为:
select * from user where id='100'
但是通过跟踪springtemplate源代码发现,指定的参数类型Types.BIGINT已经传入了参数设定的方法中,值为-5,也按照相应的类型进行了设置,相当于执行了
ps.setLong(1,new Long(100));
但是p6spy并没有输出
select * from user where id=100
当使用p6spy监控Hibernate同样的方法生成的语句时也能够正确的输出:
select * from user where id=100
看来p6spy有时也会些“欺骗”行为:)
分享到:
- 2008-10-11 11:36
- 浏览 1953
- 评论(1)
- 论坛回复 / 浏览 (0 / 2980)
- 查看更多
相关推荐
P6spy是一个JDBC Driver的包装工具,p6spy通过对JDBC Driver的封装以达到对SQL语句的监听和分析,以达到各种目的。 p6spy的安装步骤: 1. 下载p6spy的安装包 2. 把p6spy的jar包放到Classpath中,如果是WEB App...
p6spy.jar 博文链接:https://lxy19791111.iteye.com/blog/131293
p6spy-sql监控 p6spy-sql监控 p6spy-sql监控
虽然在hibernate中有show_sql选项,但是显示出来的语句大多类似 select * from xxx where value=? 但是有时候我们需要得到完整的SQL语句,怎么办呢?使用P6SPY就可以完成这个任务
p6spy dataSource 配置 监听真实sql语句
通过 P6Spy 我们可以对 SQL 语句进行拦截,相当于一个 SQL 语句的记录器,这样我们可以用它来作相关的分析,比如性能分析。P6Spy 用 Log4J 来记录 JDBC 调用的日记信息。 自从 2003 年 11 月 30 日 P6Spy 版本 1.3 ...
p6spy-spring-boot-starter p6spy弹簧启动器说明基于p6spy的Spring Boot Starter实现玛文< dependency>< groupId>com.github.hiwepy</ groupId>< artifactId>p6spy-spring-boot-starter</ artifactId>< version>${...
p6spy简介,p6spy完整显示hibernate的SQL语句 包括参数,spring p6spy 配置
用 p6spy 来观察 Java 程序中执行的所有 SQL 语句.docx
这是自己整合的Spring 3.0+Struts2+Mybatis 3 + p6spy +ehcache的平台框架,内含一点示例代码,目前ehcache没有使用。直接编译后发布就能用 测试环境基于JDK1.6+Tomcat 6.0. 大家拿到后请根据实际情况修改 ...
# oracle driver # realdriver=oracle.jdbc.driver.OracleDriver # mysql Connector/J driver ... # informix driver ... # ibm db2 driver ...# the mysql open source driver realdriver=org.gjt.mm.mysql.Driver ...
NULL 博文链接:https://hqhe-nj.iteye.com/blog/342372
p6spy.rar工具类,可输出完整sql,支持jdk1,5,亲测可用
利用P6SPY +SQL Profiler调试、记录、统计web app对数据库的操作, 可以查看到PreparedStatment的执行最终的SQL语句。 有详细的操作说明 下面的这个是集成的完整版。。太大了就不上传了。自己下吧 jahia_v6_...
专门用来监控hibernate的sql输出,进行调试应用程序的工具,找了好久才找到,里面有个配置文件,记住realdriver是你的驱动,而在hibernate设置的驱动是这个驱动代理,p6spy的驱动,相当于在hibernate和数据库之间放...