Class LargeObjectManager

java.lang.Object
org.postgresql.largeobject.LargeObjectManager

public class LargeObjectManager extends Object
This class implements the large object interface to org.postgresql.

It provides methods that allow client code to create, open and delete large objects from the database. When opening an object, an instance of org.postgresql.largeobject.LargeObject is returned, and its methods then allow access to the object.

This class can only be created by BaseConnection

To get access to this class, use the following segment of code:

 import org.postgresql.largeobject.*;

 Connection  conn;
 LargeObjectManager lobj;

 ... code that opens a connection ...

 lobj = ((org.postgresql.PGConnection)myconn).getLargeObjectAPI();
 

Normally, client code would use the getAsciiStream, getBinaryStream, or getUnicodeStream methods in ResultSet, or setAsciiStream, setBinaryStream, or setUnicodeStream methods in PreparedStatement to access Large Objects.

However, sometimes lower level access to Large Objects are required, that are not supported by the JDBC specification.

Refer to org.postgresql.largeobject.LargeObject on how to manipulate the contents of a Large Object.

See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    This mode indicates we want to read an object.
    static final int
    This mode is the default.
    static final int
    This mode indicates we want to write to an object.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs the LargeObject API.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Deprecated.
    As of 8.3, replaced by createLO()
    int
    create(int mode)
    Deprecated.
    As of 8.3, replaced by createLO(int)
    long
    This creates a large object, returning its OID.
    long
    createLO(int mode)
    This creates a large object, returning its OID.
    void
    delete(int oid)
    Deprecated.
    As of 8.3, replaced by delete(long)
    void
    delete(long oid)
    This deletes a large object.
    open(int oid)
    Deprecated.
    As of 8.3, replaced by open(long)
    open(int oid, boolean commitOnClose)
    This opens an existing large object, same as previous method, but commits the transaction on close if asked.
    open(int oid, int mode)
    Deprecated.
    As of 8.3, replaced by open(long, int)
    open(int oid, int mode, boolean commitOnClose)
    This opens an existing large object, same as previous method, but commits the transaction on close if asked.
    open(long oid)
    This opens an existing large object, based on its OID.
    open(long oid, boolean commitOnClose)
    This opens an existing large object, same as previous method, but commits the transaction on close if asked.
    open(long oid, int mode)
    This opens an existing large object, based on its OID.
    open(long oid, int mode, boolean commitOnClose)
    This opens an existing large object, based on its OID.
    void
    unlink(int oid)
    Deprecated.
    As of 8.3, replaced by unlink(long)
    void
    unlink(long oid)
    This deletes a large object.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • WRITE

      public static final int WRITE
      This mode indicates we want to write to an object.
      See Also:
    • READ

      public static final int READ
      This mode indicates we want to read an object.
      See Also:
    • READWRITE

      public static final int READWRITE
      This mode is the default. It indicates we want read and write access to a large object.
      See Also:
  • Constructor Details

    • LargeObjectManager

      public LargeObjectManager(BaseConnection conn) throws SQLException

      Constructs the LargeObject API.

      Important Notice
      This method should only be called by BaseConnection

      There should only be one LargeObjectManager per Connection. The BaseConnection class keeps track of the various extension API's and it's advised you use those to gain access, and not going direct.

      Parameters:
      conn - connection
      Throws:
      SQLException - if something wrong happens
  • Method Details

    • open

      @Deprecated public LargeObject open(int oid) throws SQLException
      Deprecated.
      As of 8.3, replaced by open(long)
      This opens an existing large object, based on its OID. This method assumes that READ and WRITE access is required (the default).
      Parameters:
      oid - of large object
      Returns:
      LargeObject instance providing access to the object
      Throws:
      SQLException - on error
    • open

      public LargeObject open(int oid, boolean commitOnClose) throws SQLException
      This opens an existing large object, same as previous method, but commits the transaction on close if asked. This is useful when the LOB is returned to a caller which won't take care of transactions by itself.
      Parameters:
      oid - of large object
      commitOnClose - commit the transaction when this LOB will be closed
      Returns:
      LargeObject instance providing access to the object
      Throws:
      SQLException - on error
    • open

      public LargeObject open(long oid) throws SQLException
      This opens an existing large object, based on its OID. This method assumes that READ and WRITE access is required (the default).
      Parameters:
      oid - of large object
      Returns:
      LargeObject instance providing access to the object
      Throws:
      SQLException - on error
    • open

      public LargeObject open(long oid, boolean commitOnClose) throws SQLException
      This opens an existing large object, same as previous method, but commits the transaction on close if asked.
      Parameters:
      oid - of large object
      commitOnClose - commit the transaction when this LOB will be closed
      Returns:
      LargeObject instance providing access to the object
      Throws:
      SQLException - on error
    • open

      @Deprecated public LargeObject open(int oid, int mode) throws SQLException
      Deprecated.
      As of 8.3, replaced by open(long, int)
      This opens an existing large object, based on its OID.
      Parameters:
      oid - of large object
      mode - mode of open
      Returns:
      LargeObject instance providing access to the object
      Throws:
      SQLException - on error
    • open

      public LargeObject open(int oid, int mode, boolean commitOnClose) throws SQLException
      This opens an existing large object, same as previous method, but commits the transaction on close if asked.
      Parameters:
      oid - of large object
      mode - mode of open
      commitOnClose - commit the transaction when this LOB will be closed
      Returns:
      LargeObject instance providing access to the object
      Throws:
      SQLException - on error
    • open

      public LargeObject open(long oid, int mode) throws SQLException
      This opens an existing large object, based on its OID.
      Parameters:
      oid - of large object
      mode - mode of open
      Returns:
      LargeObject instance providing access to the object
      Throws:
      SQLException - on error
    • open

      public LargeObject open(long oid, int mode, boolean commitOnClose) throws SQLException
      This opens an existing large object, based on its OID.
      Parameters:
      oid - of large object
      mode - mode of open
      commitOnClose - commit the transaction when this LOB will be closed
      Returns:
      LargeObject instance providing access to the object
      Throws:
      SQLException - on error
    • create

      @Deprecated public int create() throws SQLException
      Deprecated.
      As of 8.3, replaced by createLO()

      This creates a large object, returning its OID.

      It defaults to READWRITE for the new object's attributes.

      Returns:
      oid of new object
      Throws:
      SQLException - on error
    • createLO

      public long createLO() throws SQLException

      This creates a large object, returning its OID.

      It defaults to READWRITE for the new object's attributes.

      Returns:
      oid of new object
      Throws:
      SQLException - if something wrong happens
    • createLO

      public long createLO(int mode) throws SQLException
      This creates a large object, returning its OID.
      Parameters:
      mode - a bitmask describing different attributes of the new object
      Returns:
      oid of new object
      Throws:
      SQLException - on error
    • create

      @Deprecated public int create(int mode) throws SQLException
      Deprecated.
      As of 8.3, replaced by createLO(int)
      This creates a large object, returning its OID.
      Parameters:
      mode - a bitmask describing different attributes of the new object
      Returns:
      oid of new object
      Throws:
      SQLException - on error
    • delete

      public void delete(long oid) throws SQLException
      This deletes a large object.
      Parameters:
      oid - describing object to delete
      Throws:
      SQLException - on error
    • unlink

      @Deprecated public void unlink(int oid) throws SQLException
      Deprecated.
      As of 8.3, replaced by unlink(long)

      This deletes a large object.

      It is identical to the delete method, and is supplied as the C API uses unlink.

      Parameters:
      oid - describing object to delete
      Throws:
      SQLException - on error
    • unlink

      public void unlink(long oid) throws SQLException

      This deletes a large object.

      It is identical to the delete method, and is supplied as the C API uses unlink.

      Parameters:
      oid - describing object to delete
      Throws:
      SQLException - on error
    • delete

      @Deprecated public void delete(int oid) throws SQLException
      Deprecated.
      As of 8.3, replaced by delete(long)
      This deletes a large object.
      Parameters:
      oid - describing object to delete
      Throws:
      SQLException - on error