zoukankan      html  css  js  c++  java
  • jpa hibernate 打印sql,format日志,打印SQL参数,打印什么指令

    环境说明:IntelliJ IDEA 2017.3.4 版本;SpringBoot 2.0.0.RELEASE;hibernate用的是JPA自带。

    打印SQL 到控制台:

    首先,我使用的是application.properties配置文件,使用yml也可以达到同样的效果。

    在网上查这个问题查了好久,基本上都是xml配置,在此不多说;

    正确的properties配置项应该如下图所示:

    在jpa下一级不直接是hibernate,而是properties。

    spring.jpa.properties.hibernate.show_sql=true          //控制台是否打印
    spring.jpa.properties.hibernate.format_sql=true        //格式化sql语句
    spring.jpa.properties.hibernate.use_sql_comments=true  //指出是什么操作生成了该语句
    此时,在控制台看到的现象:Hibernate: 
        

    可以看到,控制台打印了一条经过格式化之后的sql语句,并标明了这条语句是在Hibernate插入TaskWebSiteRev这个对象到数据库的时候生成的。
     

    打印SQL参数到控制台

    经过上面的步骤,我们已经可以在控制台打印出格式化之后的sql语句,但是大多数情况下,我们还需要具体的sql参数值,这个时候我们就需要配置 日志配置文件。

    博主使用的是slf4j的日志,配置文件用的是logback.xml,配置方式如下:

    <logger name="org.hibernate.SQL" level="DEBUG"/>  //该语句控制打印SQL,如果你在yml或者properties文件里配置了“spring.jpa.properties.hibernate.show_sql=true ” ,则不需要再配置该语句

    <logger name="org.hibernate.engine.QueryParameters" level="DEBUG"/>
    <logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG"/>
    <logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE"/>
    
    直接把这三个配置丢到xml的根节点下就可以~来看一下效果:

    可以看到控制台依次输出了sql参数,并且将这些参数在数据库中的类型也一并输出了。
     

    打印SQL到 日志

    在logback.xml文件根节点下加入以下

    <logger name="org.hibernate.SQL" level="DEBUG"/>

    原文地址:https://blog.csdn.net/kendmr/article/details/84970687

  • 相关阅读:
    [转载] mysql5.6 删除之前的ibdata1文件后再重新生成,遇到[Warning] Info table is not ready to be used. Table 'mysql.slave_master_info' cannot be opened.问题
    You must SET PASSWORD before executing this statement解决
    Using unique option prefix myisam-recover instead of myisam-recover-option
    [Warning] TIMESTAMP with implicit DEFAULT value is deprecated
    Oracle® Database Patch 19121551
    python+selenium元素定位——8种方法
    登录10086邮箱
    4、requests 安装
    3、fiddler手机抓包
    2、接口基础知识
  • 原文地址:https://www.cnblogs.com/jpfss/p/11211608.html
Copyright © 2011-2022 走看看