iWiz ShareBase

IT Specialist 윤태현의 iWiz ShareBase는 IT뿐 아니라 각종 잡다한 지식들을 함께 나누는 지식공유 커뮤니티입니다.

iWiz,ShareBase,윤태현,Java,JSP,EJB,IT,정보기술,웹프로그래밍,PHP,ASP,DBMS,MySQL,서버,네트워크,server,network,WAS,웹애플리케이션,블로그,blog,웹서버,DB,오라클,oracle,mysql,JRun,웹로직,톰캣,tomcat,아파치,자동차,EF쏘나타,로또 6/45

갤러리 Pixelgrapher.com | 로또 6/45 번호생성 및 통계 데이터 | 전체기사보기 | 전체글 #1 | 전체글 #2 | 전체글 #3 | 전체글 #4 | 전체글 #5 | 전체글 #6 | 전체글 #7 | 전체글 #8 | 전체글 #9 | 전체글 #10 |
HOME iWiz
ShareBase
Remember 0523 & 0818
지식은 나눌수록 커집니다 - iWiz's ShareBase
웹프로그래밍(기타) PHP, ASP, Perl, CGI 등 각종 웹프로그래밍에 관한 자료들입니다.


  iWiz(2004-01-04 22:30:26, Hit : 7056, Vote : 40
 http://www.wz.pe.kr

JDBC에서 LONG Type의 텍스트 데이터를 DB에 읽고 쓰기


일반적으로 2000자가 넘는 큰 텍스트 데이터를 DB에 저장할때는, getString이나 setString 메소드를 통해 처리할 경우 문제가 발생할 소지가 있으므로, 게시판 본문 등 크기를 예측하기 힘든 데이터에 대해서는 다음과 같은 방법을 사용하는 것이 안전하다.

■ LONG Data를 DB에 넣기

- 게시판 본문 내용 등 큰 텍스트 데이터를 저장할 때는 Statement 대신 PreparedStatement를 사용해야함.
- pstmt 사용시 setString으로 값을 할당할 경우 VARCHAR형의 최대 크기를 초과하는 텍스트 데이터는 에러를 발생시키기 때문에 setCharacterStream 메소드를 사용해야 함.
- setCharacterStream 사용시 문자셋은 JDBC에서 내부적으로 유니코드를 DB 문자셋으로 변환시켜주기 때문에, 사전에 native 문자셋으로 변환할 필요는 없음.
- pstmt 사용시 문자열에 대한 db escape 처리는 JDBC에서 수행하므로, 사전에 escape 처리가 불필요함.

String sContent = request.getParameter("content");
StringReader srContent = new StringReader(sContent);
String qry = "INSERT INTO tbl_test (content) VALUES (?)";
PreparedStatement pstmt = conn.prepareStatement(qry);
pstmt.setCharacterStream(1, srContent, sContent.length());
pstmt.excuteUpdate();

■ LONG Data를 DB에서 가져오기

...

String content = null;
Reader cr =  rs.getCharacterStream("content");
if (cr != null) {
  int cnum = 0;
  char[] cbuf = new char[10];
  StringBuffer sb = new StringBuffer();
  while ((cnum = cs.read(cbuf)) != -1) sb.append(cbuf, 0 ,cnum);
  content = sb.toString();
} // if

...

* iWiz님에 의해서 게시물 이동되었습니다 (2010-02-03 16:57)

이준호
(2004-08-20 09:16:07)
아하 ~~~~ 몰랐던 부분인데 .,..

그렇군요.....
iWiz (2004-08-21 01:03:37)  
자바로 DB 관련 프로그래밍을 하다보면 예상치 못한 문제에 봉착할 때가 많더군요. 모든 언어가 다 마찬가지이겠지만, 특히 자바는 원칙대로 프로그래밍하는게 중요하더라구요. 그렇지 않으면 원인모를 오류들이 발생해서 찾는데 꽤 고생을 많이 합니다.


62   mod_throttle 모듈을 이용한 사용자 트래픽 제어  iWiz 2006/06/22 9000 0
61   Tomcat-Apache using JK2 connector  iWiz 2004/03/21 7379 41
60   RedHat 9.0에서의 JRun JSP 컴파일러의 문제점  iWiz 2004/01/04 5476 50
59   RedHat 9.0에서의 JRun-Apache 커넥터의 문제점  iWiz 2004/01/04 5143 48
58   JRun 4.0의 튜닝 관련 옵션  iWiz 2004/01/04 5890 68
57   JRun 4.0의 Activity 모니터링 방법  iWiz 2004/01/04 4869 57
56   JRun4.0: DataSource 커넥션풀 관련 옵션 [4]  iWiz 2004/01/04 6615 46
55   JRun에서 JSP 컴파일시 java 파일 생성하기  iWiz 2004/01/04 8012 63
54   JRun의 실제 서비스 운영시 고려사항  iWiz 2004/01/04 6311 44
53   수정된 인터넷 익스플로러에서 상호작용 ActiveX 컨트롤 활성화 가이드  iWiz 2006/03/03 8370 4
52   HTML 특수기호 엔터티(Entity) 테이블 [2]  iWiz 2006/03/03 14109 2
51   웹사이트의 새로운 혁명 Ajax [13]  iWiz 2005/11/22 5809 6
50   MSN 메신저 친구 자동등록 스크립트  iWiz 2004/10/12 6142 35
49   JavaScript MD5 해쉬 생성 함수  iWiz 2004/01/07 8998 35
48   JavaScript로 만든 진법변환 및 보수계산기 [4]  iWiz 2004/01/04 159766 51

1 [2][3][4][5]
 

Copyright 1999-2023 Zeroboard / skin by zero
iWiz ShareBase, ⓒCopyleft by iWiz.  For more information contact .
본 웹사이트에 게시된 이메일 주소가 전자우편 수집 프로그램이나 그 밖의 기술적 장치를 이용하여 무단으로 수집되는 것을 거부하며, 이를 위반시에는 정보통신망법에 의해 형사처벌됨을 유념하시기 바랍니다. [게시일 2004. 1. 31]