Java HIbernate仅显示sql开发

Java HIbernate仅显示sql开发,java,hibernate,Java,Hibernate,使用hibernate,如何仅在开发模式下启用show_sql? 我想要这个 true在生产环境中禁用,在开发环境中启用。根据您的问题,我假设“处于开发模式”是您的代码在运行时知道的,否则您只需更改配置文件中的标志 在这种情况下,可以在运行时以编程方式设置show_sql属性(或任何其他属性): Configuration config = new Configuration(); config.setProperty(Environment.SHOW_SQL, "true"); config.

使用hibernate,如何仅在开发模式下启用show_sql? 我想要这个

true
在生产环境中禁用,在开发环境中启用。

根据您的问题,我假设“处于开发模式”是您的代码在运行时知道的,否则您只需更改配置文件中的标志

在这种情况下,可以在运行时以编程方式设置show_sql属性(或任何其他属性):

Configuration config = new Configuration();
config.setProperty(Environment.SHOW_SQL, "true");
config.buildSessionFactory();
...

然后,您只需要根据指示您是否处于开发模式的状态选择true/false。

您应该将环境相关信息保存在一个单独的属性文件中。此文件应从您的hibernate.cfg.xmlapplicationContext.xml读取

这是示例文件

###########################################################
################DATABASE INFORMATION ######################
###########################################################
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/appDB1
jdbc.username=root
jdbc.password=root


# Set Hibernate properties
hibernate.show_sql=true
hibernate.format_sql=false

类似地,您可以添加更多配置信息。此文件在不同的环境中会有所不同

您是否使用任何部署脚本,如
ant
?请检查此链接。。我想你会找到大部分信息。[连接不同的数据库开发测试产品][1][1]:您如何使开发与生产有所不同?说真的,你是怎么做到的?因为你的答案需要与之兼容,理想情况下也应该如此。谢谢!您还可以告诉我如何读取和解析此属性文件吗?@PratikKhadloya:您使用的是spring吗?From:“配置仅作为初始化时间对象。SessionFactory是不可变的,不会保留与配置的任何关联。”因此,更改只能在应用程序启动时进行,而不是在创建会话之后。