Postgres의 BLOB에 MyBatis 사용자 지정 FILE 형식 처리기를 만들려고합니다. JDBC : 현재 연결을 얻는 방법?
@Override
public File getNullableResult(ResultSet rs, String columnName) throws SQLException {
1.get current connection
2.get postgreSQL LargeObjectManager from current connection
3.get oid from ResultSet, so the Larget Object can be found
4.read the large object and rewrite it into a file
5.return the file
}
그러나 나는이 상황에서 현재 연결을 얻는 방법을 모르는 : 여기
내가 인터페이스를 수행하기 위해 구현해야하는 방법입니다. ResultSet으로부터 연결을 얻을 수있는 방법이 있습니까? 사전에
감사합니다,
UPDATE :
PostgreSQL의 특별한 (비표준 아마도) 방식으로 BLOB (대형 개체가 아닌 BYTEA)를 구현합니다. pg_largeobject 테이블에 모든 blob을 저장하고 실제 테이블에서 blob을 참조 할 수 있도록 oid를 "포인터"로 사용합니다.
Postgres JDBC 드라이버는 blob을 처리하기위한 API를 분리했습니다. 다음 링크에서 자세한 내용은 :
Connection connection = rs.getStatement().getConnection();
을하지만 rs
에서 직접 가져 오기 BLOB 데이터를이 방법을 확인하십시오 : 는 http://jdbc.postgresql.org/documentation/91/binary-data.html
을 그냥 덩어리를 가져올 수 없습니다 결과 집합에서 직접? –
@MarkRotteveel 아니오, PostgreSQL은 blob을 특별한 방법으로 구현합니다. pg_largeobject 테이블에 모든 blob을 저장하고 실제 테이블에서 blob을 참조 할 수 있도록 oid를 "포인터"로 사용합니다. – Xin
흥미 롭다면 postgresql JDBC 드라이버가 구현 세부 사항을 숨길 것으로 기대합니다. –