`

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-release-4.2.12.Final libs

    - 额外的库:如Spring整合库、缓存库(如Ehcache)、日志库(如Log4j)等,扩展了Hibernate的功能。 3. 主要组件解析: - Entity Manager:负责实体的生命周期管理,如持久化、检索、更新和删除。 - Session ...

    hibernate-release-4.2.21.Final官方原版

    8. **日志和调试**:Hibernate使用了SLF4J(Simple Logging Facade for Java)作为日志接口,开发者可以根据需要选择不同的日志实现,如Log4j或Java Util Logging。此外,它还提供了详细的调试信息,帮助开发者追踪...

    log4jdbc-spring-boot-starter:将Log4jdbc与Spring Boot结合使用的启动器

    Log4jdbc Spring Boot Starter Log4jdbc Spring Boot Starter有助于在Spring Boot项目中快速方便地使用 。 Log4jdbc特别方便,因为它可以记录准备运行... &lt; artifactId&gt;log4jdbc-spring-boot-starter&lt;/ artifactId&gt;

    hibernate-release-5.4.25.Final_Hibernate5.4.25_hibernate所需jar包_源

    5. 其他依赖:如javassist、slf4j、log4j等,用于动态字节码生成和日志记录。 配置Hibernate主要涉及以下几个方面: - 配置文件:通常为`hibernate.cfg.xml`,定义数据库连接信息、实体类扫描路径、缓存策略等。 -...

    hibernate5相关jar包

    3. 数据库连接池:`hibernate-c3p0.jar` 或 `hibernate-jdbc-logging.jar`等 Hibernate需要一个数据库连接池来高效管理数据库连接。C3P0是一个常用的连接池实现,`hibernate-c3p0.jar`提供了对它的支持。而`...

    Hibernate--jar包

    5. **其他依赖**:Hibernate 还依赖于其他库,如 cglib 和 javassist 用于动态代理,dom4j 或 jaxb 用于 XML 处理,slf4j 或 log4j 用于日志记录等。这些库通常需要根据项目需求一起引入。 **使用 Hibernate 进行...

    hibernate3.3.2+commons-lang2.3+slf4j1.5.8+log4j1.2.16.zip

    最后,`log4j1.2.16`是Apache的一个经典日志框架,广泛应用于Java应用中。它提供了丰富的日志级别(如DEBUG、INFO、WARN、ERROR和FATAL),以及自定义日志格式和输出目标(如控制台、文件、数据库等)的能力。通过...

    fitness-tracker-sql-log-example:示例应用程序展示了如何记录由ORM框架生成的JDBC SQL参数

    ORM框架如Hibernate、MyBatis等,简化了Java应用与数据库之间的交互,但同时也隐藏了SQL语句的具体细节。在某些情况下,我们需要查看这些SQL语句,以便于调试、性能优化或者排查问题。 首先,让我们理解ORM框架的...

    让hibernate输出sql语句参数配置.doc

    hibernate.format_sql 参数用于在 log 和 console 中打印出更漂亮的 SQL。其取值为 true 或 false。当设置为 true 时,Hibernate 将格式化 SQL 语句,提高可读性和调试效率。 4. hibernate.default_schema ...

    hibernate-最少依赖jar包

    6. **slf4j-api.jar**和相应的实现库(如logback-classic.jar或log4j.jar):简单日志门面(SLF4J)为各种日志框架提供一个抽象层,允许最终用户在部署时插入所需的日志实现。 7. **jboss-logging.jar**:JBoss的...

    spring+hibernate+log4j所需要的jar包

    Spring、Hibernate和Log4j是Java开发中三个非常重要的库,它们各自负责不同的领域,而将它们结合在一起,可以构建出强大的企业级应用系统。 Spring是一个全面的后端应用程序框架,它提供了依赖注入(DI)和面向切面...

    使用hibernate对sqlserver 2005进行增删改查

    日志配置文件(log4j.properties)是用来控制日志输出的,这里设置了日志级别为WARN,并将日志输出到控制台。 实体类(User.java)是数据库表的映射对象,包含字段id、name和birthday。id字段使用了"native"生成...

    hibernate-3.2.jar

    6. **日志库**:Hibernate内置了对SLF4J和Log4j的支持,允许开发者选择合适的日志框架记录应用运行过程中的信息,便于调试和问题排查。 7. **其他库**:还包括对JAXB、DOM4J等XML处理库的依赖,用于处理XML配置文件...

    hibernate-release-5.2.16.Final.zip

    通常,Hibernate会使用Log4j、SLF4J或者Java Util Logging等日志框架。这些日志库可以帮助开发者记录和调试应用的运行情况,对于定位问题和优化性能有着重要作用。 三、MySQL连接库 在此次发布的版本中,还包含了...

    cxf(jax-ws)+spring+hibernate整合包

    spring-expression-3.0.7.RELEASE.jar,spring-hibernate3.jar,spring-jms-3.0.7.RELEASE.jar,spring-tx-3.0.7.RELEASE.jar,spring-web-3.0.7.RELEASE.jar,sqljdbc4.jar,stax2-api-3.1.1.jar,velocity-1.7.jar,WHICH_...

    Struts2+Spring2+Hibernate3+Annotation所需JAR包

    - **sqljdbc4.jar**:Microsoft SQL Server JDBC驱动程序,用于连接SQL Server数据库。 综上所述,这些JAR包构成了Struts2+Spring2+Hibernate3+Annotation开发所需的基本环境。通过合理配置这些库,开发者可以构建...

    mybatis,ibatis,hibernate 显示查询SQL

    为了显示查询SQL,MyBatis 提供了日志配置,通常可以启用Log4j或SLF4J,并配置相应的日志级别来打印SQL语句。 **iBatis** iBatis 是MyBatis的前身,两者在概念上相似,但MyBatis在iBatis的基础上进行了改进和扩展。...

    SpringBoot+Spring data JPA+FreeMarker+shiro+log4jdbc

    综合上述技术,这个项目可能是一个使用SpringBoot作为基础框架,通过Spring Data JPA进行数据库操作,使用FreeMarker作为模板引擎展示页面,Shiro负责安全控制,而Log4jdbc则用于记录数据库查询日志的Web应用。...

    P6SPY JDBC拦截打印sql语句 非常好的调试工具

    P6spy是一个JDBC Driver的包装工具,p6spy通过对JDBC Driver的封装以达到对SQL语句的监听和分析,以达到各种目的。 p6spy的安装步骤: 1. 下载p6spy的安装包 2. 把p6spy的jar包放到Classpath中,如果是WEB App...

Global site tag (gtag.js) - Google Analytics