public synchronized long length() throws SQLException { checkFreed(); return lo.size(); }
public synchronized long length() throws SQLException { checkFreed(); if (support64bit) { return getLo(false).size64(); } else { return getLo(false).size(); } }
byte buf[] = lob.read(lob.size()); lob.close(); return trimBytes(columnIndex, buf);
public synchronized long length() throws SQLException { checkFreed(); return lo.size(); }
public synchronized long length() throws SQLException { checkFreed(); return lo.size(); }
// Get the Large Object Manager to perform operations with LargeObjectManager lobj = ((org.postgresql.PGConnection)conn).getLargeObjectAPI(); PreparedStatement ps = conn.prepareStatement("SELECT imgoid FROM imageslo WHERE imgname = ?"); ps.setString(1, "myimage.gif"); ResultSet rs = ps.executeQuery(); while (rs.next()) { // Open the large object for reading int oid = rs.getInt(1); LargeObject obj = lobj.open(oid, LargeObjectManager.READ); // Read the data byte buf[] = new byte[obj.size()]; obj.read(buf, 0, obj.size()); // Do something with the data read here // Close the object obj.close(); } rs.close(); ps.close();
// All LargeObject API calls must be within a transaction block conn.setAutoCommit(false); // Get the Large Object Manager to perform operations with LargeObjectManager lobj = ((org.postgresql.PGConnection)conn).getLargeObjectAPI(); PreparedStatement ps = conn.prepareStatement("SELECT imgoid FROM imageslo WHERE imgname = ?"); ps.setString(1, "myimage.gif"); ResultSet rs = ps.executeQuery(); while (rs.next()) { // Open the large object for reading int oid = rs.getInt(1); LargeObject obj = lobj.open(oid, LargeObjectManager.READ); // Read the data byte buf[] = new byte[obj.size()]; obj.read(buf, 0, obj.size()); // Do something with the data read here // Close the object obj.close(); } rs.close(); ps.close(); // Finally, commit the transaction. conn.commit();
private int getPostGresLargeObjectSize(JDBCSequentialFile file) throws SQLException { LargeObjectManager lobjManager = ((PGConnection) connection).getLargeObjectAPI(); int size = 0; Long oid = getOID(file); if (oid != null) { synchronized (connection) { try { connection.setAutoCommit(false); LargeObject largeObject = lobjManager.open(oid, LargeObjectManager.READ); size = largeObject.size(); largeObject.close(); connection.commit(); } catch (SQLException e) { connection.rollback(); throw e; } } } return size; } }
@Override public int writeToFile(JDBCSequentialFile file, byte[] data) throws SQLException { synchronized (connection) { LargeObjectManager lobjManager = ((PGConnection) connection).getLargeObjectAPI(); LargeObject largeObject = null; Long oid = getOID(file); try { connection.setAutoCommit(false); largeObject = lobjManager.open(oid, LargeObjectManager.WRITE); largeObject.seek(largeObject.size()); largeObject.write(data); largeObject.close(); connection.commit(); } catch (Exception e) { connection.rollback(); throw e; } return data.length; } }
@Override public int readFromFile(JDBCSequentialFile file, ByteBuffer bytes) throws SQLException { LargeObjectManager lobjManager = ((PGConnection) connection).getLargeObjectAPI(); LargeObject largeObject = null; long oid = getOID(file); synchronized (connection) { try { connection.setAutoCommit(false); largeObject = lobjManager.open(oid, LargeObjectManager.READ); int readLength = (int) calculateReadLength(largeObject.size(), bytes.remaining(), file.position()); if (readLength > 0) { if (file.position() > 0) largeObject.seek((int) file.position()); byte[] data = largeObject.read(readLength); bytes.put(data); } largeObject.close(); connection.commit(); return readLength; } catch (SQLException e) { connection.rollback(); throw e; } } }
byte buf[] = lob.read(lob.size()); lob.close(); return trimBytes(columnIndex, buf);
byte buf[] = lob.read(lob.size()); lob.close(); return trimBytes(columnIndex, buf);