실제 SQL 표시 최대 절전 모드
내가 정하면
<property name="show_sql">true</property>
콘솔의 hibernate.cfg.xml 설정 파일에서 SQL을 볼 수 있습니다.
하지만 실제 SQL이 아닙니다.데이터베이스에 직접 전달되는 SQL 코드를 볼 수 있을까요?
예:
알겠습니다.
select this_.code from true.employee this_ where this_.code=?
봐도 될까요?
select employee.code from employee where employee.code=12
실제 SQL을 사용할 수 있습니까?
실제 SQL을 볼 수 있을까요?
데이터베이스로 직접 전송된 SQL(예시와 유사한 형식)을 보려면 P6Spy(또는 log4jdbc)와 같은 jdbc 드라이버 프록시를 사용해야 합니다.
또는 다음 카테고리의 로깅을 이노블로 할 수 있습니다.log4j.properties
파일 여기) :
log4j.logger.org.hibernate.SQL=DEBUG
log4j.logger.org.hibernate.type=TRACE
첫 번째는 에 해당합니다.hibernate.show_sql=true
두 번째는 바인딩된 파라미터를 출력합니다.
언급
log4j.properties
log4j.logger.org.hibernate=INFO, hb
log4j.logger.org.hibernate.SQL=DEBUG
log4j.logger.org.hibernate.type=TRACE
log4j.logger.org.hibernate.hql.ast.AST=info
log4j.logger.org.hibernate.tool.hbm2ddl=warn
log4j.logger.org.hibernate.hql=debug
log4j.logger.org.hibernate.cache=info
log4j.logger.org.hibernate.jdbc=debug
log4j.appender.hb=org.apache.log4j.ConsoleAppender
log4j.appender.hb.layout=org.apache.log4j.PatternLayout
log4j.appender.hb.layout.ConversionPattern=HibernateLog --> %d{HH:mm:ss} %-5p %c - %m%n
log4j.appender.hb.Threshold=TRACE
휴지 상태.cfg.xml
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="use_sql_comments">true</property>
persistence.xml
일부 프레임워크에서는persistence.xml
:
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.use_sql_comments" value="true"/>
SQL이 이미 인쇄되어 있는 경우는, 다음의 코드가 hibernate.cfg.xml 에 있는 것을 의미합니다.
<property name="show_sql">true</property>
바인드 파라미터도 인쇄하려면 log4j.properties 파일에 다음 항목을 추가합니다.
log4j.logger.net.sf.hibernate.type=debug
표시되는 코드는 그대로 데이터베이스로 전송되므로 SQL 주입을 방지하기 위해 쿼리는 별도로 전송됩니다.AFIK ? 마크는 휴지 상태가 아닌 데이터베이스에 의해 숫자 매개 변수로 대체되는 플레이스 홀더입니다.
select this_.code from true.employee this_ where this_.code=?
데이터베이스로 전송되는 파일입니다.
this_
의 해당 인스턴스의 에일리어스입니다.employee
테이블.
언급URL : https://stackoverflow.com/questions/2536829/hibernate-show-real-sql
'programing' 카테고리의 다른 글
추상 클래스를 유닛화하는 방법: stub를 사용하여 확장? (0) | 2022.08.17 |
---|---|
구조 선언의 콜론은 :1, :7, :16 또는 :32와 같이 무엇을 의미합니까? (0) | 2022.08.17 |
C 프로그래밍: 다른 함수의 malloc() (0) | 2022.08.17 |
소품을 사용하여 v-model을 초기화하시겠습니까? (0) | 2022.08.17 |
C 또는 C++ 표준에서는 char를 부호 있는 문자 또는 부호 없는 문자로 명시적으로 정의하지 않는 이유는 무엇입니까? (0) | 2022.08.17 |