Teknologian jakaminen

MyBatis (27) Kuinka määrittää MyBatis tulostamaan suoritettavia SQL-käskyjä

2024-07-12

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

Kehitysprosessin aikana suoritettavien SQL-lauseiden tulostaminen on erittäin hyödyllistä virheenkorjauksessa ja suorituskyvyn optimoinnissa. MyBatis tarjoaa useita tapoja tulostaa SQL-lauseita.

1. Käytä kirjauskehystä

MyBatis voi tulostaa SQL-lauseita määrittämällä sisäisen lokikehyksensä (kuten Log4j, Logback jne.). Tämä on yleisin menetelmä.

Sisäänkirjautumisen määritysesimerkki

Jos käytät Logbackia, voitlogback.xmlLisää tiedostoon seuraavat asetukset:

<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

Tämän konfiguroinnin jälkeen MyBatisin suorittamat SQL-käskyt ja niiden parametrit tulostetaan lokiin.

Log4j-määritysesimerkki

Jos käytät Log4j:tä, voitlog4j.propertiesLisää tiedostoon seuraavat asetukset:

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

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

2. Käytä MyBatisin tarjoamaa lokitoteutusta

MyBatis itsessään tarjoaa myös yksinkertaisen lokin toteutuksen, joka voidaan määrittää MyBatis-määritystiedostossa.mybatis-config.xmlOta käyttöön asetukset:

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

Tämä kirjautuu vakiolähtöön.logImplArvo voi ollaSTDOUT_LOGGINGLOG4JLOG4J2SLF4Jjne., valitse projektissasi käytetyn kirjauskehyksen mukaan.

3. Käytä P6Spyä

P6Spy on tietokantakyselyn analysointityökalu, joka voi välittää JDBC-ohjaimen siepata ja tallentaa SQL-lauseita. P6Spyn avulla voit tallentaa kaikki JDBC:n kautta suoritetut SQL-lauseet muokkaamatta mitään koodia.

Tarvitset P6Spyn käyttämiseen:

  1. Lisää P6Spy-riippuvuus projektiisi.
  2. Kokoonpanospy.propertiestiedosto, joka määrittää todellisen JDBC-ohjaimen ja lokitiedoston polun jne.
  3. Muokkaa tietokantayhteyden määritystä ja käytä P6Spyn välityspalvelinajuria.
Lisää P6Spy-riippuvuus

Otetaan Maven esimerkkinä:

<dependency>
    <groupId>p6spy</groupId>
    <artifactId>p6spy</artifactId>
    <version>最新版本</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
Kokoonpanospy.properties

olla olemassasrc/main/resourcesLuo hakemiston allespy.propertiestiedosto ja määritä se seuraavasti:

driverlist=真实的数据库驱动类名
logfile=日志文件路径
  • 1
  • 2
Muokkaa tietokantayhteyden asetuksia

Muuta tietokantayhteyden ohjainluokkaksicom.p6spy.engine.spy.P6SpyDriver, URL-etuliite muutetaan muotoonjdbc:p6spy:

Tee yhteenveto

Yllä on useita tapoja toteuttaa MyBatis tulostaa suoritettavia SQL-lauseita. Varsinaisessa kehittämisessä sopiva menetelmä voidaan valita projektin erityistarpeiden ja käytetyn teknologiapinon perusteella. Yleensä lokikehyksen määrittäminen on yksinkertaisin ja yleisin tapa.