programing

스프링 부트 show sql 파라미터 바인딩?

megabox 2023. 3. 5. 09:40
반응형

스프링 부트 show sql 파라미터 바인딩?

나는 봄 부츠를 처음 신는다.sql 파라미터 바인딩의 구성 설정은 무엇입니까?예를 들어, 다음 행에서는 모든 '?'에 대한 값을 볼 수 있습니다.

SELECT * FROM MyFeed WHERE feedId > ? AND isHidden = false ORDER BY feedId DESC LIMIT ?

현재 다음과 같은 구성을 가지고 있습니다.

spring.jpa.show-sql: true 

이러한 항목을 에 추가합니다.application.properties상세 로그가 표시됩니다.

logging.level.org.hibernate.SQL=debug
logging.level.org.hibernate.type.descriptor.sql=trace

응용 프로그램 yml에서 다음 속성을 추가합니다.

logging:
  level:
    org:
      hibernate:
        type: trace

콘솔에서 포맷된 SQL을 인쇄하려면 다음을 추가합니다.

spring:
  jpa:
    show-sql: true
    properties:
      hibernate:
        format_sql: true

ID로 학생 기록을 찾고 있으며 다음과 같이 바인딩 매개 변수를 볼 수 있다고 가정합니다.

휴지 상태: student0_에서 student0_.id를 id8_5_0_로 선택합니다.여기서 student0_.id=?

2020-07-30 12:20:44.005 TRACE 1328 --- [nio-8083-exec-8]o.h.type.descriptor.sql.BasicBinder : [ BIGINT ]- [ 1 ]의 바인딩 파라미터

이는 기본 지속성 공급자에 대한 힌트에 불과합니다.휴지 상태, Eclipse Link 등무엇을 사용하고 있는지 모르면 말하기 어렵다.

휴지 상태의 경우 바인드 파라미터도 출력하도록 로깅을 설정할 수 있습니다.

http://www.mkyong.com/hibernate/how-to-display-hibernate-sql-parameter-values-log4j/

다음과 같은 출력을 얻을 수 있습니다.

Hibernate: INSERT INTO transaction (A, B) 
VALUES (?, ?)
13:33:07,253 DEBUG FloatType:133 - binding '10.0' to parameter: 1
13:33:07,253 DEBUG FloatType:133 - binding '1.1' to parameter: 2

모든 JPA 프로바이더에서 동작할 수 있는 대체 솔루션은 log4jdbc와 같은 것을 사용하는 것입니다.이것에 의해, 보다 좋은 출력이 실현됩니다.

INSERT INTO transaction (A, B) values (10.0, 1.1);

참조:

https://code.google.com/p/log4jdbc-log4j2/

속성 파일에 추가

#to show sql
spring.jpa.properties.hibernate.show_sql=true
#formatting
spring.jpa.properties.hibernate.format_sql=true
#printing parameter values in order
logging.level.org.hibernate.type.descriptor.sql=trace

Eclipse 링크의 경우 application.properties에 다음 행을 추가합니다.

jpa.eclipselink.showsql=true
jpa.eclipselink.logging-level=FINE

위해서Spring Boot 3사용하는 대로Hibernate 6, Abroves가 작동하지 않습니다.

시험:

logging:
  pattern:
  level:
    org.hibernate.orm.jdbc.bind: trace

참조: https://stackoverflow.com/a/74862954/2648077 및 https://stackoverflow.com/a/74862954/2648077

언급URL : https://stackoverflow.com/questions/30890076/spring-boot-show-sql-parameter-binding

반응형