仅限HIbernate show_sql开发

时间:2012-04-23 23:27:04

标签: java hibernate

使用hibernate如何才能在开发模式下启用show_sql? 我想要那个 <property name="show_sql">true</property>被禁用以进行生产并为开发环境启用。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

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

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

然后您只需根据表明您处于开发模式的状态选择true / false。