iBATIS - Debuggen

Es ist einfach, Ihr Programm zu debuggen, während Sie mit iBATIS arbeiten. iBATIS verfügt über eine integrierte Protokollierungsunterstützung und arbeitet mit den folgenden Protokollierungsbibliotheken und sucht in dieser Reihenfolge nach ihnen.

  • Jakarta Commons Logging (JCL).
  • Log4J
  • JDK-Protokollierung

Sie können jede der oben aufgeführten Bibliotheken zusammen mit iBATIS verwenden.

Debuggen mit Log4J

Angenommen, Sie verwenden Log4J für die Protokollierung. Bevor Sie fortfahren, müssen Sie die folgenden Punkte überprüfen:

  • Die Log4J-JAR-Datei (log4j- {version} .jar) sollte sich im CLASSPATH befinden.
  • Sie haben log4j.properties im CLASSPATH verfügbar.

Es folgt die Datei log4j.properties. Beachten Sie, dass einige der Zeilen auskommentiert sind. Sie können sie auskommentieren, wenn Sie zusätzliche Debugging-Informationen benötigen.

# Global logging configuration
log4j.rootLogger = ERROR, stdout

log4j.logger.com.ibatis = DEBUG

# shows SQL of prepared statements
#log4j.logger.java.sql.Connection = DEBUG

# shows parameters inserted into prepared statements
#log4j.logger.java.sql.PreparedStatement = DEBUG

# shows query results
#log4j.logger.java.sql.ResultSet = DEBUG

#log4j.logger.java.sql.Statement = DEBUG

# Console output
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %5p [%t] − %m%n

Die vollständige Dokumentation zu Log4J finden Sie auf der Apaches-Website - Log4J-Dokumentation .

iBATIS-Debugging-Beispiel

Die folgende Java-Klasse ist ein sehr einfaches Beispiel, das die Log4J-Protokollierungsbibliothek für Java-Anwendungen initialisiert und dann verwendet. Wir würden die oben erwähnte Eigenschaftendatei verwenden, die in CLASSPATH liegt.

import org.apache.log4j.Logger;

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;

import java.io.*;
import java.sql.SQLException;
import java.util.*;

public class IbatisUpdate{
   static Logger log = Logger.getLogger(IbatisUpdate.class.getName());

   public static void main(String[] args) throws IOException,SQLException{
   
      Reader rd = Resources.getResourceAsReader("SqlMapConfig.xml");
      SqlMapClient smc = SqlMapClientBuilder.buildSqlMapClient(rd);

      /* This would insert one record in Employee table. */
      log.info("Going to update record.....");
      Employee rec = new Employee();
      rec.setId(1);
      rec.setFirstName( "Roma");
      smc.update("Employee.update", rec );
      log.info("Record updated Successfully ");

      log.debug("Going to read records.....");
      List <Employee> ems = (List<Employee>) 
         smc.queryForList("Employee.getAll", null);
      Employee em = null;
		
      for (Employee e : ems) {
         System.out.print("  " + e.getId());
         System.out.print("  " + e.getFirstName());
         System.out.print("  " + e.getLastName());
         System.out.print("  " + e.getSalary());
         em = e;
         System.out.println("");
      }
      log.debug("Records Read Successfully ");
   }
}

Kompilieren und Ausführen

Stellen Sie zunächst sicher, dass Sie PATH und CLASSPATH entsprechend eingestellt haben, bevor Sie mit der Kompilierung und Ausführung fortfahren.

  • Erstellen Sie Employee.xml wie oben gezeigt.
  • Erstellen Sie Employee.java wie oben gezeigt und kompilieren Sie es.
  • Erstellen Sie IbatisUpdate.java wie oben gezeigt und kompilieren Sie es.
  • Erstellen Sie log4j.properties wie oben gezeigt.
  • Führen Sie die IbatisUpdate-Binärdatei aus, um das Programm auszuführen.

Sie würden das folgende Ergebnis erhalten. Ein Datensatz würde in der Tabelle EMPLOYEE aktualisiert, und später würde derselbe Datensatz aus der Tabelle EMPLOYEE gelesen.

DEBUG [main] - Created connection 28405330.
DEBUG [main] - Returned connection 28405330 to pool.
DEBUG [main] - Checked out connection 28405330 from pool.
DEBUG [main] - Returned connection 28405330 to pool.
   1  Roma  Ali  5000
   2  Zara  Ali  5000
   3  Zara  Ali  5000

Debug-Methoden

Im obigen Beispiel haben wir nur verwendet info() Methode, Sie können jedoch eine der folgenden Methoden gemäß Ihren Anforderungen verwenden -

public void trace(Object message);
public void debug(Object message);
public void info(Object message);
public void warn(Object message);
public void error(Object message);
public void fatal(Object message);