2012-04-23 51 views
2

使用hibernate我如何才能在開發模式中啓用show_sql? 我想
<property name="show_sql">true</property>被禁用的生產和啓用開發環境。僅HIbernate show_sql開發

+0

你是否使用過像'ant'這樣的部署腳本? – 2012-04-23 23:29:39

+1

檢查這個鏈接..我想你會找到大部分的信息。 [連接不同的數據庫DEV-測試生產] [1] [1]:http://stackoverflow.com/questions/7738560/how-to-connect-to-different-databases-development -test-production-transparentl – Tejas 2012-04-23 23:34:06

+0

你如何在開發和生產中做出不同的事情?說真的,你最近怎麼樣?因爲你的答案需要與此相符,理想情況下應該以同樣的方式完成。 – 2012-04-24 04:43:09

回答

2

您應該將環境相關信息保存在單獨的屬性文件中。此文件應從您的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 

同樣,你可以添加更多的配置信息。這個文件在不同的環境下會有所不同。

+0

謝謝!你能告訴我如何閱讀和解析這個屬性文件嗎? – 2012-05-02 18:56:33

+0

@PratikKhadloya:你用春天嗎? – ManuPK 2012-05-03 02:36:40

1

我假設你的問題是「在開發模式下」是你的代碼在運行時知道的東西,否則你只需要改變配置文件中的標誌。

在這種情況下,您可以設置show_sql屬性(或任何其他財產)程序在運行時:

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

,那麼你只需要根據自己的狀況選擇真/假,指示你在開發模式下還是不開發。

+0

來自http://docs.jboss.org/hibernate/core/3.5/javadocs/org/hibernate/cfg/Configuration.html:「配置僅用作初始化時間對象,SessionFactorys是不可變的,不會保留任何關聯回到配置「。所以只能在應用程序啓動時進行更改,而不是在創建會話之後進行更改。 – migu 2013-11-05 19:10:49