spring 에서 Oacle 필드 를 어떻게 처리 합 니까?
spring 에 서 는 OacleLob Handler 를 사용 하여 Oacle 필드 (clob 와 blob 포함) 를 처리 합 니 다. 프로그램 에 서 는 Oacle 의 특수 클래스 를 참조 하지 않 아 도 됩 니 다.
그래서 Spring 의 주 프로필 xx. xml 에 있 는 Session Factory 의 bean 설정:
----------------------------------------------------------------------
<bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor" lazy-init="true" autowire="default" dependency-check="default"/>
<bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true" autowire="default" dependency-check="default">
<property name="nativeJdbcExtractor" ref="nativeJdbcExtractor"/>
</bean>
<bean id="sessionFactory" class="org.hibernate.cfg.SWSSessionFactoryBean" lazy-init="false" autowire="default" dependency-check="default">
...
<property name="lobHandler">
<ref bean="oracleLobHandler"/>
</property>
...
</bean>
----------------------------------------------------------------------
nativejdbcExtractor 와 lobHandler 가 모두 lazy - init = "true" 로 설정 되 어 있 음 을 알 수 있 습 니 다.
이것 은 nativeJdbcExtractor 가 운행 기간 의 반사 체 제 를 통 해 바 텀 JDBC 대상 을 가 져 와 야 하기 때 문 입 니 다.
그래서 스프링 용기 가 작 동 할 때 이 두 빈 을 예화 하 는 것 을 피해 야 한다.
& lt; 비고: 위의 SWSSession Factory Bean 은 재 작성 되 었 으 며, Annotation Session Factory Bean 을 계승 합 니 다 & gt;
1. 우선 데이터 시트 의 clob 형식 은 자바 지구 화 류 의 String 형식 에 대응 합 니 다.그리고 blob 형식 은 byte [] 형식 에 대응 합 니 다.
2. 1. hibenate 라벨 을 정의 할 때 지구 화 클래스 에서 clob 형식의 속성 에 대응 하 는 hibenate type 은 org. spring from work. orm. hibenate. support. ClobStringType 이 어야 합 니 다.그리고 blob 형식의 속성 에 대응 하 는 hibenate type 은 org. springframework. orm. hibenate. support. BlobyteArray Type 이 어야 합 니 다.
2. spring 주석 기능 을 통 해 PoJo 클래스 를 설정 할 때 이 필드 속성의 getXXX () 방법 앞 에 주석 을 추가 합 니 다.
----------------------------------------------------------------------
public String xxx;
...
@Lob
@Type(type="org.springframework.orm.hibernate3.support.ClobStringType")
@Column(length=10000)
public String getXXX ()
{
return xxx;
}
---------------------------------------------------------------------- 설명:
@ Lob: 큰 필드, lob 는 blob 와 clob 를 포함 합 니 다. 그 중에서 clob 는 일반 텍스트 에 사용 되 고 blob 는 텍스트 가 아 닌 그림 에 사 용 됩 니 다.
@Type(type="org.springframework.orm.hibernate3.support.ClobStringType"):Oracle JDBC
스 트림 작업 이 대량 으로 실행 되 는 것 을 허용 하지 않 으 며, Oracle CLOB 는 스 트림 메커니즘 을 데이터 읽 기와 쓰기 방식 으로 사용 하 며, 두 가지 충돌 이 있 습 니 다.
그래서 이 주석 으로 해결 하면 spring 이 LOB 에 좋 은 지원 을 하 는 것 을 알 수 있 습 니 다. blob 를 사용 하면 support 를 사용 할 수 있 습 니 다.
면 type 고 쳐.물론 < prop key = "hibenate. jdbc. batch size" > 0 < / prop > 도 설정 할 수 있 습 니 다. 하지만 이것 은...
방법 이 비교적 좋 지 않 아 효율 에 영향 을 줄 수 있 으 므 로 추천 하지 않 습 니 다.
@ Column (length = 10000): 이것 은 간단 합 니 다. 길 이 를 제한 하 는 것 입 니 다. 최대 치 는 직접 사 이 드 하지 않 았 습 니 다. 이론 적 으로 4G 이지 만
NTFS 파일 시스템 은 4G 뿐만 아니 라 시도 해 보지 않 았 을 수도 있 습 니 다.
3. 나중에 clob 와 blob 형식의 속성 에 접근 할 때 일반 속성 getorSet 에 따라 처리 하고 특별한 인 코딩 이 필요 하지 않 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.