zoukankan      html  css  js  c++  java
  • druid 打印 sql

    关注:

    SimpleJpaRepository
    org.hibernate.internal.SessionImpl
    DruidPooledPreparedStatement
    com.alibaba.druid.filter.logging.LogFilter

    private void logExecutableSql(StatementProxy statement, String sql) {
            if (this.isStatementExecutableSqlLogEnable()) {
                int parametersSize = statement.getParametersSize();
                if (parametersSize == 0) {
                    this.statementLog("{conn-" + statement.getConnectionProxy().getId() + ", " + this.stmtId(statement) + "} executed. 
    " + sql);
                } else {
                    List<Object> parameters = new ArrayList(parametersSize);
    
                    for(int i = 0; i < parametersSize; ++i) {
                        JdbcParameter jdbcParam = statement.getParameter(i);
                        parameters.add(jdbcParam.getValue());
                    }
    
                    String dbType = statement.getConnectionProxy().getDirectDataSource().getDbType();
                    String formattedSql = SQLUtils.format(sql, dbType, parameters);
                    this.statementLog("{conn-" + statement.getConnectionProxy().getId() + ", " + this.stmtId(statement) + "} executed. 
    " + formattedSql);
                }
            }
        }


    druid 打印 sql:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
           " >
    
        <!--主数据源 -->
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close" primary="true" >
            <!-- 基本属性 url、user、password -->
            <property name="url" value="${datasource.url}" />
            <property name="username" value="${datasource.username}" />
            <property name="password" value="${datasource.password}" />
    
            <!-- 配置初始化大小、最小、最大 -->
            <property name="initialSize" value="10" />
            <property name="minIdle" value="10" />
            <property name="maxActive" value="20" />
    
            <!-- 配置获取连接等待超时的时间 -->
            <property name="maxWait" value="60000" />
    
            <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
            <property name="timeBetweenEvictionRunsMillis" value="60000" />
    
            <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
            <property name="minEvictableIdleTimeMillis" value="300000" />
    
            <property name="validationQuery" value="SELECT 1 " />
            <property name="testWhileIdle" value="true" />
            <property name="testOnBorrow" value="false" />
            <property name="testOnReturn" value="false" />
    
            <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
            <property name="poolPreparedStatements" value="true" />
            <property name="maxPoolPreparedStatementPerConnectionSize" value="20" />
    
            <!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计 -->
            <property name="filters" value="stat,wall,log4j"/>
            <property name="proxyFilters">
                <list>
                    <ref bean="log-filter"/>
                </list>
            </property>
        </bean>
    
        <bean id="log-filter" class="com.alibaba.druid.filter.logging.Slf4jLogFilter">
            <property name="connectionLogEnabled" value="true"/>
            <property name="statementLogEnabled" value="true"/>
            <property name="resultSetLogEnabled" value="true"/>
            <property name="statementExecutableSqlLogEnable" value="true"/>
        </bean>
    
        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"/>
        </bean>
    
    </beans>
  • 相关阅读:
    视频智能云组网EasyNTS中sqlite和mysql数据库如何进行相互切换?
    关于github上提出EasyRTSPLive视频网关编译过程中修复README错误
    IPC拉转推流场景中如何实现视频网关EasyRTSPLive试用多通道转换?
    如何使用流媒体接入网关实现拉RTSP流转推RTMP流到流媒体服务器?
    视频流媒体平台采用Go语言编程ioutil.ReadAll的用法注意点
    视频流媒体直播平台EasyDSS运行报Only one usage错误原因排查分析
    视频流媒体播放器EasyPlayer.js截取base64编码快照显示不完整问题解决
    视频流媒体RTMP推流组件在Chorme浏览器无法播放FLV匿名直播流问题分析
    视频流媒体直播点播平台如何获取视频转码信息和进度?
    部署国标GB28181流媒体服务器EasyGBS成功后无法播放视频问题步骤排查
  • 原文地址:https://www.cnblogs.com/xiluhua/p/14250911.html
Copyright © 2011-2022 走看看