p6spy打印SQL
一 Springboot项目
<dependency>
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
<version>3.8.0</version>
</dependency>
/**
* @author WGR
* @create 2019/9/7 -- 12:59
*/ /**
* 对数据源进行封装,打印运行sql
*/
@Configuration
public class P6spyConfig { class P6DataSourceBeanPostProcessor implements BeanPostProcessor,Ordered { @Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
if (bean instanceof DataSource){
return new P6DataSource((DataSource) bean);
}
return bean;
} @Override
public int getOrder() {
return Ordered.LOWEST_PRECEDENCE;
}
} @Bean
public P6DataSourceBeanPostProcessor p6DataSource(){
return new P6DataSourceBeanPostProcessor();
} }
如果你是Boot项目,建议你这样包装数据源,在mybatisplus推荐,但是在测试过程中没有打印SQL,(现官网打不开)
二 SSM项目
<dependency>
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
<version>3.8.0</version>
</dependency>
spy.properties的文件配置
# P6Spy\u7684\u914d\u7f6e,\u53c2\u8003\u5b98\u65b9\u6587\u6863
# \u5b98\u65b9\u6587\u6863\u4f4d\u7f6e: http://p6spy.readthedocs.io/en/latest/configandusage.html#common-property-file-settings # \u57fa\u672c\u8bbe\u7f6e
autoflush=false
dateformat=yyyy-MM-dd HH:mm:ss
reloadproperties=true
reloadpropertiesinterval=60 # \u5b9a\u5236\u5316\u8f93\u51fa
appender=com.p6spy.engine.spy.appender.Slf4JLogger
logMessageFormat=com.p6spy.engine.spy.appender.CustomLineFormat
customLogMessageFormat=%(executionTime)ms | %(sqlSingleLine) # \u6570\u636e\u5e93\u65e5\u671f,\u5e03\u5c14\u8bbe\u7f6e
databaseDialectDateFormat=yyyy-MM-dd HH:mm:ss
databaseDialectBooleanFormat=boolean # JMX\u8bbe\u7f6e
jmx=false # \u8fc7\u6ee4\u4e0d\u9700\u8981\u7684SQL\u8bed\u53e5
filter=true # \u6392\u9664\u7684\u8bed\u53e5\u7c7b\u578b
#excludecategories=info,debug,result,resultset,batch,commit,rollback
excludecategories=info,debug,result,resultset,batch,commit,rollback
xml的配置
<!-- https://github.com/brettwooldridge/HikariCP -->
<bean id="systemDataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
<property name="driverClassName" value="${system.jdbc.driver}" />
<property name="jdbcUrl" value="${system.jdbc.url}" />
<property name="username" value="${system.jdbc.username}" />
<property name="password" value="#{new String(T(java.util.Base64).getDecoder().decode('${system.jdbc.password}'.getBytes()))}" /> <!-- 参考: https://blog.csdn.net/ggd628300/article/details/51758925 -->
<!-- 连接只读数据库时配置为true, 保证安全 -->
<property name="readOnly" value="false" />
<!-- 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 缺省:30秒 -->
<property name="connectionTimeout" value="30000" />
<!-- 一个连接idle状态的最大时长(毫秒),超时则被释放(retired),缺省:10分钟 -->
<property name="idleTimeout" value="600000" />
<!-- 一个连接的生命时长(毫秒),超时而且没被使用则被释放(retired),缺省:30分钟,建议设置比数据库超时时长少30秒,参考MySQL wait_timeout参数(show variables like '%timeout%';) -->
<property name="maxLifetime" value="1800000" />
<!-- 连接池中允许的最大连接数。缺省值:10;推荐的公式:((core_count * 2) + effective_spindle_count) -->
<!-- 浦发生产: 12C36G effective_spindle_count为有效磁盘数-->
<property name="maximumPoolSize" value="30" /> </bean> <!-- 3.代理的连接池,为了打印实际的SQL语句 -->
<bean id="dataSource" class="com.p6spy.engine.spy.P6DataSource">
<constructor-arg name="delegate" ref="systemDataSource"/>
</bean>
p6spy是数据库动态监控的一种框架,它可以使得数据库数据无缝拦截和操作,而不必对现有应用程序的代码作任何修改。P6Spy分发包包括P6Log,它是一个可记录任何Java应用程序的所有JDBC事务的应用程序。其配置完成使用时,可以进行数据访问性能的监测。
p6spy打印SQL的更多相关文章
- jdbc打印sql语句-p6spy配置
@Configuration public class P6SpyConfig { /** * P6数据源包装, 打印SQL语句 */ @Bean public P6DataSourceBeanPos ...
- EOS下控制台以及图形界面打印sql语句
EOS下控制台以及图形界面打印sql语句 场景需求:在eos中打印sql语句,包括数据实体,查询实体和命名sql的sql语句. 所需资源: P6spy:负责拦截sql,并打印. Sqlprofiler ...
- yii打印sql
想打印Sql的话,可以用把你要执行的命令例如queryAll(),queryOne(),execute()换成getRawSql(); 例如 : 要看$result = Yii::$app->d ...
- Yii2 打印sql语句和批量插入数据
打印sql语句: $model->find()->createCommand()->getRawSql(); 批量插入 Yii::$app->db->createComm ...
- laravel打印sql语句
打印sql语句,直接在你执行SQL语句后输出 方法一: $queries = DB::getQueryLog(); $a = end($queries); $tmp = str_replace('?' ...
- mybatis 打印sql 语句
拦截器 package com.cares.asis.mybatis.interceptor; import java.text.DateFormat; import java.util.Date; ...
- mybatis 控制台打印sql
开发时调试使用 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBe ...
- hibernate 打印sql和参数的配置
1.配置spring-hiberbate.xml:<prop key="hibernate.show_sql">true</prop>--强制打印sql 不 ...
- mybatis 打印sql log配置
mybatis 打印sql log, 方便调试.如何配置呢? log4j.xml : <!-- 打印sql start --> <appender name="IBatis ...
随机推荐
- Vue Element 导航子路由不选中问题
首先说下遇到的问题 1.进入嵌套路由,当前父导航无法高亮显示 2.页面刷新后导航重置问题 3.在嵌套路由刷新页面也会导致导航重置问题 接下来是解决方案: elementUI 里面有个属性 defaul ...
- map转换成com.google.gson.JsonObject
String json =new Gson().toJson(map); JsonObject jsonObject =new JsonParser().parse(json).getAsJsonOb ...
- Flask基础(02)-->搭建Flask项目虚拟环境
什么是虚拟环境? 虚拟环境:其实就是一个文件夹,是python环境的复制 为什么要搭建虚拟环境? 因为一台计算机上可能要同时开发多个不同的项目,那么这些项目有可能用到同一个包的不同版本,如此一来,我们 ...
- Thinkphp5.0终章
thinkphp5.0最终总结 前期刚开始我是跟着b站上的千峰教育的视频走的,一路上做笔记进行深化与实际操作,中间因为不会开报错,并且视频里面也没有讲到怎么弄报错,因为是新手,那种出错了却不知道错在哪 ...
- Spark 学习笔记之 Streaming Window
Streaming Window: 上图意思:每隔2秒统计前3秒的数据 slideDuration: 2 windowDuration: 3 例子: import org.apache.kafka.c ...
- Python多任务之协程
前言 协程的核心点在于协程的使用,即只需要了解怎么使用协程即可:但如果你想了解协程是怎么实现的,就需要了解依次了解可迭代,迭代器,生成器了: 如果你只想看协程的使用,那么只需要看第一部分内容就行了:如 ...
- 引入flask_cache时出现ModuleNotFoundError: No module named 'flask.ext'
环境: centos 7.3 python 3.6 flask 1.0.2 flask-cache 0.13.1 引入flask_cache后运行时,出现以下错误 Traceback (most re ...
- Numpy中的三个常用正态分布相关的函数,randn,standard_normal, normal的区别
这三个函数都可以返回随机正态分布(高斯Gaussian 分布)的数组,都可以从numpy.random中导出 先看三个函数的参数方式: randn: randn(d0, d1, ..., dn), 返 ...
- MySQL时间盲注五种延时方法 (PWNHUB 非预期解)
转自cdxy师傅:https://www.cdxy.me/?p=789 PWNHUB 一道盲注题过滤了常规的sleep和benchmark函数,引发对时间盲注中延时方法的思考. 延时函数 SLEEP ...
- 常用windows命令
目录 本教程概述 用到的工具 标签 简介 1.cmd的一些规则 2.cd切换目录命令 3.dir显示目录命令 4.type显示文本内容 5.del 删除文件 6.查看IP地址 7.net 命令 8.n ...