`

ibatis&hibernate_howto stdout

 
阅读更多

hibernate中控制console输出SQL语句的配置如下:

hibernate.cfg.xml中

<hibernate-configuration>

    <session-factory>

...

<!-- Echo all executed SQL to stdout -->

        <property name="show_sql">true</property>

...

 

然而在iBatis中

须在log4j.properties加上如下代码(仅供参考):

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.logger.com.ibatis=debug

log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug

log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug

log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug

log4j.logger.java.sql.Connection=debug

log4j.logger.java.sql.Statement=debug

log4j.logger.java.sql.PreparedStatement=debug,stdout

 

下面是完整实例

via: http://www.tutorialspoint.com/ibatis/ibatis_debugging.htm

It is easy to debug your program while working with iBATIS. iBATIS has built-in logging support and it works with the following logging libraries and searches for them in this order.

  • Jakarta Commons Logging (JCL).

  • Log4J

  • JDK logging

You can use any of the above listed libraries alongwith iBATIS.

Debugging with Log4J:

Assuming you are going to use Log4J, which is my favorite for logging. Before proceeding you need to cross check following points:

  • The Log4J JAR file (log4j-{version}.jar) should be in the CLASSPATH.

  • You have log4j.properties available in the CLASSPATH.

Following is the of a log4j.properties file. Note that some of the lines are commented out. You can uncomment them if you need additiona debugging information.

# 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

You can find complete documentation for Log4J from Apaches site: Log4J Documentation.

iBATIS Debugging Example:

The following Java class is a very simple example that initializes, and then uses, the Log4J logging library for Java applications. We would use above mentioned property file which lies in 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 ");
  }
}

Compilation and Run:

Here are the steps to compile and run the above mentioned software. Make sure you have set PATH and CLASSPATH appropriately before proceeding for the compilation and execution.

  • Create Employee.xml as shown above.

  • Create Employee.java as shown above and compile it.

  • Create IbatisUpdate.java as shown above and compile it.

  • Create log4j.properties as shown above.

  • Execute IbatisUpdate binary to run the program.

You would get following result, and a record would be updated in EMPLOYEE table and later same record would be read from the EMPLOYEE table.

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 Methods:

In the above example we used only info() method but you can use any of the following methods as per your requirements:

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);
分享到:
评论

相关推荐

    springmvc_hibernate_ibatis_jdbc

    标题中的"springmvc_hibernate_ibatis_jdbc"指的是一个整合了SpringMVC、Hibernate、iBatis和JDBC这四种关键技术的Java应用框架。这个框架旨在提供一个全面且强大的解决方案,便于开发人员进行Web应用程序的构建。 ...

    iBATIS_API_DOC.rar_doc_ibatis a_ibatis api_ibatis d

    这个文档集,"iBATIS_API_DOC.rar_doc_ibatis a_ibatis api_ibatis d",显然是关于iBATIS API的详细文档,旨在帮助开发者更好地理解和使用iBATIS框架。 首先,让我们深入理解iBATIS的核心概念: 1. SQL Maps:...

    iBATIS_DBL-2.2.0.638.zip_iBATIS_DBL_ibatis_ibatis 2_ibatis2 src_

    iBATIS_DBL-2.2.0.638.zip 是一个包含了iBATIS数据库层(DBL)2.2.0.638版本的源代码包,专为Java开发者设计。iBatis是一个优秀的持久层框架,它允许开发者将SQL与Java代码分离,从而简化了数据库操作。这个压缩包...

    ibatis_hibernate3.5_lib.zip

    hibernate下载 : http://sourceforge.net/projects/hibernate/files/hibernate3/--3.XX版本 ...比如:ibatis-2.3.0.677.jar, spring 可在下载你需要的版本: http://www.springsource.org/download

    iBATIS-DAO-2.3.4.726.rar_com.ibatis.dao_iBATIS dao 2_iBatis DAO_

    iBATIS DAO是Java开发中的一个持久层框架,它提供了数据访问对象(DAO)的实现,使得数据库操作更加简单和灵活。在这个2.3.4.726版本的源码中,我们可以深入理解iBATIS DAO的工作原理,并通过添加注释来帮助我们更好...

    iBATIS_Spring_struts_demo.rar_DEMO_Struct spring ibatis_ibatis j

    标题中的“iBATIS_Spring_struts_demo.rar_DEMO_Struct spring ibatis_ibatis j”表明这是一个关于集成iBATIS、Spring和Struts的演示项目。这个DEMO旨在展示如何在Java应用中有效地整合这三个框架,从而实现数据持久...

    ibatis_with_memcached

    本项目"ibatis_with_memcached"就是关于如何将Ibatis与Memcached集成,实现高效的数据库缓存策略的实例。 Ibatis是一个基于Java的SQL映射框架,它允许开发者编写SQL语句并与Java对象进行绑定,从而避免了传统的JDBC...

    IBATIS_IN_ACTION

    《IBATIS_IN_ACTION》是一本深度探讨iBATIS框架应用与实践的专业书籍,由Clinton Begin、Brandon Goodin和Larry Meadors共同编写。本书详细介绍了iBATIS这一流行开源框架的核心概念、工作原理以及在实际项目中的应用...

    ssi.rar_ibatis_ibatis struts2_java ssi_myeclipse ssi_struts2

    标题中的"ssi.rar_ibatis_ibatis_struts2_java ssi_myeclipse ssi_struts2"揭示了这个压缩包文件包含的内容,主要涉及到SSI(Server Side Include)技术、MyEclipse开发环境、以及三大框架——Struts2、Spring和...

    iBATIS_02_addSequence_add_del_update_sel_sellike

    iBATIS 是一款开源的 Java 框架,它为 SQL Maps 和 Objects 的映射提供了简单的方法,使得在 Java 应用程序中处理数据库操作变得更加容易。"iBATIS_02_addSequence_add_del_update_sel_sellike" 这个主题可能涉及到...

    ibatis和hibernate的简单介绍

    ### ibatis和Hibernate的简单介绍 #### 一、ibatis简介 ibatis是Apache软件基金会的一个开源项目,它提供了一种轻量级的Java持久层框架。ibatis的核心功能是将SQL语句与Java代码分离,使开发人员可以更加专注于...

    ibatis 与hibernate之间的比较优点和缺点

    ### ibatis 与 hibernate 之间的比较:优点和缺点 #### 概述 在 Java 开发领域中,对象关系映射(Object Relational Mapping,简称 ORM)是一种将面向对象编程语言中的对象模型与数据库系统中的关系模型相互转换的...

    hibernate_And_Ibatis.doc

    【hibernate 和 iBATIS 框架详解】 Hibernate 和 iBATIS 是两种流行的 Java 持久层框架,它们都致力于简化对象关系映射(ORM),将 Java 类对象与数据库表之间的交互变得更加便捷。然而,它们在实现方式和设计理念...

    ibatis和hibernate的区别

    【ibatis和Hibernate的区别】 在Java开发中,ibatis和Hibernate都是常见的对象关系映射(ORM)框架,它们简化了数据库操作,将Java对象与数据库表之间的映射关系抽象出来,使得开发人员可以使用面向对象的方式处理...

    iBatis_Demo.rar_ibaties demo_ibatis de_ibatis mysql demo_ibati

    iBatis 是一款著名的开源持久层框架,它允许开发者将SQL语句与Java代码分离,提供了灵活的数据库交互方式。本示例项目"Ibatis_Demo"是一个针对新手的入门教程,旨在帮助初学者理解并掌握如何在实际项目中运用iBatis...

    ibatis入门教程_ibatis入门教程_源码

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将注意力集中在编写SQL语句上,而无需关注JDBC代码的繁琐操作。本教程将帮助初学者理解并掌握Ibatis的基本概念、安装与配置...

    iBatis_2.34_API.chm

    iBatis_2.34_API.chm iBatis的API文档。

    Ibatis_in_action

    《Ibatis_in_action》这本书是关于轻量级数据访问工具Ibatis的深入解析,它旨在帮助开发者更好地理解和应用这一框架。Ibatis是一个Java库,它为数据库操作提供了灵活且强大的支持,将SQL查询与应用程序代码分离,...

    ibatis3__发布_入门示例

    标题与描述概述的知识点主要集中在iBatis 3(现称为MyBatis)的入门级应用,特别是关于如何在Web项目中集成并使用这个框架。iBatis 3是一个持久层框架,它允许开发者通过XML配置文件或注解来映射SQL语句,从而简化了...

    iBATIS_Database_Layer_开发指南

    iBATIS 数据库层开发指南是一份详细的文档,旨在帮助开发者深入理解并有效利用iBATIS框架进行数据库操作。iBATIS,一个轻量级的Java持久层框架,它为SQL映射提供了一种灵活的方法,使得Java应用程序可以与关系数据库...

Global site tag (gtag.js) - Google Analytics