iBATIS - डिबगिंग

आईबैटिस के साथ काम करते हुए अपने कार्यक्रम को डिबग करना आसान है। iBATIS में बिल्ट-इन लॉगिंग सपोर्ट है और यह निम्न लॉगिंग लाइब्रेरी के साथ काम करता है और इस क्रम में उनके लिए खोज करता है।

  • जकार्ता कॉमन्स लॉगिंग (JCL)।
  • Log4J
  • JDK लॉगिंग

आप iBATIS के साथ उपरोक्त सूचीबद्ध पुस्तकालयों में से किसी का भी उपयोग कर सकते हैं।

Log4J के साथ डिबगिंग

मान लें कि आप लॉगिंग के लिए Log4J का उपयोग करने जा रहे हैं। आगे बढ़ने से पहले, आपको निम्नलिखित बिंदुओं को पार करने की आवश्यकता है -

  • Log4J JAR फ़ाइल (log4j- {version} .jar) CLASSPATH में होनी चाहिए।
  • आपके पास CL4PATH में 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

आप Apache साइट से Log4J के लिए पूर्ण प्रलेखन पा सकते हैं - Log4J प्रलेखन ।

iBATIS डिबगिंग उदाहरण

निम्नलिखित जावा वर्ग एक बहुत ही सरल उदाहरण है जो जावा अनुप्रयोगों के लिए लॉग 4 जे लॉगिंग लाइब्रेरी का उपयोग करता है। हम उपर्युक्त संपत्ति फ़ाइल का उपयोग करेंगे जो 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 बनाएं और इसे संकलित करें।
  • जैसा कि ऊपर दिखाया गया है और इसे संकलित करें।
  • जैसा कि ऊपर दिखाया गया है 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);