当前位置: 首页 > 面试题库 >

Java 使用Hibernate时如何打印带有参数值的查询字符串

邓鸿信
2023-03-14
问题内容

在Hibernate中是否可以用实际值而不是问号打印生成的SQL查询?

如果Hibernate API无法实现,您将如何建议使用实值打印查询?


问题答案:

您需要为以下类别启用日志记录:

  • org.hibernate.SQL -设置debug为在执行所有SQL DML语句时记录它们
  • org.hibernate.type-设置为trace记录所有JDBC参数

因此,log4j配置如下所示:

# logs the SQL statements
log4j.logger.org.hibernate.SQL=debug 

# Logs the JDBC parameters passed to a query
log4j.logger.org.hibernate.type=trace 

第一个等效于hibernate.show_sql=truelegacy 属性,第二个则打印绑定参数。

另一个解决方案(基于非hibernate)是使用JDBC代理驱动程序,如P6Spy。



 类似资料:
  • 问题内容: 在Hibernate中是否可以用实际值而不是问号打印生成的SQL查询? 如果Hibernate API无法实现,您将如何建议使用实值打印查询? 问题答案: 您需要为以下类别启用日志记录: -设置为在执行所有SQL DML语句时记录它们 -设置为记录所有JDBC参数 因此,log4j配置如下所示: 第一个等效于legacy 属性,第二个则 打印绑定参数。 另一个解决方案(基于非hiber

  • 我们使用SQL Server数据库。当试图使用27GB内存在具有100M条记录的表上运行查询时,Hibernate会将查询(无论是

  • 我的log4j.xml有以下内容: 即使在设置了这些配置之后,我仍然没有看到包含值的精确的select查询。我还有一种感觉,日志记录级别实际上不起作用,因为我没有看到任何来自Hibernate的过度日志记录。此外,我多次构建maven只是为了确保构建了新属性。这是日志的外观:

  • 问题内容: 如何将hibernate参数设置为“空”?例: 就我而言,状态字符串可以为null。我已经调试了它,然后hibernate,然后生成了这样的SQL字符串/查询..... 但这在MYSQL中不起作用,因为正确的SQL语句必须为“ ”(Mysql无法理解status=null并对此进行评估为false,因此根据我已阅读的mysql文档,查询将不会返回任何记录…) 我的问题: 为什么不将空字

  • 问题内容: 我有一个HTTP客户端(目前)的Node.js应用程序。所以我在做: 这似乎是完成此任务的一种好方法。但是,我有些沮丧,我必须执行此步骤。这应该由一个公共库封装,但是我还没有看到它存在于node的库中,而且我不确定哪个标准的npm包可以完成它。有没有一种合理使用的更好的方法? url.format方法节省了构建自己的URL的工作。但理想情况下,请求的级别也应高于此级别。 问题答案: 检

  • 我正在开发一个文本编辑器,我的下一个目标是在打印机上打印书面文本(而不是sysout)。 我试了很多次,它起作用了,但是换行符被忽略了。 我创建了一个新的图形并设置了字体。然后我把写在编辑器窗口中的文本。iPosX 你们有什么想法,我可以打印整个字符串考虑到行中断? 提前感谢!