programing

실제 SQL 표시 최대 절전 모드

bestcode 2022. 8. 17. 23:49
반응형

실제 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

반응형