4

使用休眠模式,我如何仅在开发模式下启用 show_sql?我希望将
<property name="show_sql">true</property>其禁用用于生产并启用用于开发环境。

4

2 回答 2

3

您应该将环境相关信息保存在单独的属性文件中。该文件应该从您的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

同样,您可以添加更多配置信息。这个文件在不同的环境中会有所不同。

于 2012-04-24T03:48:27.947 回答
1

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

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

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

那么你只需要根据你的状态选择真/假,这表明你是否处于开发模式。

于 2012-04-24T01:12:30.017 回答