복붙노트

[SQL] 최대 절전 모드는 실제 SQL을 보여 [중복]

SQL

최대 절전 모드는 실제 SQL을 보여 [중복]

I 세트의 경우

<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?

해결법

  1. ==============================

    1.당신은 SQL이 (당신의 예와 비슷한 포맷) 데이터베이스로 직접 전송보고 싶은 경우에, 당신은 JDBC 드라이버에 P6Spy 같은 프록시 (또는 log4jdbc)의 어떤 종류를 사용해야합니다.

    당신은 SQL이 (당신의 예와 비슷한 포맷) 데이터베이스로 직접 전송보고 싶은 경우에, 당신은 JDBC 드라이버에 P6Spy 같은 프록시 (또는 log4jdbc)의 어떤 종류를 사용해야합니다.

    또한 다음과 같은 범주 (여기에 log4j.properties 파일을 사용)의 로깅을 사용할 수 있습니다 :

    log4j.logger.org.hibernate.SQL=DEBUG
    log4j.logger.org.hibernate.type=TRACE
    

    먼저 그 중에서도 = TRUE, 제 지문 바운드 파라미터으로 hibernate.show_sql 동일하다.

  2. ==============================

    2.

    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
    
    <property name="show_sql">true</property>
    <property name="format_sql">true</property>
    <property name="use_sql_comments">true</property>
    

    일부 프레임 워크의 persistence.xml을 사용합니다 :

    <property name="hibernate.show_sql" value="true"/>
    <property name="hibernate.format_sql" value="true"/>
    <property name="hibernate.use_sql_comments" value="true"/>
    
  3. ==============================

    3.이미 인쇄중인 SQL을 볼 수 있다면, 그 방법은 당신은 당신의 hibernate.cfg.xml 내에서 아래의 코드를 가지고 :

    이미 인쇄중인 SQL을 볼 수 있다면, 그 방법은 당신은 당신의 hibernate.cfg.xml 내에서 아래의 코드를 가지고 :

    <property name="show_sql">true</property>
    

    뿐만 아니라 바인드 매개 변수를 인쇄하려면 log4j.properties 파일에 다음을 추가합니다 :

    log4j.logger.net.sf.hibernate.type=debug
    
  4. ==============================

    4.그대로 표시되는 코드가 데이터베이스로 전송되는 것을 주목할 필요가 쿼리 예방 SQL 주입 별도로 전송됩니다. AFAIK? 마크는하지 최대 절전 모드로, 데이터베이스에서 숫자 PARAMS로 대체 자리 표시 자입니다.

    그대로 표시되는 코드가 데이터베이스로 전송되는 것을 주목할 필요가 쿼리 예방 SQL 주입 별도로 전송됩니다. AFAIK? 마크는하지 최대 절전 모드로, 데이터베이스에서 숫자 PARAMS로 대체 자리 표시 자입니다.

  5. ==============================

    5.true.employee this_ 곳 this_.code =에서 this_.code을 선택? 데이터베이스로 전송됩니다 것입니다.

    true.employee this_ 곳 this_.code =에서 this_.code을 선택? 데이터베이스로 전송됩니다 것입니다.

    this_는 직원 테이블의 인스턴스에 대한 별칭입니다.

  6. from https://stackoverflow.com/questions/2536829/hibernate-show-real-sql by cc-by-sa and MIT license