spring 에서 Oacle 필드 를 어떻게 처리 합 니까?

3493 단어 springOacle
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 에 따라 처리 하고 특별한 인 코딩 이 필요 하지 않 습 니 다.

좋은 웹페이지 즐겨찾기