Hibernate-SQL打印(log4jdbc应用)

 

J2EE开发中,特别是使用了Hibernate的项目,在开发阶段,有时候开发人员想看看程序执行的时候实际执行的SQL和动态SQL传入的参数情况,以调试和判断程序逻辑。本文总结下怎么实现,希望对你有用。~

 

hibernate打开SQL显示

这个比较简单,大多说人都知道,呵呵,配置如下:

 

hibernate.show_sql=true

hibernate.format_sql=false

 

使用log4jdbc

log4jdbc打印执行的SQL(包括参数)和输出数据(有点想MYSQL的CMD命令执行结果)

log4jdbc是在JDBC层切入,打印出实际执行的SQL语句和数据库返回数据,所以,就算不是使用Hibernate也可以使用,因为涉及数据库JDBC驱动的变更,建议在开发环境使用。

http://code.google.com/p/log4jdbc/

 

1.Maven 依赖(官方在googlecode,目前没有,按springside的文档,使用下面这个代替,测试了OK):

<dependency>
  <groupId>org.lazyluke</groupId>
  <artifactId>log4jdbc-remix</artifactId>
  <version>0.2.7</version>
</dependency>

 

2.数据库连接配置修改为:

# 自使用驱动,但是请确保你url里面配置数据库对应的驱动是存在的。

jdbc.driver=net.sf.log4jdbc.DriverSpy

# 前端修改为jdbc:log4jdbc

jdbc.url=jdbc:log4jdbc:oracle:thin:@localhost:1521:xe

 

3.log4j配置,按组件的需求进行输出

# log4jdbc

log4j.logger.jdbc.sqltiming=INFO

log4j.logger.jdbc.audit=OFF

log4j.logger.jdbc.resultset=OFF

log4j.logger.jdbc.sqlonly=INFO

 

结果如下:

17:27:07,488 INFO [jdbc.sqltiming] - <select contenttyp0_.id as id3_1_, contenttyp0_.name as name3_1_, contenttyp0_.parentid as parentid3_1_, 

contenttyp0_.remrk as remrk3_1_, contenttyp1_.id as id3_0_, contenttyp1_.name as name3_0_, 

contenttyp1_.parentid as parentid3_0_, contenttyp1_.remrk as remrk3_0_ from cms_content_type 

contenttyp0_ left outer join cms_content_type contenttyp1_ on contenttyp0_.parentid=contenttyp1_.id 

where contenttyp0_.id=110  {executed in 2 msec}>

17:27:07,489 INFO [jdbc.resultsettable] - <|---------|---------|-------------|----------|-------|---------|-------------|>

17:27:07,489 INFO [jdbc.resultsettable] - <|ID3_1_   |NAME3_1_ |PARENTID3_1_ |REMRK3_1_ |ID3_0_ |NAME3_0_ |PARENTID3_0_ |>

17:27:07,489 INFO [jdbc.resultsettable] - <|---------|---------|-------------|----------|-------|---------|-------------|>

17:27:07,490 INFO [jdbc.resultsettable] - <|[unread] |JAVA5    |103          |null      |103    |[unread] |[unread]     |>

17:27:07,490 INFO [jdbc.resultsettable] - <|---------|---------|-------------|----------|-------|---------|-------------|>

 

安逸~~

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Hibernate)