Hibernate SQL标准输出

目前很多公司的项目都采用了sshssi框架,在该框架下的SQL输出串不能显示SQL语句里所包含的参数,调试起来相当麻烦。通过P6spy框架来进行SQL监视,可以将SQL MAP中的SQL语句包含参数完整输出。

以下p6spyssh/ssi整合的方法:
 
1.
p6spy官方网站,下载p6spy.jar,放在lib目录下,将spy.properties放在 web-inf/classes下面(工作区最好是英文目录且无空格)。


2.
修改spy.properties,把realdriver 改为项目里使用的JDBC驱动名,如 realdriver=com.mysql.jdbc.Driver,其他的realdriver全部用#注释掉,修改 logfile=指定的SQL日志输出文件, logfile = d:/spy.log ,生成的SQL将会被写到到这个文件,只要执行SQL后查看该文件即可。

3.如果spy.log里出现以下异常:
  <配置了的程序的数据库驱动名称> is a real driver in spy.properties, but it has been loaded before p6spy. p6spy will not wrap these connections. Either prevent the driver from loading, or try setting 'deregisterdrivers' to true in spy.properties 
  需把spy.properties文件里的deregisterdrivers=false改为deregisterdrivers=true,然后重新运行。

 

4. 修改Spring配置文件,一般是applicationContext.xml
   
把原来的数据源定义注释掉,然后加入以下配置:
    <bean id="dataSourceTarget" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="(jdbc
驱动名,com.mysql.jdbc.Driver)" />       
    <property name="url" value="<URL>" />       
    <property name="username" value="<
用户名>" />       
    <property name="password" value="<
密码>" />
  </bean>
  
  <bean id="dataSource" class="com.p6spy.engine.spy.P6DataSource" destroy-method="close">          
        <constructor-arg>          
            <ref local="dataSourceTarget"/>          
        </constructor-arg>          
    </bean> 


5.
完成。

 

另外补充一点,根据各项目的不同对事物的管理不同,第5部根据项目而定

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值