IT정리노트

블로그 이미지

Edward. K

메멘토적 기억능력을 소유한 개발자 노트.

Clob Type insert _use JAVA

DB/Oracle 2008. 4. 18. 08:29
반응형
Column 형식을 CLOB로 했을경우의 처리방안.
  단..웬만하면.. CLOB으로 처리하지 말자....
  대신..  Varchar2 형식의 컬럼을 복수로 사용해서 처리하도록 하는 것이 퍼포먼스가 더 좋을것임.

      public int insert(TestModel tModel) throws DataAccessException {
        String sql = getMessageSourceAccessor().getMessage(SQL_TEST);
        Object[] values = new Object[] {
            new Long(tModel.getTestId()),
            new Integer(tModel.getTestName()),
           tModel.geTestUser(),
            new Integer(tModel.getSsnNo()),
            new SqlLobValue(tModel.getContents(), oracleLobHandler)
        };
        
        int[] types = new int[] {
            java.sql.Types.BIGINT,
            java.sql.Types.INTEGER,
            java.sql.Types.VARCHAR,
            java.sql.Types.NUMERIC,
            java.sql.Types.CLOB
        };
        return getJdbcTemplate().update(sql, values, types);
    }

http://blog.daum.net/uttiboy   2008-11-23  추가

다음은 회사 솔루션에서 CLOB관련 처리를 위해 사용했던 방식을 정리한 내용입니다.

다른분들께 도움이 되었으면 합니다...

 

스프링의 org.springframework.jdbc.support.lob.LobHandler를 사용하면 편리하게 CLOB관련 데이타 처리를 할수 있습니다. 다음은 스프링 JDBC패키지를 통한 CLOB데이타 처리 방법입니다.

 

1.스프링 설정파일에 lobHandler라는 OracleLobHandler bean설정을 합니다.

 

NativeJdbcExtractor는 웹애플리케이션 별로 따로 존재하며 톰캣의 경우 CommonsDbcpNativeJdbcExtractor를 사용합니다. 웹로직,웹스피어,JBoss의 경우 제공되지만 Jeus의 경우에는 CommonsDbcpNativeJdbcExtractor를 사용했을때 큰 문제는 없었지만 좀 더 테스트가 필요합니다.

 

 <bean id="nativeJdbcExtractor"
  class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor"/>
 
 <bean id="lobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler">
  <property name="nativeJdbcExtractor">
  <ref bean="nativeJdbcExtractor"/>
  </property>
 </bean>


기타 스프링에서 제공되는 NativeJdbcExtractor


    org.springframework.jdbc.support.nativejdbc.C3P0NativeJdbcExtractor

    org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor   

    org.springframework.jdbc.support.nativejdbc.JBossNativeJdbcExtractor

    org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor

    org.springframework.jdbc.support.nativejdbc.WebLogicNativeJdbcExtractor

    org.springframework.jdbc.support.nativejdbc.WebSphereNativeJdbcExtractor

    org.springframework.jdbc.support.nativejdbc.XAPoolNativeJdbcExtractor

 

2. CLOB관련 데이타 처리가 필요한 DAO나 bean에 위에서 선언한 lobHandler를 설정해줍니다.

 

예) 블로그 글 등록 DAO 설정

 <bean id="aaaDAO"
  class="netville.aaaDAOImpl">
  <property name="dataSource">
   <ref bean="dataSource" />
  </property>
  <property name="lobHandler">
        <ref bean="lobHandler" />
     </property> 
 </bean>

 

3. 해당 bean에서 lobHander를 이용하여 CLOB데이타 처리 예제코드 입니다. 스프링 JDBCSupport를 상속받은 클래스에서 SqlUpdate를 이용한 예제입니다. 일반적인 PreparedStatement를 사용하는 방식과 유사합니다.

 

- 등록, 수정시.


       String sqls = " INSERT INTO CLOB_TABLE ( CONTENTS, COTENTS_ID) VALUES (?,?)";

       SqlUpdate sqlUpdate = new SqlUpdate();
       sqlUpdate.setDataSource(getDataSource());
       sqlUpdate.setSql(sqls);

       sqlUpdate.declareParameter(new SqlParameter("CONTENTS", Types.CLOB));
       sqlUpdate.declareParameter(new SqlParameter("CONTENTS_ID", Types.INTEGER));


       sqlUpdate.compile();

       SqlLobValue lobValue = new SqlLobValue(contents, lobHandler);

       sqlUpdate.update(new Object[]{lobValue, new Long(contentsId)});

 

- 조회시
    조회시 lobHandler의 getClobAsString함수를 호출하여 CLOB필드의 데이타를 조회합니다.

    rs = xxxx
    ..
    String contents =  lobHandler.getClobAsString(rs, "CONTENTS");
    ..

반응형
Posted by Edward. K
블로그 이미지

메멘토적 기억능력을 소유한 개발자 노트.

by Edward. K

공지사항

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

태그

  • 전자정부프레임워크
  • toad
  • 컴퓨터 관리
  • 가상화폐무료
  • 사업 이야기
  • 색상코드표
  • 캡쳐툴
  • iBATIS
  • rocketdock
  • 개한민국
  • STS
  • 이미지 편집
  • 미네르바
  • sqlgate
  • Flash Player
  • Eclipse
  • tomcat
  • 플래시 게임
  • Jboss
  • EkNote
  • netbeans
  • eclipse plugin
  • EditPlus
  • flex
  • 이클립스
  • Graphic
  • android
  • 중독성게임
  • egov
  • ERwin

글 보관함

«   2026/01   »
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

링크

카테고리

분류 전체보기 (792)
행운이와함께 (1)
EkNote Project (18)
ARIS (0)
Android (2)
LINK (39)
UML (9)
Programming (154)
Cobol (0)
ASP (0)
CSS (5)
C_C++ (2)
IBatis (2)
JSP (3)
JAVA (76)
JavaScript (44)
PHP (2)
Utility (76)
Protable (3)
MobileProgram (4)
SKT (0)
KTF (0)
LGT (0)
자료들 (4)
DB (82)
mongoDB (0)
MySQL (8)
Oracle (61)
MSSQL (4)
Graphic (8)
Flash (3)
PhotoShop (3)
SourceFactory (4)
Collection (73)
작가의기막힌상상력 (14)
미소를찾아보는공간 (44)
내심장은작동중일까 (6)
멀더와스컬리의노트 (3)
이건어디에사용할까 (6)
Edward (275)
나만 알기엔 아까워 (100)
기억하기 위한 기록 (123)
시선이 머무는 공간 (50)
숨기고 싶은 이야기 (2)

카운터

Total
Today
Yesterday
방명록 : 관리자 : 글쓰기
Edward. K's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

IT정리노트

메멘토적 기억능력을 소유한 개발자 노트.

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • 분류 전체보기 (792)
    • 행운이와함께 (1)
    • EkNote Project (18)
    • ARIS (0)
    • Android (2)
    • LINK (39)
    • UML (9)
    • Programming (154)
      • Cobol (0)
      • ASP (0)
      • CSS (5)
      • C_C++ (2)
      • IBatis (2)
      • JSP (3)
      • JAVA (76)
      • JavaScript (44)
      • PHP (2)
    • Utility (76)
      • Protable (3)
    • MobileProgram (4)
      • SKT (0)
      • KTF (0)
      • LGT (0)
      • 자료들 (4)
    • DB (82)
      • mongoDB (0)
      • MySQL (8)
      • Oracle (61)
      • MSSQL (4)
    • Graphic (8)
      • Flash (3)
      • PhotoShop (3)
    • SourceFactory (4)
    • Collection (73)
      • 작가의기막힌상상력 (14)
      • 미소를찾아보는공간 (44)
      • 내심장은작동중일까 (6)
      • 멀더와스컬리의노트 (3)
      • 이건어디에사용할까 (6)
    • Edward (275)
      • 나만 알기엔 아까워 (100)
      • 기억하기 위한 기록 (123)
      • 시선이 머무는 공간 (50)
      • 숨기고 싶은 이야기 (2)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바