오라클의 LONG 타입과 MySql의 MEDIUMTEXT 타입은 LONG VARCHAR 타입!!
getString() VS getCharacterStream()
JDBC 드라이버에서 getString() 지원을 한다면 굳이 getCharacterStream()을 사용하지 않아도 된다.
String data = null; // 스트림으로 읽어 온 데이터를 저장한다.
java.io.Reader reader = null; // LONG VARCHAR 데이터를 읽어 올 스트림
try {
reader = rs.getCharacterStream("FIELD"); // 스트림을 읽어옴...
if( reader != null )
// 읽어온 스트림을 저장할 버퍼
StringBuffer buff = new StringBuffer();
char[]ch = new char[521];
int len = -1;
while( (len = reader.read(ch)) != -1 ) {
buff.append(ch, 0, len);
}
// 저장한 버퍼를 String 로 변환
data = buff.toString();
} catch( ... ) {
} finally {
if(reader != null) try { reader.close(); } catch(...) {}
}
//...data 사용
try {
String value = "...";
pstmt = conn.prepareStatement(...);
java.io.StringReader reader = new java.io.StringReader(value);
pstmt.setCharacterStream(1, reader, value.length());
} catch() {
} finally {
}