在Hibernate的配置文件hibernate.cfg.xml中有3个设置项跟显示SQL语句相关,他们的值都是boolean值:
1、show_sql:是否显示SQL语句
2、format_sql: 是否格式化输出字符串,增强SQL的可读性
3、use_sql_comments:是否显示注释,用于指示出是什么操作产生了这个SQL语句。
如果设置了show_sql=true的话默认只打印SQL语句不会打印参数:
如果需要打印参数请在log4j配置文件:log4j.properties中加入:
log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
log4j.loggerorg.hibernate.type.descriptor.sql.BasicExtractor=TRACE
如果需要查看查询中命名参数的值,继续加入:
log4j.logger.org.hibernate.engine.QueryParameters=DEBUG
log4j.logger.org.hibernate.engine.query.HQLQueryPlan=DEBUG
接下来奉上全部配置:
log4j.rootLogger=info, CA
ConsoleAppender
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n
为了显示参数
log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
log4j.loggerorg.hibernate.type.descriptor.sql.BasicExtractor=TRACE
查看查询中命名参数的值
log4j.logger.org.hibernate.engine.QueryParameters=DEBUG
log4j.logger.org.hibernate.engine.query.HQLQueryPlan=DEBUG
使用时只需要将hibernate.cfg.xml中的show_sql设置为true然后将红色代码复制到配置文件中即可。
相关推荐
"hibernate执行原生sql语句" Hibernate 是一种流行的 ORM(Object-Relational Mapping)框架,用于将 Java 对象映射到关系数据库中。然而,在一些情况下,我们需要直接执行原生 SQL 语句,而不是使用 Hibernate 的...
hibernate.format_sql 参数用于在 log 和 console 中打印出更漂亮的 SQL。其取值为 true 或 false。当设置为 true 时,Hibernate 将格式化 SQL 语句,提高可读性和调试效率。 4. hibernate.default_schema ...
本篇将深入探讨如何在Hibernate中调用配置文件中的SQL语句,以此提高代码的可维护性和灵活性。 首先,理解Hibernate的核心概念至关重要。Hibernate是一个对象关系映射(ORM)框架,它将Java对象与关系数据库中的...
- 当SQL语句较为复杂时,建议将其抽取为独立的方法或配置文件,以便于维护和复用。 - 对于频繁使用的查询,可以考虑使用缓存机制来提高性能。 通过以上分析可以看出,在Hibernate中使用原生SQL能够更灵活地处理复杂...
在开发过程中,为了调试和优化SQL查询,有时我们需要查看Hibernate生成的完整SQL语句,包括其参数值。通常,Hibernate默认输出的SQL语句会用问号(?)作为占位符,这在理解查询逻辑时可能会带来不便。本文将详细介绍...
总的来说,Java打印漂亮的SQL语句是一个提高开发效率和代码质量的有效方法,通过使用如"PrettySQLFormatter"这样的工具,可以使得复杂的SQL查询变得更容易理解和维护,这对于大型项目或者涉及大量SQL操作的开发工作...
在开发和调试基于Hibernate的Java应用时,有时我们需要获取到SQL语句的完整形式,而不仅仅是Hibernate默认输出的参数化形式。在这种情况下,P6Spy是一个非常有用的工具。P6Spy是一个开源的JDBC代理库,它允许我们...
Hibernate的核心在于它的Query API,它提供了Criteria、HQL(Hibernate Query Language)和JPQL(Java Persistence Query Language)等方式来构建SQL语句。Hibernate会根据这些查询语句动态生成对应的SQL,并执行在...
本篇文章主要探讨如何利用Hibernate实现动态SQL查询,结合XML配置和FREEMARKER模板引擎来生成执行的SQL语句。 一、Hibernate简介 Hibernate作为一款强大的持久层框架,它简化了Java应用程序与数据库之间的交互。...
这篇博客“使用p6spy完整显示hibernate的SQL语句”可能详细解释了如何配置和使用p6spy来跟踪Hibernate生成并执行的SQL。 首先,`p6spy`是一个Java数据库代理库,它可以拦截并记录所有通过JDBC发送到数据库的SQL语句...
方言配置是Hibernate与不同类型的数据库进行交互的基础,它决定了Hibernate如何生成特定于数据库的SQL语句: 1. **`hibernate.dialect`**:指定Hibernate使用的方言类型,如PostgreSQL方言。 - 示例: ```...
XDoclet是早期的一个工具,用于自动生成Hibernate的映射文件(.hbm.xml)和SQL语句,这样开发者无需手动编写这些文件,提高了开发效率。这篇博客文章“Hibernate使用xdoclet生成映射文件和sql语句”可能详细介绍了...
首先,本地SQL查询(Native SQL)是指直接在Hibernate中使用原生的SQL语句进行查询,而不是使用HQL(Hibernate Query Language)。这允许开发者充分利用SQL的功能,比如进行复杂的统计计算或者处理特定数据库的特性...
本篇将深入讲解如何在使用JDBC时,通过统一的方式设置SQL语句中的参数,提高代码的可读性、可维护性和安全性。我们将探讨以下知识点: 1. JDBC基础: JDBC是Java平台中用于与关系数据库交互的一组接口和类。它提供...
SQL Server 2005的JDBC驱动程序(sqljdbc.jar)允许Java应用程序连接到SQL Server数据库,执行SQL语句,以及管理数据库连接。 在提供的压缩包中,"jakarta-struts-1%5B1%5D.1-src.rar"包含了Struts 1.1的源代码,这...
- **描述**:启用该配置后,Hibernate 将在控制台上输出执行的所有 SQL 语句,方便进行调试。 - **取值**:`true` 或 `false`。 - **示例**:`hibernate.show_sql=true` ##### 3. 格式化 SQL (Format SQL) - **...
这些框架允许我们将SQL语句封装在Java代码中,通过注解或XML配置文件进行管理,从而提高开发效率和代码的可读性。 在执行SQL时,我们需要了解以下关键点: 1. **数据访问层(DAO)**:这是微服务中负责与数据库...
Hibernate的`Session`接口提供了`createSQLQuery()`方法,允许我们直接编写SQL语句。例如: ```java Session session = sessionFactory.openSession(); SQLQuery query = session.createSQLQuery("SELECT * FROM...
P6spy是一个JDBC Driver的包装工具,p6spy通过对JDBC Driver的封装以达到对SQL语句的监听和分析,以达到各种目的。 p6spy的安装步骤: 1. 下载p6spy的安装包 2. 把p6spy的jar包放到Classpath中,如果是WEB App...