일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 풍경
- 출사
- 푸초
- spring
- Nikon
- 경치
- 85mm 1.8g
- 렌즈
- nikkor
- 사진
- AF-S NIKKOR 50mm f/1.8G
- 18-35mm
- AF-S 18-35mm
- 85mm f/1.8G
- daily
- 50mm f/1.8G
- 일상
- 푸른초장교회
- Photo
- 하늘풍경
- 여름성경학교
- af-s 18-35
- 50mm
- 꽃
- 니콘
- D750
- camera
- 카메라
- AF-S NIKKOR 18-35mm f/3.5-4.5G ED
- AF-S NIKKOR 85mm f/1.8G
- Today
- Total
병갈이 블록
LONG VARCHAR타입(큰~) 자료형 읽어오기 본문
아주 긴 글이 저장된 LONG VARCHAR은 파일 Stream형태로 읽어들인다.
java.io.Reader 클래스를 임포트한다.
Statement객체에서 제공하는 getCharacterStream(String name) 메서드를 이용하여 Reader타입의 스트림객체를 Reader변수에 리턴한다.
String str = null;
Reader reader = null;
try{
reader = rs.getCharacterStream("NAME"); //데이터베이스에서 읽어 올 칼럼의 이름을 적는다.;
if(reader != null){ //데이터베이스 조회결과가 있으면
StringBuilder buff = new StringBuilder(); //문자열을 저장하여 String 변수에 전달할 버퍼변수.
cahr[] ch = new char[512]; //reader와 buff사이에 사용될 변수.
int len = -1; //buff에서 사용될 문자열 위치를 저장하는 변수.
while((len = reader.read(ch)) != -1){ //read메서드는 reader에 읽혀진 문자를 매개변수인 ch에 하나씩 전달하고 전달된
문자의 위치를 반환한다. 더이상 읽어들일 문자열이 없을때 -1을 반환.
buff.append(ch, 0, len); //여기에 사용된 append메서드는 ch에 있는 문자열에서 ch변수의 0번 위치를 기준으로
len번째 문자열을 buff변수로 읽어온다.
}
str = buff.toString(); //toString()메서드로 buff에 있는 문자를 String형태로 변환하여 반환한다.
}
}catch(...){...}
주의!!
오라클에서 LONG VARCHAR은 LONG형으로 표시되고,
MySQL에서 LONG VARCHAR은 mediumtext으로 표시된다.
즉, 오라클에서 LONG형 자료를 읽어올때도, MySQL에서 mediumtext를 읽어올 때도 원칙적으로는
getCharacterStream메서드로 읽어와야한다.
MySQL의 경우 mediumtext, tinytext, text, longtext 이 네가지 타입의 text타입을 지원하고 이들은 getCharacterStream으로 읽어와야한다.
but, 다수의 JDBC드라이버는 getString메서드로 getCharacterStream메서드의 역할을 대신하게 지원한다.
MySQL의 경우도 LONG VARCHAR을 getString메서드로 읽어올 수 있게 지원한다.
'IT(Old) > JSP 공부 기록' 카테고리의 다른 글
리플렉션에 관해서...링크 (0) | 2017.07.16 |
---|---|
커스텀 태그 (0) | 2017.07.04 |
JDBC 등록 과정 (0) | 2017.06.30 |
JDBC 드라이버 클래스 이름 (0) | 2017.06.30 |
MySQL (0) | 2017.06.30 |