开发手册 欢迎您!
软件开发者资料库

iBATIS - 调试

iBATIS的| iBATIS调试| iBATIS记录| iBATIS中的错误处理 - 适用于初学者的免费iBATIS教程,参考手册和指南。了解iBATIS框架如何从环境设置,读取,写入,更新,使用结果映射,动态和内联SQL删除数据库记录开始。

使用iBATIS时,可以轻松调试程序. iBATIS具有内置的日志记录支持,它可以使用以下日志记录库并按此顺序搜索它们.

  • Jakarta Commons Logging( JCL).

  • Log4J

  • JDK记录

你可以使用任何上面列出的库以及iBATIS.

使用Log4J进行调试

假设您要使用Log4J进行日志记录.在继续之前,您需要交叉检查以下几点 :

  • Log4J JAR文件(log4j- {version} .jar)应该在CLASSPATH中.

  • 你在CLASSPATH中有log4j.properties.

以下是log4j .properties文件.请注意,某些行已注释掉.如果需要其他调试信息,可以取消注释它们.

# Global logging configurationlog4j.rootLogger = ERROR, stdoutlog4j.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 outputlog4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout = org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern = %5p [%t] − %m%n

您可以在Apaches site&minus中找到Log4J的完整文档.  Log4J文档.

iBATIS调试示例

以下Java类是一个非常简单的示例,它初始化然后将Log4J日志库用于Java应用程序.我们将使用上面提到的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  ems = (List)          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);