亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java中實現控制臺打印sql語句方式

 更新時間:2023年06月20日 08:35:35   作者:虛無V旋渦  
這篇文章主要介紹了java中實現控制臺打印sql語句方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

java控制臺打印sql語句

spring boot項目打印sql語句 

首先我們看一下效果

現在直接上代碼:

logback-spring.xml 文件

<configuration>      
    <!-- %m輸出的信息,%p日志級別,%t線程名,%d日期,%c類的全名,%i索引【從數字0開始遞增】,,, -->      
    <!-- appender是configuration的子節(jié)點,是負責寫日志的組件。 -->  
    <!-- ConsoleAppender:把日志輸出到控制臺 -->  
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">      
        <encoder>      
            <pattern>%d %p (%file:%line\)- %m%n</pattern>
            <!-- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level (%logger{50}:%line\) - %msg%n</pattern> -->    
            <!-- 控制臺也要使用UTF-8,不要使用GBK,否則會中文亂碼 -->  
            <charset>UTF-8</charset>     
        </encoder>      
    </appender>      
    <!-- RollingFileAppender:滾動記錄文件,先將日志記錄到指定文件,當符合某個條件時,將日志記錄到其他文件 -->  
    <!-- 以下的大概意思是:1.先按日期存日志,日期變了,將前一天的日志文件名重命名為XXX%日期%索引,新的日志仍然是sys.log -->  
    <!--             2.如果日期沒有發(fā)生變化,但是當前日志的文件大小超過1KB時,對當前日志進行分割 重命名-->  
    <appender name="commonlog"      
        class="ch.qos.logback.core.rolling.RollingFileAppender">      
        <File>E:/log/apply/commonlog.log</File>      
        <!-- rollingPolicy:當發(fā)生滾動時,決定 RollingFileAppender 的行為,涉及文件移動和重命名。 -->  
        <!-- TimeBasedRollingPolicy: 最常用的滾動策略,它根據時間來制定滾動策略,既負責滾動也負責出發(fā)滾動 -->  
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">      
            <!-- 活動文件的名字會根據fileNamePattern的值,每隔一段時間改變一次 -->  
            <!-- 文件名:log/sys.2017-12-05.0.log -->  
            <fileNamePattern>E:/log/apply/commonlog.%d.%i.log</fileNamePattern>
            <!-- 每產生一個日志文件,該日志文件的保存期限為30天 -->   
            <maxHistory>30</maxHistory>     
            <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">      
                <!-- maxFileSize:這是活動文件的大小,默認值是10MB,本篇設置為1KB,只是為了演示 -->    
                <maxFileSize>5KB</maxFileSize>      
            </timeBasedFileNamingAndTriggeringPolicy>      
        </rollingPolicy>      
        <encoder>      
            <!-- pattern節(jié)點,用來設置日志的輸入格式 -->  
            <pattern>%d %p (%file:%line\)- %m%n</pattern>      
            <!-- 記錄日志的編碼 -->  
            <charset>UTF-8</charset> <!-- 此處設置字符集 -->     
        </encoder>      
    </appender>
    <!-- RollingFileAppender:滾動記錄文件,先將日志記錄到指定文件,當符合某個條件時,將日志記錄到其他文件 -->  
    <!-- 以下的大概意思是:1.先按日期存日志,日期變了,將前一天的日志文件名重命名為XXX%日期%索引,新的日志仍然是sys.log -->  
    <!--             2.如果日期沒有發(fā)生變化,但是當前日志的文件大小超過1KB時,對當前日志進行分割 重命名-->
    <appender name="sqllog"      
        class="ch.qos.logback.core.rolling.RollingFileAppender">      
        <File>E:/log/apply/sqllog.log</File>      
        <!-- rollingPolicy:當發(fā)生滾動時,決定 RollingFileAppender 的行為,涉及文件移動和重命名。 -->  
        <!-- TimeBasedRollingPolicy: 最常用的滾動策略,它根據時間來制定滾動策略,既負責滾動也負責出發(fā)滾動 -->  
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">      
            <!-- 活動文件的名字會根據fileNamePattern的值,每隔一段時間改變一次 -->  
            <!-- 文件名:log/sys.2017-12-05.0.log -->  
            <fileNamePattern>E:/log/apply/sqllog.%d.%i.log</fileNamePattern>
            <!-- 每產生一個日志文件,該日志文件的保存期限為30天 -->   
            <maxHistory>30</maxHistory>     
            <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">      
                <!-- maxFileSize:這是活動文件的大小,默認值是10MB,本篇設置為1KB,只是為了演示 -->    
                <maxFileSize>5KB</maxFileSize>      
            </timeBasedFileNamingAndTriggeringPolicy>      
        </rollingPolicy>      
        <encoder>
            <!-- pattern節(jié)點,用來設置日志的輸入格式 -->  
            <pattern>%d %p (%file:%line\)- %m%n</pattern>      
            <!-- 記錄日志的編碼 -->  
            <charset>UTF-8</charset> <!-- 此處設置字符集 -->     
        </encoder>      
    </appender>
    <!-- 指定項目中某個包,當有日志操作行為時的日志記錄級別 -->  
    <!-- com.appley為根包,也就是只要是發(fā)生在這個根包下面的所有日志操作行為的權限都是DEBUG -->  
    <!-- 級別依次為【從高到低】:FATAL > ERROR > WARN > INFO > DEBUG > TRACE  -->  
    <logger name="cn.apply.mapper" level="DEBUG" additivity="false">
        <appender-ref ref="sqllog" />
        <appender-ref ref="STDOUT" />
    </logger>
    <!-- 控制臺輸出日志級別 -->  
    <root level="info">      
        <appender-ref ref="STDOUT" />
        <appender-ref ref="commonlog" />       
    </root>      
</configuration>

application.properties 配置

#引入日志配置文件  
logging.config=classpath:logback-spring.xml

運行項目,調用接口看效果!

jdbc打印最終SQL語句

JDBC 獲取要執(zhí)行的SQL語句,也就是說 包括 ? 號的值:

網上查查了很多,都沒能成功, 最后試了一下toString 可以了:

? ? public ResultSet executeQuery(Connection conn, String sql, Object... param)
? ? ? ? ? ? throws SQLException {
? ? ? ? String sql = "SELECT * FROM categorys LIMIT ?,?";
? ? ? ? PreparedStatement ptmt = conn.prepareStatement(sql);
? ? ? ? ptmt.setObject(1, 0);
? ? ? ? ptmt.setObject(1, 3);
? ? ? ? System.out.println(ptmt.toString());//此處打印了對象和 帶入參數后的sql語句
? ? ? ? return ptmt.executeQuery();
? ? }

打印效果如下:

com.mysql.jdbc.JDBC4PreparedStatement@14906b9: SELECT * FROM categorys LIMIT 0,3
com.mysql.jdbc.JDBC4PreparedStatement@158803f: SELECT COUNT(*) FROM categorys

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • hashCode方法的使用講解

    hashCode方法的使用講解

    有許多人學了很長時間的Java,但一直不明白hashCode方法的作用,我來解釋一下吧。
    2013-03-03
  • Java讀取、寫入文件如何解決亂碼問題

    Java讀取、寫入文件如何解決亂碼問題

    這篇文章主要介紹了Java讀取、寫入文件如何解決亂碼問題,需要的朋友可以參考下
    2015-08-08
  • 記一次公司JVM堆溢出抽絲剝繭定位的過程解析

    記一次公司JVM堆溢出抽絲剝繭定位的過程解析

    這篇文章主要介紹了記一次公司JVM堆溢出抽絲剝繭定位的過程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Java語言實現簡單FTP軟件 FTP軟件本地窗口實現(5)

    Java語言實現簡單FTP軟件 FTP軟件本地窗口實現(5)

    這篇文章主要為大家詳細介紹了Java語言實現簡單FTP軟件,FTP軟件本地窗口的實現方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 解決Spring配置文件中bean的property屬性中的name出錯問題

    解決Spring配置文件中bean的property屬性中的name出錯問題

    這篇文章主要介紹了解決Spring配置文件中bean的property屬性中的name出錯問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 詳解Java中的四種引用類型(強軟弱虛)

    詳解Java中的四種引用類型(強軟弱虛)

    Java中的引用類型主要分為四種,分別是強引用、軟引用、弱引用和虛引用,這篇文章主要為大家詳細介紹了四者的使用與區(qū)別,需要的小伙伴可以參考下
    2023-10-10
  • Java集合類的組織結構和繼承、實現關系詳解

    Java集合類的組織結構和繼承、實現關系詳解

    這篇文章主要介紹了Java集合類的組織結構和繼承、實現關系,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • java教程之對象序列化使用基礎示例詳解

    java教程之對象序列化使用基礎示例詳解

    所謂對象序列化就是將對象的狀態(tài)轉換成字節(jié)流,以后可以通過這些值再生成相同狀態(tài)的對象,下面詳細介紹一下java對象的序列化使用方法
    2014-01-01
  • Eclipse快捷鍵使用小結

    Eclipse快捷鍵使用小結

    Eclipse是用java的同行必不可少的工具,我總結了一下它的快捷鍵,太常用的ctrl+單擊、ctrl+shift+F、Ctrl+1等我就不細說了,主要是方便查看。下邊小編就詳細的為大家介紹一下
    2013-07-07
  • SpringBoot集成Redis及SpringCache緩存管理示例詳解

    SpringBoot集成Redis及SpringCache緩存管理示例詳解

    本文介紹了如何在SpringBoot中集成Redis并使用SpringCache進行緩存管理,詳解了Redis的配置、使用以及SpringCache的注解,還闡述了SpringCache的工作原理,包括其AOP實現和與各種緩存框架的集成,使得開發(fā)者可以輕松實現緩存功能,以提高應用性能
    2024-09-09

最新評論