iBATIS-디버깅

iBATIS로 작업하는 동안 프로그램을 디버그하는 것은 쉽습니다. iBATIS는 로깅 지원이 내장되어 있으며 다음 로깅 라이브러리와 함께 작동하며이 순서대로 검색합니다.

  • Jakarta Commons Logging (JCL).
  • Log4J
  • JDK 로깅

iBATIS와 함께 위에 나열된 라이브러리 중 하나를 사용할 수 있습니다.

Log4J로 디버깅

로깅을 위해 Log4J를 사용한다고 가정합니다. 진행하기 전에 다음 사항을 교차 확인해야합니다.

  • Log4J JAR 파일 (log4j- {version} .jar)은 CLASSPATH에 있어야합니다.
  • CLASSPATH에 log4j.properties가 있습니다.

다음은 log4j.properties 파일입니다. 일부 줄은 주석 처리되어 있습니다. 추가 디버깅 정보가 필요한 경우 주석 처리를 제거 할 수 있습니다.

# 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

Apaches 사이트 -Log4J Documentation 에서 Log4J에 대한 전체 문서를 찾을 수 있습니다 .

iBATIS 디버깅 예

다음 Java 클래스는 초기화 한 다음 Java 응용 프로그램 용 Log4J 로깅 라이브러리를 사용하는 매우 간단한 예제입니다. CLASSPATH에있는 위에서 언급 한 속성 파일을 사용합니다.

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 ");
   }
}

컴파일 및 실행

먼저 컴파일 및 실행을 진행하기 전에 PATH 및 CLASSPATH를 적절하게 설정했는지 확인하십시오.

  • 위와 같이 Employee.xml을 만듭니다.
  • 위와 같이 Employee.java를 생성하고 컴파일합니다.
  • 위와 같이 IbatisUpdate.java를 생성하고 컴파일합니다.
  • 위에 표시된대로 log4j.properties를 생성합니다.
  • IbatisUpdate 바이너리를 실행하여 프로그램을 실행하십시오.

다음과 같은 결과를 얻을 수 있습니다. EMPLOYEE 테이블에서 레코드가 업데이트되고 나중에 EMPLOYEE 테이블에서 동일한 레코드를 읽습니다.

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

디버그 방법

위의 예에서 우리는 info() 그러나 요구 사항에 따라 다음 방법 중 하나를 사용할 수 있습니다.

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);