이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

8.5. 큰 스포츠 토토 베트맨 사물

inPostgres, 큰 개체(또한blobs)는 데이터베이스에서 데이터를 보유하는 데 스포츠 토토 베트맨됩니다 일반 SQL 테이블에 저장할 수 없습니다. 그들은 a에 저장됩니다 별도의 테이블은 특별한 형식으로 OID 값으로 자신의 테이블.

중요 :forPostgres, 큰 물체에 액세스해야합니다 내에서SQL거래. 너 를 스포츠 토토 베트맨하여 거래를 시작합니다.setAutoCommit ()입력이있는 메소드 매개 변수false:

연결 마이콘;
...
mycon.setautocommit (false);
... // 이제 큰 물체를 사용

큰 물체를 스포츠 토토 베트맨하는 두 가지 방법이 있습니다. 첫 번째는 기준JDBCway 및 문서화되어 있습니다 여기. 다른 하나는 스포츠 토토 베트맨PostgreSQL확장APIlibpq 큰 물체를 제시APIjava, 기준. 내부적으로 운전자는 확장을 사용하여 제공합니다 큰 객체 지원.

inJDBC, 표준 방법 액세스 큰 물체는 스포츠 토토 베트맨 중입니다.getBinaryStream ()메소드resultSetsetBinaryStream ()메소드준비 상태. 이 방법은 크게 만듭니다 객체는 Java 스트림으로 나타나를 스포츠 토토 베트맨할 수 있습니다.java.io패키지 및 기타 물체를 조작하십시오.예 8-2이 접근법의 스포츠 토토 베트맨.

예 8-2. 사용 사용JDBC큰 객체 인터페이스

예를 들어 파일이 포함 된 테이블이 있다고 가정합니다. 이미지의 이름과 당신은 그것을 포함하는 큰 객체를 가지고 있습니다. 영상:

테이블 이미지 생성 (Imgname Text, Imgoid Oid);

이미지를 삽입하려면 다음을 사용합니다.

파일 = 새 파일 ( "myimage.gif");
fileInputStream fis = 새로운 fileInputStream (file);
preparedstatement ps = conn.preparestatement ( "이미지 값 (?,?)";에 삽입(1)ps.SetString (1, file.getName ());
ps.setbinarystream (2, fis, file.length ());
ps.ExecuteUpdate ();
ps.close ();
fis.close ();
(1)
물음표는 문자 그대로 나타납니다. 실제 데이터는 다음 줄로 대체됩니다.
여기,setbinarystream전송 스트림에서 큰 물체로 설정된 바이트 수가 OID를 참조를 들고 필드에 저장합니다. 알아채다 데이터베이스에서 큰 객체 자체의 생성 투명하게 발생합니다.

이미지를 검색하는 것이 훨씬 쉽습니다. (우리는 스포츠 토토 베트맨준비된 상태여기, 그러나성명서클래스를 동일하게 스포츠 토토 베트맨할 수 있습니다.)

preparedstatement ps = con.preparestatement ( "name =??");
ps.SetString (1, "myimage.gif");
resultSet rs = ps.ExecuteQuery ();
if (rs! = null) 
    while (rs.next ()) 
        입력 스트림은 = rs.getBinaryInputStream (1);
        // 여기에서 스트림을 사용하십시오
        is.close ();

    rs.close ();

여기에서 큰 객체가 어떻게 검색되는지 알 수 있습니다입력 스트림. 당신은 또한 알게 될 것입니다 다음 행을 처리하기 전에 스트림을 닫습니다. 결과. 이것은의 일부입니다.JDBC사양.입력 스트림반품 |resultSet.next ()또는resultSet.close ()호출.