2012-04-23 5 views
2

최대 절전 모드 어떻게 show_sql을 개발 모드에서만 사용할 수 있습니까? 나는 그 제품이 생산되고, 개발 환경 용으로 사용 가능하도록 설정하기를 원합니다.
<property name="show_sql">true</property>.HIbernate show_sql 개발 만

+0

'ant'와 같은 배포 스크립트를 사용하고 있습니까? –

+1

이 링크를 확인하십시오. 나는 당신이 대부분의 정보를 찾을 것이라고 생각합니다. http://stackoverflow.com/questions/7738560/how-to-connect-to-different-databases-development : [1] [1] [다른 데이터베이스 디바이스 시험 제작 연결] -test-production-transparentl – Tejas

+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 

은 마찬가지로 더 많은 구성 정보를 추가 할 수있는 샘플 파일을합니다. 이 파일은 다른 환경에서 다를 수 있습니다.

+0

감사! 이 속성 파일을 읽고 구문 분석하는 방법을 알려주시겠습니까? –

+0

@PratikKhadloya : 봄을 사용하고 있습니까? – ManuPK

1

"개발 모드에서"라는 것은 런타임에 코드가 알고있는 것으로 가정합니다. 그렇지 않으면 구성 파일의 플래그를 간단히 변경하기 때문입니다. 당신이있어 나타냅니다 당신이 당신의 상태에 따라 참/거짓 선택해야 다음

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

:이 경우

, 당신은 프로그램 실행시에 show_sql 특성 (또는 다른 속성)를 설정할 수 있습니다 개발 모드에서 또는 아닙니다.

+0

http://docs.jboss.org/hibernate/core/3.5/javadocs/org/hibernate/cfg/Configuration.html : "구성은 초기화 시간 객체로만 의미가 있으며, SessionFactorys는 변경할 수 없으며 유지되지 않습니다. 구성에 대한 모든 연결. " 따라서 응용 프로그램 시작시에만 변경할 수 있으며 세션을 만든 후에는 변경할 수 없습니다. – migu

관련 문제