에포스트그레스, 대형 개체(일명BLOBs)는 데이터베이스에 데이터를 보관하는 데 스포츠 토토 베트맨됩니다. 일반 SQL 테이블에는 저장할 수 없습니다. 그들은에 저장됩니다 별도의 테이블을 특별한 형식으로 작성하고 귀하의 사이트에서 참조됩니다. OID 값으로 테이블을 소유합니다.
중요:용포스트그레스, 대형 개체에 액세스해야 합니다. 이내에SQL거래. 당신 다음을 사용하여 트랜잭션을 엽니다.setAutoCommit()입력이 있는 메소드 매개변수거짓:
연결 mycon; ... mycon.setAutoCommit(false); ... // 이제 대형 객체를 스포츠 토토 베트맨합니다.
대형 개체를 사용하는 방법에는 두 가지가 있습니다. 첫 번째는 표준JDBC방법이며 문서화되어 있습니다. 여기. 다른 하나는 다음을 사용합니다.포스트그레SQL확장API, libpq 대형 객체를 제시합니다.APIJava로 변환하여 Java보다 큰 개체에 대한 더 나은 액세스를 제공합니다. 표준. 내부적으로 드라이버는 확장을 사용하여 다음을 제공합니다. 대형 개체를 지원합니다.
에JDBC, 표준 방법 대형 개체에 액세스하는 중입니다.getBinaryStream()메서드 in결과세트및setBinaryStream()메서드 inPreparedStatement. 이러한 방법은 큰 객체는 Java 스트림으로 표시되므로java.io패키지 및 기타 객체를 조작합니다.예 8-2다음을 설명합니다. 이 접근 방식을 사용합니다.
예 8-2. 를 사용하여JDBC대형 객체 인터페이스
예를 들어, 파일이 포함된 테이블이 있다고 가정해 보겠습니다. 이미지 이름이 있고 해당 이미지가 포함된 큰 개체가 있습니다. 이미지:
테이블 이미지 생성(imgname 텍스트, imgoid oid);
이미지를 삽입하려면 다음을 사용하십시오:
파일 파일 = 새 파일("myimage.gif");
FileInputStream fis = new FileInputStream(파일);
ReadyStatement ps = conn.prepareStatement("이미지 값에 삽입(?, ?)");(1)ps.setStri스포츠 토토 베트맨(1, file.getName());
ps.setBinaryStream(2, fis, file.le스포츠 토토 베트맨th());
ps.executeUpdate();
ps.close();
fis.close();
이미지 검색이 더욱 쉬워졌습니다. (우리는 스포츠 토토 베트맨합니다준비된 진술여기 있지만성명클래스도 동일하게 스포츠 토토 베트맨할 수 있습니다.)
PreparedStatement ps = con.prepareStatement("SELECT oid FROM 이미지 WHERE 이름=?");
ps.setString(1, "myimage.gif");
ResultSet rs = ps.executeQuery();
if (rs != null)
동안(rs.next())
InputStream은 = rs.getBinaryInputStream(1);
// 여기서 어떤 방식으로든 스트림을 사용합니다.
is.close();
rs.close();
여기서 대형 객체가 어떻게 검색되는지 볼 수 있습니다.입력스트림. 당신도 눈치챌 것이다 다음 행을 처리하기 전에 스트림을 닫습니다. 결과. 이것은의 일부입니다.JDBC사양, 다음과 같이 명시됨입력스트림반환된 날짜는 다음과 같습니다.ResultSet.next()또는ResultSet.close()호출됩니다.