Oracle 큰 필드 순수 jdbc 저장 방법
1. 유 니 버 설 필드 jdbc 저장 방법
2. Oacle Clob 저장 방법
3. Oacle Blob 저장 방법
내용:
왜 그런 지 모 르 겠 습 니 다. 자신 이 데이터베이스 업 체 의 우두머리 라 는 지위 에 따라 Oacle 만 큰 필드 에 대한 처리 가 jdbc 의 기준 에 부합 되 지 않 기 때문에 다음 과 같은 Oacle 필드 에 대한 특수 처리 방법 이 나 타 났 습 니 다. 물론 hibenate 나 ibatis 는 자신 이 다음 과 같은 특별 처 리 를 했 습 니 다.
1. 유 니 버 설 필드 jdbc 저장 방법
자주 사용 하 는 데이터베이스, 예 를 들 어 DB2, my sql, sqlserver, sybase 등 은 모두 표준 필드 처 리 를 지원 합 니 다. 그래 야 우리 프로그램 이 유창 하고 통용 되 며 물론 이것 도 표준 이 존재 하 는 의미 입 니 다.다음은 표준 방식 에 따라 사용 방법 을 사범 해 보 겠 습 니 다.
먼저, 각각 두 가지 유형 을 구성 하여 자바. sql 패키지 의 Blob, Clob 인 터 페 이 스 를 실현 하고 인터페이스 가 제공 하 는 방법 을 완성 하 며 해당 하 는 구조 함 수 를 추가 합 니 다. 예 를 들 어 BlobImpl:
public class BlobImpl implements Blob {
private byte[] binaryData = null;
public BlobImpl(byte[] data) {
setBinaryData(data);
}
...
}
ClobImpl:
public class ClobImpl implements Clob {
public ClobImpl(String data){
this.charData = data;
}
...
}
그리고 byte 배열 이나 String 구조 Blob, Clob 인 스 턴 스 를 통 해:
Blob blob = new BlobImpl(data);
Clob clob = new ClobImpl(data);
마지막 으로 Prepared Statement 인 스 턴 스 의 setBlob 방법 을 통 해 데 이 터 를 데이터베이스 에 저장 합 니 다.
pst.setBlob(fieldIndex, new BlobImpl((byte[]) value));
pst.setClob(fieldIndex, new ClobImpl(((String) value)));
2. Oacle Clob 저장 방법
Oacle 구조 Clob 인 스 턴 스 를 가 질 때 Connection 을 가 진 다음 Oacle Clob 류 가 제공 하 는 정적 방법 으로 빈 clob 인 스 턴 스 를 구성 하고 마지막 으로 데 이 터 를 이 clob 인 스 턴 스 에 기록 하 며 상기 방법 으로 데이터베이스 에 저장 해 야 합 니 다.구조 예시 코드 는 다음 과 같다.
public CLOB getCLOB(Connection conn, String data) throws Exception {
CLOB clob = null;
Writer writer = null;
try {
clob = CLOB.createTemporary(conn, false, CLOB.DURATION_SESSION);
writer = clob.getCharacterOutputStream();
writer.write((data).toCharArray());
writer.flush();
} catch (Exception e) {
throw e;
} finally {
if (writer != null) {
try {
writer.close();
} catch (IOException e) {
Logger.log(Logger.WARNING, e.getMessage(), e);
e.printStackTrace();
}
}
}
return clob;
}
3. Oacle Blob 저장 방법
Oacle 구조 Blob 인 스 턴 스 를 만 들 때 도 Connection 을 가 진 다음 Oacle Blob 류 가 제공 하 는 정적 방법 으로 빈 blob 인 스 턴 스 를 만 들 고 마지막 으로 이 blob 인 스 턴 스 에 데 이 터 를 기록 하여 데이터베이스 에 저장 해 야 합 니 다.구조 예시 코드 는 다음 과 같다.
public BLOB getBLOB(Connection conn, byte[] data) throws Exception {
BLOB blob = null;
OutputStream output = null;
try {
blob = BLOB.createTemporary(conn, false, BLOB.DURATION_SESSION);
output = blob.getBinaryOutputStream();
output.write(data, 0, data.length);
} catch (Exception e) {
throw e;
} finally {
if (output != null) {
try {
output.close();
} catch (IOException e) {
Logger.log(Logger.WARNING, e.getMessage(), e);
e.printStackTrace();
}
}
}
return blob;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
activemq 5.5 의 입문 은 설치, 시작, 데이터베이스 지속 화 를 포함한다Apache ActiveMQ 5.5.0 은 주로 유지보수 버 전 으로 130 개가 넘 는 문 제 를 복 구 했 으 며 대부분 bug 와 개선 이 었 다. Improved performance for offline d...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.