Κοινή χρήση τεχνολογίας

MyBatis (27) Τρόπος διαμόρφωσης του MyBatis για εκτύπωση εκτελέσιμων δηλώσεων SQL

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Κατά τη διαδικασία ανάπτυξης, η εκτύπωση εκτελέσιμων δηλώσεων SQL είναι πολύ χρήσιμη για τον εντοπισμό σφαλμάτων και τη βελτιστοποίηση της απόδοσης. Το MyBatis παρέχει διάφορους τρόπους εκτύπωσης δηλώσεων SQL.

1. Χρησιμοποιήστε το πλαίσιο καταγραφής

Το MyBatis μπορεί να εκτυπώσει δηλώσεις SQL διαμορφώνοντας το εσωτερικό του πλαίσιο καταγραφής (όπως Log4j, Logback, κ.λπ.). Αυτή είναι η πιο κοινή μέθοδος.

Παράδειγμα διαμόρφωσης logback

Εάν χρησιμοποιείτε το Logback, μπορείτεlogback.xmlΠροσθέστε την ακόλουθη διαμόρφωση στο αρχείο:

<configuration>
    <!-- 其他配置 -->

    <!-- 配置MyBatis日志级别 -->
    <logger name="org.apache.ibatis" level="DEBUG"/>
    
    <!-- 如果你想要更详细的输出,包括SQL语句、参数等 -->
    <logger name="java.sql.PreparedStatement" level="TRACE"/>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

Μετά από αυτήν τη διαμόρφωση, οι εντολές SQL που εκτελούνται από το MyBatis και οι παράμετροί τους θα εκτυπωθούν στο αρχείο καταγραφής.

Παράδειγμα διαμόρφωσης Log4j

Εάν χρησιμοποιείτε Log4j, μπορείτεlog4j.propertiesΠροσθέστε την ακόλουθη διαμόρφωση στο αρχείο:

# 配置MyBatis日志级别
log4j.logger.org.apache.ibatis=DEBUG

# 如果你想要更详细的输出,包括SQL语句、参数等
log4j.logger.java.sql.PreparedStatement=TRACE
  • 1
  • 2
  • 3
  • 4
  • 5

2. Χρησιμοποιήστε την υλοποίηση του αρχείου καταγραφής που παρέχεται από το MyBatis

Το ίδιο το MyBatis παρέχει επίσης μια απλή υλοποίηση αρχείου καταγραφής, η οποία μπορεί να ρυθμιστεί στο αρχείο διαμόρφωσης MyBatis.mybatis-config.xmlΡυθμίσεις για ενεργοποίηση:

<configuration>
    <settings>
        <!-- 启用日志 -->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Αυτό θα καταγράψει στην τυπική έξοδο.logImplΗ τιμή μπορεί να είναιSTDOUT_LOGGINGLOG4JLOG4J2SLF4Jκ.λπ., επιλέξτε σύμφωνα με το πλαίσιο καταγραφής που χρησιμοποιείται στο έργο σας.

3. Χρησιμοποιήστε το P6Spy

Το P6Spy είναι ένα εργαλείο ανάλυσης ερωτημάτων βάσης δεδομένων που μπορεί να διαμεσολαβήσει το πρόγραμμα οδήγησης JDBC για να υποκλέψει και να καταγράψει δηλώσεις SQL. Χρησιμοποιώντας το P6Spy, μπορείτε να καταγράψετε όλες τις δηλώσεις SQL που εκτελούνται μέσω του JDBC χωρίς να τροποποιήσετε κανέναν κώδικα.

Για να χρησιμοποιήσετε το P6Spy χρειάζεστε:

  1. Προσθέστε την εξάρτηση P6Spy στο έργο σας.
  2. Διαμόρφωσηspy.propertiesαρχείο, προσδιορίζοντας το πραγματικό πρόγραμμα οδήγησης JDBC και τη διαδρομή αρχείου καταγραφής, κ.λπ.
  3. Τροποποιήστε τη διαμόρφωση της σύνδεσης της βάσης δεδομένων και χρησιμοποιήστε το πρόγραμμα οδήγησης μεσολάβησης του P6Spy.
Προσθήκη εξάρτησης P6Spy

Πάρτε το Maven ως παράδειγμα:

<dependency>
    <groupId>p6spy</groupId>
    <artifactId>p6spy</artifactId>
    <version>最新版本</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
Διαμόρφωσηspy.properties

υπάρχειsrc/main/resourcesΔημιουργία κάτω από τον κατάλογοspy.propertiesαρχείο και ρυθμίστε το ως εξής:

driverlist=真实的数据库驱动类名
logfile=日志文件路径
  • 1
  • 2
Τροποποίηση της διαμόρφωσης σύνδεσης βάσης δεδομένων

Αλλάξτε την κατηγορία προγράμματος οδήγησης της σύνδεσης βάσης δεδομένων σεcom.p6spy.engine.spy.P6SpyDriver, το πρόθεμα URL αλλάζει σεjdbc:p6spy:

Συνοψίζω

Οι παραπάνω είναι διάφοροι τρόποι για την υλοποίηση εκτελέσιμων δηλώσεων SQL εκτύπωσης MyBatis. Στην πραγματική ανάπτυξη, η κατάλληλη μέθοδος μπορεί να επιλεγεί με βάση τις συγκεκριμένες ανάγκες του έργου και τη στοίβα τεχνολογίας που χρησιμοποιείται. Συνήθως, η διαμόρφωση του πλαισίου καταγραφής είναι η απλούστερη και πιο κοινή μέθοδος.