首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用log4j2.properties文件打印Hibernate 5.4生成的参数和sql

log4j2.properties是log4j2日志框架的配置文件,用于配置日志的输出方式和级别。下面是使用log4j2.properties文件打印Hibernate 5.4生成的参数和sql的步骤:

  1. 创建log4j2.properties文件,并将其放置在项目的classpath下(通常是src/main/resources目录)。
  2. 在log4j2.properties文件中添加以下配置:
代码语言:txt
复制
# 设置根日志级别为DEBUG
rootLogger.level = debug
rootLogger.appenderRef.stdout.ref = Console

# 配置Console输出
appender.stdout.type = Console
appender.stdout.name = STDOUT
appender.stdout.layout.type = PatternLayout
appender.stdout.layout.pattern = %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n

# 配置Hibernate的日志输出
logger.org.hibernate.type.descriptor.sql.BasicBinder.level = trace
logger.org.hibernate.SQL.level = trace
logger.org.hibernate.type.descriptor.sql.BasicExtractor.level = trace
  1. 在Hibernate的配置文件(通常是hibernate.cfg.xml)中添加以下配置,以启用log4j2日志框架:
代码语言:txt
复制
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.use_sql_comments">true</property>
<property name="hibernate.generate_statistics">true</property>
<property name="hibernate.jdbc.batch_size">50</property>
<property name="hibernate.order_inserts">true</property>
<property name="hibernate.order_updates">true</property>
<property name="hibernate.jdbc.batch_versioned_data">true</property>
<property name="hibernate.jdbc.fetch_size">100</property>
<property name="hibernate.jdbc.use_scrollable_resultset">true</property>
<property name="hibernate.jdbc.use_getGeneratedKeys">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.connection.release_mode">after_transaction</property>
<property name="hibernate.connection.autocommit">false</property>
<property name="hibernate.connection.provider_disables_autocommit">true</property>
<property name="hibernate.connection.isolation">2</property>
<property name="hibernate.connection.pool_size">10</property>
<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.timeout">1800</property>
<property name="hibernate.c3p0.max_statements">50</property>
<property name="hibernate.c3p0.idle_test_period">300</property>
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.validate">true</property>
<property name="hibernate.c3p0.preferredTestQuery">SELECT 1</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.testConnectionOnCheckin">true</property>
<property name="hibernate.c3p0.contextClassLoaderSource">library</property>
<property name="hibernate.c3p0.acquireRetryAttempts">1</property>
<property name="hibernate.c3p0.acquireRetryDelay">250</property>
<property name="hibernate.c3p0.breakAfterAcquireFailure">false</property>
<property name="hibernate.c3p0.maxIdleTime">1800</property>
<property name="hibernate.c3p0.maxIdleTimeExcessConnections">1800</property>
<property name="hibernate.c3p0.unreturnedConnectionTimeout">1800</property>
<property name="hibernate.c3p0.debugUnreturnedConnectionStackTraces">true</property>
<property name="hibernate.c3p0.numHelperThreads">3</property>
<property name="hibernate.c3p0.maxAdministrativeTaskTime">1800</property>
<property name="hibernate.c3p0.idleConnectionTestPeriod">1800</property>
<property name="hibernate.c3p0.autoCommitOnClose">false</property>
<property name="hibernate.c3p0.forceIgnoreUnresolvedTransactions">false</property>
<property name="hibernate.c3p0.contextClassLoaderSource">library</property>
<property name="hibernate.c3p0.preferredTestQuery">SELECT 1</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.testConnectionOnCheckin">true</property>
<property name="hibernate.c3p0.acquireRetryAttempts">1</property>
<property name="hibernate.c3p0.acquireRetryDelay">250</property>
<property name="hibernate.c3p0.breakAfterAcquireFailure">false</property>
<property name="hibernate.c3p0.maxIdleTime">1800</property>
<property name="hibernate.c3p0.maxIdleTimeExcessConnections">1800</property>
<property name="hibernate.c3p0.unreturnedConnectionTimeout">1800</property>
<property name="hibernate.c3p0.debugUnreturnedConnectionStackTraces">true</property>
<property name="hibernate.c3p0.numHelperThreads">3</property>
<property name="hibernate.c3p0.maxAdministrativeTaskTime">1800</property>
<property name="hibernate.c3p0.idleConnectionTestPeriod">1800</property>
<property name="hibernate.c3p0.autoCommitOnClose">false</property>
<property name="hibernate.c3p0.forceIgnoreUnresolvedTransactions">false</property>
  1. 运行项目,Hibernate 5.4将会使用log4j2进行日志输出,包括生成的参数和sql。

注意:以上配置仅适用于Hibernate 5.4版本,其他版本的Hibernate可能需要稍作调整。另外,配置中的日志级别和输出方式可以根据实际需求进行调整。

推荐的腾讯云相关产品:腾讯云日志服务(CLS),它是一种全托管的日志管理服务,可帮助您实时采集、存储、检索和分析日志数据。您可以使用CLS来收集和分析Hibernate生成的参数和sql的日志数据。了解更多信息,请访问:腾讯云日志服务(CLS)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

springBoot生成SQL文件-使用Hibernate5SchemaExport实现02

在上篇springBoot生成SQL文件-使用Hibernate5SchemaExport实现01中已经知道从Hibernate5.0.x开始通过程序生成SQL方式已变成: ServiceRegistry...这里通过两种方式实现,第一种为最初版本,第二种是第一种精简版,两种套餐可酌情使用。 初版 初版中通过手动注入关键been实现获取HibernateConfig配置。...分成了两个文件HibernateJavaConfig.javaGenerateDDLApplicationRunner.java HibernateJavaConfig.java 这个文件用于实现Hibernate...提供者使用, * 这里用于生成PersistenceUnitInfoBeen,用于代替persistence.xml * @param entityScanPackages...在内部,此FactoryBean解析persistence.xml文件本身并创建相应PersistenceUnitInfo对象(包含其他配置,例如JDBC DataSourcesSpring LoadTimeWeaver

1K20

springBoot生成SQL文件-使用Hibernate5SchemaExport实现01

上一篇我们说了使用jpa配置属性直接生成SQL全量脚本文件方式,想重新了解可以看:springBoot+jpa根据实体类注解生成SQL文件。...实现自动创建和更新数据库表结构,就应该有办法通过程序创建全量SQL增量SQL吧,通过搜索,找到了蛛丝马迹: 在Hibernate4.x中可直接使用: Configuration cfg = new...文件,对于本系列中本身使用注解项目而言则无法直接使用。...: /** * 根据运行mian函数时输入路径参数获取扫描路径, * 无输出时使用默认路径PATTERN * @param args */ private static String getPattern...JPA Entity类生成DDL查询类 * windcoder.com * 生成成功,但DIALECT_CLASS获取不友好。

1K20

Hibernate基本配置

常用方言(Mysql,Oracle) 1.4. 主键生成方式 1.4.1. 如何使用 1.4.2. 分类 1.4.3....-- 在控制台上打印出漂亮sql语句 --> true <!...后面会使用注解方式替代这个映射关系文件 创建 每一个实体类对应一个映射配置文件 映射关系文件名字最好是实体类名.hbm.xml(不强制规定) 最好实体类放在同一个包中 属性 class name...> 注意 如果实体类中属性表中属性字段相同,那么其中column可以省略,但是建议写全 SQL方言 告诉Hibernate使用是哪一个数据库,Hibernate便可以根据设定方言来对应数据库...主键生成方式 我们在学习mysql时候,一般都会设置主键为自增长,这个自增长就是主键生成方式 如何使用 主键生成策略是在映射关系文件中定义使用是定义 分类 常见分类

90410

5.16.2-如何在CDH中安装ElasticSearch

作者:李继武 文档编写目的 本文档主要介绍如何在CM中添加ELK服务,及配置说明。...log4j2.properties 该配置文件通过CM上日志配置以及parcel中默认log4j2.properties文件合并生成。 CM上关于日志配置有以下五项: ? ?...,不同pipeline使用不同前缀,属于一个pipeline配置使用相同前缀,此处,我们建议使用pipelineid作为前缀,比如,下面定义两个pipeline,testtest02: ?...log4j2.properties 该配置文件通过CM上日志配置以及parcel中默认log4j2.properties文件合并生成。 CM上关于日志配置有以下五项: ? ?...另外,为了避免日志打印到stderrstdout, rootLogger.appenderRef.console.reflogger.slowlog.appenderRef.console_slowlog.ref

2K60

Idea + maven 搭建 SSH (struts2 +hibernate5 + spring5) 环境

配置文件 3.4 struts 配置文件 四、使用 hibernate 逆向生成工具生成实体 4.1 配置数据库连接信息 4.2 逆向生成实体类 4.3 实体类配置 五、JavaBean 编写 5.1...trueprop> falseprop...我们还没有编写具体 action 服务,所以这里先跳过 四、使用 hibernate 逆向生成工具生成实体 4.1 配置数据库连接信息 使用 idea 自带数据库连接工具 完善基本配置信息...; // 生成对应 get set 方法 public HibernateTemplate getHibernateTemplate() { return hibernateTemplate...,就是使用 sql 语句查询,username password 两个字段是否存在即可,我们使用hibernate 框架,所以要写 hql 语句 Session session

71110

Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day11】 —— MyBatis1

正经回答:   Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory 生成Session...不同点:   Hibernate二级缓存配置在SessionFactory生成配置文件中进行详细配置,然后再在具体表-对象映射中配置是那种缓存。   ...在MyBatis中,“{xxx}”这样格式参数会直接参与SQL编译,从而不能避免注入攻击。但涉及到动态表名列名时,只能使用“{xxx}”这样参数格式。...上面代码中使用#即输入参数SQL中拼接部分,传入参数后,打印出执行SQL语句,会看到SQL是这样: select id, username, password, role from user...不管输入什么参数打印SQL都是这样。这是因为MyBatis启用了预编译功能,在SQL执行前,会先将上面的SQL发送给数据库进行编译;执行时,直接使用编译好SQL,替换占位符“?”就可以了。

1.3K30

MyBatis与Hibernate区别

个人觉得要用好Mybatis还是首先要先理解好Hibernate。 开发工作量 HibernateMyBatis都有相应代码生成工具。可以生成简单基本DAO层方法。...Hibernate HQL语句调优需要将SQL打印出来,而HibernateSQL被很多人嫌弃因为太丑了。MyBatisSQL是自己手动写所以调整方便。但Hibernate具有自己日志统计。...Hibernate拥有完整日志系统,Hibernate日志系统非常健全,涉及广泛,包括sql记录、关系异常、优化警告、缓存提示、脏数据警告等 Hibernate缺点: 学习门槛高,精通门槛更高,程序员如何设计...O/R映射,在性能对象模型之间如何取得平衡,以及怎样用好Hibernate方面需要经验能力都很强才行。...在Executor接口执行方法中,包含一个MappedStatement类型参数,该参数对映射信息封装,用于存储要映射SQL语句id、参数等: Mapper.xml文件中一个SQL对应一个MappedStatement

10110

探索Hibernate奥秘:简解其使用与实现过程

Hibernate核心组件 要深入了解Hibernate,首先需要认识其核心组件: Configuration:配置Hibernate,加载Hibernate配置文件映射文件,创建SessionFactory...Query:用于执行数据库查询,支持HQL(Hibernate Query Language)原生SQL。 3. Hibernate配置 在使用Hibernate之前,我们需要进行一些基本配置。...> 在这个配置文件中,我们定义了数据库连接属性、连接池设置、SQL方言、SQL输出以及实体类映射。...通过这些配置,Hibernate可以自动管理数据库连接并生成相应SQL语句。 4. 实体类映射 实体类是Hibernate进行对象关系映射核心。...,我们可以看到如何使用Hibernate进行基本CRUD操作,以及如何处理实体之间关系。

15410

Hibernate 使用详解

Hibernate核心组件 要深入了解Hibernate,首先需要认识其核心组件: Configuration:配置Hibernate,加载Hibernate配置文件映射文件,创建SessionFactory...Query:用于执行数据库查询,支持HQL(Hibernate Query Language)原生SQL。 3. Hibernate配置 在使用Hibernate之前,我们需要进行一些基本配置。...> 在这个配置文件中,我们定义了数据库连接属性、连接池设置、SQL方言、SQL输出以及实体类映射。...通过这些配置,Hibernate可以自动管理数据库连接并生成相应SQL语句。 4. 实体类映射 实体类是Hibernate进行对象关系映射核心。...,我们可以看到如何使用Hibernate进行基本CRUD操作,以及如何处理实体之间关系。

2500

p6使用教程_pwdump7使用

相关文件下载) hibernate控制sql语句参数配置: <!...,实际上hibernate打印都是一些预编译sql,无法打印真正sql.回顾一些jdbc(java使用连接数据api, Java DataBase Connectivity)直连数据库 Connection...,比如批量插入,删除等,可以直接使用statement. hibernate默认使用PreparedStatement,其取格式sql是预编译sql(参数没有被完全注入进来),从而会有一系列?...,要显示思路一种就是改变取sql时机,等参数全部注入完成再取(p6spy),一种就是利用log,将传入参数打印出来(这样sql,与参数分离),显然后一种没有前一种方便(hibernate打印sql)..." + sqlformat.format(sql) } } 这是使用hibernate格式化类,BasicFormatterImpl,以上展示参数都是可以展示,测试打印 //执行打印sql

30610

springboot之Web综合开发

,我经常需要自定义一些配置文件如何使用呢 配置在 application.properties 中 com.neo.title=纯洁微笑 com.neo.description=分享生活技术 自定义配置类...Jpa 是利用 Hibernate 生成各种自动化 sql,如果只是简单增删改查,基本上不用手写了,Spring 内部已经帮大家封装实现了。...= true 其实这个 hibernate.hbm2ddl.auto 参数作用主要用于:自动创建 更新 验证数据库表结构,有四个值: create: 每次加载 hibernate 时都会删除上一次生成表...dialect 主要是指定生成表名存储引擎为 InnoDBD show-sql 是否打印出自动生成 SQL,方便调试时候查看 3、添加实体类 Dao @Entity public class User...,就是可以根据方法名来自动生成 SQL, 比如findByUserName 会自动生成一个以 userName 为参数查询方法, 比如 findAlll 自动会查询表里面的所有数据,比如自动分页等等

1.8K10

hibernate基本使用

hibernate基本使用 1.hibernate简述 2.hibernate目录 3.hibernate基本使用 4.过程回顾 01 hibernate简述 hibernate框架应用在web三层架构...-8.0.17.jar 使用hibernate不用去自己手动连接数据库创建驱动对象,得到连接对象什么,这些语句都封装好了,所以你只需要去传入驱动包路径、url、用户名、密码这些参数即可。...:是否在控制台打印生成sql语句 format_sql:格式化控制台显示sql语句 最后还有一个mapping标签就是关于映射信息配置文件地址(全限定名),加载了核心配置文件之后,连接到数据库...语句再传入参数 最后关闭资源session.close( )、sessionFactory.close() 04 执行流程回顾 加载核心配置文件 保存对象时通过核心配置文件信息连接到数据库并且找到映射配置文件...生成sql语句,通过内省遍历domain类属性,按照映射配置文件对应映射关系传入参数sql语句 执行sql语句,数据库成功插入一条数据

81330

day29_Hibernate学习笔记_01

三、Hibernate入门案例【掌握】 3.1、编写流程 新建项目 导入jar包 创建数据库表 编写JavaBean相应映射文件hibernate mapping(*.hbm.xml) 编写核心配置文件...(hibernate.cfg.xml)--> 配置获取连接等参数 使用api测试 3.2、设计数据库表 CREATE DATABASE day29; USER day29; CREATE TABLE...参考文件所在位置:hibernate-distribution-3.6.10.Final\project\etc\hibernate.properties 提供了核心配置文件常用配置项及选择参数。...默认情况:hibernate生成insert或update语句,使用配置文件所有项             type        表中列类型。...--固定值:表示主键生成策略,如何生成主键                  native:由数据库来维护主键(数据库中配置:主键自增)                 generator:主键生成策略

1.1K20

Hibernate与MyBatis详解「建议收藏」

实现了POJO 和数据库表之间映射,以及SQL 自动生成执行。...1.2 MyBatis简介 iBATIS 着力点,则在于POJO 与SQL之间映射关系。然后通过映射配置文件,将SQL所需参数,以及返回结果字段映射到指定POJO。...开发工作量 HibernateMyBatis都有相应代码生成工具。可以生成简单基本DAO层方法。 针对高级查询,Mybatis需要手动编写SQL语句,以及ResultMap。...Hibernate HQL语句调优需要将SQL打印出来,而HibernateSQL被很多人嫌弃因为太丑了。MyBatisSQL是自己手动写所以调整方便。但Hibernate具有自己日志统计。...Hibernate缺点就是学习门槛不低,要精通门槛更高,而且怎么设计O/R映射,在性能对象模型之间如何权衡取得平衡,以及怎样用好Hibernate方面需要你经验能力都很强才行。

53710

Hibernate打印SQL及附加参数

Hibernate配置文件hibernate.cfg.xml中有3个设置项跟显示SQL语句相关,他们值都是boolean值: 1、show_sql:是否显示SQL语句 2、format_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...=TRACE #查看查询中命名参数值  log4j.logger.org.hibernate.engine.QueryParameters=DEBUG  log4j.logger.org.hibernate.engine.query.HQLQueryPlan...=DEBUG 使用时只需要将hibernate.cfg.xml中show_sql设置为true然后将红色代码复制到配置文件中即可。

3.3K20

持久层框架中是什么让你选择 MyBatis?

使用 Hibernate 时候,Java 开发可以使用映射文件或是注解定义 Java 语言中类与数据库中表之间各种映射关系,这里使用映射文件后缀为“.hbm.xml”。...Hibernate 映射文件中,都定义了相应 XML 标签,原理与“一对多”基本一致,只是使用方式场景略有不同,这里就不再展开介绍,你若感兴趣的话可以参考 Hibernate 官方文档进行学习。...但是,我们很难修改 Hibernate 生成 SQL 语句。为什么这么说呢?...因为在一些场景中,数据库设计非常复杂,表与表之间关系错综复杂,Hibernate 引擎生成 SQL 语句会非常难以理解,要让生成 SQL 语句使用正确索引更是难上加难,这就很容易生成慢查询 SQL...MyBatis 提供了强大动态 SQL 功能来帮助我们开发者摆脱这种重复劳动,我们只需要在映射配置文件中编写好动态 SQL 语句,MyBatis 就可以根据执行时传入实际参数值拼凑出完整、可执行

41730
领券