spring中集成P6Spy监控对数据库的操作

源码:https://github.com/p6spy/p6spy
对jdbc的操作监控,可以方便记录每次数据库操作语句和时间,在测试环境下使用,可以排查SQL语句问题,涉及数据库性能问题可以看看日志。注意不要在上线产品里使用。

  1. 修改pom.xml,增加对p6spy的依赖
<!-- https://mvnrepository.com/artifact/p6spy/p6spy -->
<dependency>
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
<version>3.0.0</version>
</dependency>
  1. spring-mybatis.xml配置datasource,使用p6spy的驱动。如下:
<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource"
destroy-method="close">
<property name="poolProperties">
<bean class="org.apache.tomcat.jdbc.pool.PoolProperties">
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="initialSize" value="${initialSize}" />
<property name="maxActive" value="${maxActive}" />
<property name="maxIdle" value="${maxIdle}" />
<property name="minIdle" value="${minIdle}" />
<property name="maxWait" value="${maxWait}" />
<property name="jmxEnabled" value="${jmxEnabled}" />
<property name="testWhileIdle" value="${testWhileIdle}" />
<property name="testOnBorrow" value="${testOnBorrow}" />
<property name="testOnReturn" value="${testOnReturn}" />
<property name="validationInterval" value="${validationInterval}" />
<property name="validationQuery" value="${validationQuery}" />
<property name="timeBetweenEvictionRunsMillis" value="${timeBetweenEvictionRunsMillis}" />
<property name="minEvictableIdleTimeMillis" value="${minEvictableIdleTimeMillis}" />
<property name="logAbandoned" value="${logAbandoned}" />
<property name="removeAbandoned" value="${removeAbandoned}" />
<property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}" />
</bean>
</property>
</bean>

其中的属性都是在config.properties等配置文件中进行定义,因此,需要修改配置文件中的下列属性:

jdbc.driver=com.p6spy.engine.spy.P6SpyDriver
jdbc.url=jdbc:p6spy:mysql://192.168.0.1:3306/test?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
  1. 修改spy.properties文件

spy.properties与其他配置文件一样,编译后,都会位于应用的/WEB-INF/classes目录下

  • 配置实际的数据库驱动,否则会报找不到mysql的数据库驱动的问题

driverlist=com.mysql.cj.jdbc.Driver

  • 配置日志文件的输出位置

logfile=…/logs/spy.log

  • 定义日志输出格式,打印sql的执行时间

customLogMessageFormat=%(currentTime)|%(executionTime)|%(category)|connection%(connectionId)|%(sqlSingleLine)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值