p6使用教程_p6slite使用说明书

p6使用教程_p6slite使用说明书最近开发中用到spring-data-jpa+hibernate的持久层框架,在调试过程中,日志记录的hibernateSQL执行语句无法显示传入的参数,所以上github上搜索了一番,发现了p6spy这个框架,此框架能够无缝地拦截和记录数据库的执行语句,而不会对现有应用程序进行代码更改。下面介绍一下p6spy的简单配置和使用。源码https://github.com/p6s…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

最近开发中用到 spring-data-jpa + hibernate 的持久层框架,在调试过程中,日志记录的hibernate SQL执行语句无法显示传入的参数,所以上github上搜索了一番,发现了p6spy这个框架,此框架能够无缝地拦截和记录数据库的执行语句,而不会对现有应用程序进行代码更改。下面介绍一下p6spy的简单配置和使用。

源码

https://github.com/p6spy/p6spy

导包

http://mvnrepository.com/artifact/p6spy/p6spy

<dependency>
    <groupId>p6spy</groupId>
    <artifactId>p6spy</artifactId>
    <version>3.7.0</version>
</dependency>

配置

1、复制源码中 p6spy/src/main/assembly/individualFiles/spy.properties 文件到Maven项目的resource目录下
2、根据需要配置 spy.properties 选项值

#项目数据库驱动
driverlist=com.mysql.jdbc.Driver
#日期格式
dateformat=yyyy-MM-dd HH:mm:ss
#sql输出样式(此为我自定义的)
logMessageFormat=com.p6spy.engine.spy.appender.PrettySqlMultiLineFormat

#sql输出方式
#appender=com.p6spy.engine.spy.appender.Slf4JLogger
appender=com.p6spy.engine.spy.appender.StdoutLogger
#appender=com.p6spy.engine.spy.appender.FileLogger

3、项目数据源配置
jdbc.driver 替换为 com.p6spy.engine.spy.P6SpyDriver
jdbc.url 替换为 jdbc:p6spy:mysql:/xxx

问题

1、原生的sql语句样式是单行的,如何格式化
改动源码,创建一个类自定义输出格式,重新打包发布到自己的本地库

package com.p6spy.engine.spy.appender;

import org.hibernate.engine.jdbc.internal.BasicFormatterImpl;
import org.hibernate.engine.jdbc.internal.Formatter;

/** * 优化sql输出格式,采用hibernate的 Formatter */
public class PrettySqlMultiLineFormat implements MessageFormattingStrategy { 
   

    private static final Formatter formatter;

    static {
        formatter = new BasicFormatterImpl();
    }

  /** * Formats a log message for the logging module * * @param connectionId the id of the connection * @param now the current ime expressing in milliseconds * @param elapsed the time in milliseconds that the operation took to complete * @param category the category of the operation * @param prepared the SQL statement with all bind variables replaced with actual values * @param sql the sql statement executed * @return the formatted log message */
    @Override
    public String formatMessage(final int connectionId, final String now, final long elapsed, final String category, final String prepared, final String sql) {
      return "\n#" + now + " | took " + elapsed + "ms | " + category + " | connection " + connectionId + formatter.format(sql) +";";
    }
}

spy.properties 中 logMessageFormat=com.p6spy.engine.spy.appender.PrettySqlMultiLineFormat

2、与日志框架的结合
我项目的日志框架是 slf4j + log4j2 的组合,不需要改动日志配置,p6spy可以无缝结合。

3、精简配置
如果只是自己开发调试时用,可以对p6spy定制,从github上下载源码,直接把spy.properties放到源码项目的resource目录下进行配置,然后发布到本地Maven库中,项目要用时只要在pom.xml中引入依赖就,修改数据库驱动和地址,不需要在项目中配置spy.properties文件了。
这里写图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185320.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 优化算法——模拟退火算法

    优化算法——模拟退火算法模拟退火算法原理模拟退火算法模拟退火算法过程模拟退火算法流程模拟退火算法的Java实现Java代码最后的结果模拟退火算法原理爬山法是一种贪婪的方法,对于一个优化问题,其大致图像(图像地址)如下图所示:其目标是要找到函数的最大值,若初始化时,初始点的位置在CC处,则会寻找到附近的局部最大值AA点处,由于AA点出是一个局部最大值点,故对于爬山法来讲,该算法无法跳出局部最大值点。若初始

    2022年7月18日
    18
  • 薅羊毛利器—Loon,Cookie放在本地一点也不担心[通俗易懂]

    LoonLoon是一款在iOS系统下的代理工具(目前还没有Android版本),它支持在本地执行js脚本,只需简单配置即可成为薅羊毛利器ps之前的羊毛脚本已经失效了下载可以去美区AppStore下载,价格$4.99,需要有一个美区的AppleId账号,并且充值美元可以去某宝或拼夕夕搜索并购买,价格大概在¥9.99配置然后将下面框里面的配置赋值粘贴进去,点击保存[General]#IPv6支持ipv6=false##skip-proxy和bypass-tun一般不需

    2022年4月14日
    151
  • Unity零基础到入门 ☀️| 一起走进游戏引擎界大佬——Unity 的陈情往事,Unity故事背景介绍

    Unity零基础到入门 ☀️| 一起走进游戏引擎界大佬——Unity 的陈情往事,Unity故事背景介绍Unity背景故事。本篇博客来介绍一下游戏界的大佬——Unity!让你对Unity有更多的了解。

    2022年5月6日
    52
  • Webdriver下载及使用

    Webdriver下载及使用Chrome浏览器驱动下载地址:http://chromedriver.storage.proxy.ustclug.org/index.htmlFirfox浏览器驱动下载地址:https://github.com/mozilla/geckodriver/releasesIE浏览器驱动下载地址:https://www.selenium.dev/downloads/Edge浏览器驱动下载地址:https://developer.microsoft.com/en-us/microsoft-edg…

    2022年9月19日
    4
  • sql2005数据库置疑的解决方法_sql数据库置疑修复工具

    sql2005数据库置疑的解决方法_sql数据库置疑修复工具数据库被置疑后的解决方法(一)A.我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQLServerEnterpriseManager 里面建立。B.停掉数据库服务器。C.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据 库数据文件test_data.mdf。D.启动数据库服务器。此时会看

    2022年8月22日
    7
  • 微信小程序css3(微信小程序布局讲解)

    d,e,开头的css属性在小程序里比较少,就放在一起了,先看图:那先说c开头的属性:1.caption-side:这个是表格的标题所处的位置属性。取值:bottom,top。小程序里没有table的标签支持,不清楚怎么设置。小程序里设置表格其实很简单,只需要用列表渲染就可以。如下图:标题一标题二标题三标题四标题五内容内容内容内容内容样式:.table{border:1pxsolidg…

    2022年4月11日
    143

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号