Class LargeObjectManager
- java.lang.Object
-
- org.postgresql.largeobject.LargeObjectManager
-
public class LargeObjectManager extends java.lang.ObjectThis 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
BaseConnectionTo 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:
ResultSet.getAsciiStream(int),ResultSet.getBinaryStream(int),ResultSet.getUnicodeStream(int),PreparedStatement.setAsciiStream(int, java.io.InputStream, int),PreparedStatement.setBinaryStream(int, java.io.InputStream, int),PreparedStatement.setUnicodeStream(int, java.io.InputStream, int)
-
-
Constructor Summary
Constructors Constructor Description LargeObjectManager(BaseConnection conn)Constructs the LargeObject API.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description intcreate()Deprecated.As of 8.3, replaced bycreateLO()intcreate(int mode)Deprecated.As of 8.3, replaced bycreateLO(int)longcreateLO()This creates a large object, returning its OID.longcreateLO(int mode)This creates a large object, returning its OID.voiddelete(int oid)Deprecated.As of 8.3, replaced bydelete(long)voiddelete(long oid)This deletes a large object.LargeObjectopen(int oid)Deprecated.As of 8.3, replaced byopen(long)LargeObjectopen(int oid, boolean commitOnClose)This opens an existing large object, same as previous method, but commits the transaction on close if asked.LargeObjectopen(int oid, int mode)Deprecated.As of 8.3, replaced byopen(long, int)LargeObjectopen(int oid, int mode, boolean commitOnClose)This opens an existing large object, same as previous method, but commits the transaction on close if asked.LargeObjectopen(long oid)This opens an existing large object, based on its OID.LargeObjectopen(long oid, boolean commitOnClose)This opens an existing large object, same as previous method, but commits the transaction on close if asked.LargeObjectopen(long oid, int mode)This opens an existing large object, based on its OID.LargeObjectopen(long oid, int mode, boolean commitOnClose)This opens an existing large object, based on its OID.voidunlink(int oid)Deprecated.As of 8.3, replaced byunlink(long)voidunlink(long oid)This deletes a large object.
-
-
-
Field Detail
-
WRITE
public static final int WRITE
This mode indicates we want to write to an object.- See Also:
- Constant Field Values
-
READ
public static final int READ
This mode indicates we want to read an object.- See Also:
- Constant Field Values
-
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:
- Constant Field Values
-
-
Constructor Detail
-
LargeObjectManager
public LargeObjectManager(BaseConnection conn) throws java.sql.SQLException
Constructs the LargeObject API.Important Notice
This method should only be called byBaseConnectionThere should only be one LargeObjectManager per Connection. The
BaseConnectionclass 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:
java.sql.SQLException- if something wrong happens
-
-
Method Detail
-
open
@Deprecated public LargeObject open(int oid) throws java.sql.SQLException
Deprecated.As of 8.3, replaced byopen(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:
java.sql.SQLException- on error
-
open
public LargeObject open(int oid, boolean commitOnClose) throws java.sql.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 objectcommitOnClose- commit the transaction when this LOB will be closed- Returns:
- LargeObject instance providing access to the object
- Throws:
java.sql.SQLException- on error
-
open
public LargeObject open(long oid) throws java.sql.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:
java.sql.SQLException- on error
-
open
public LargeObject open(long oid, boolean commitOnClose) throws java.sql.SQLException
This opens an existing large object, same as previous method, but commits the transaction on close if asked.- Parameters:
oid- of large objectcommitOnClose- commit the transaction when this LOB will be closed- Returns:
- LargeObject instance providing access to the object
- Throws:
java.sql.SQLException- on error
-
open
@Deprecated public LargeObject open(int oid, int mode) throws java.sql.SQLException
Deprecated.As of 8.3, replaced byopen(long, int)This opens an existing large object, based on its OID.- Parameters:
oid- of large objectmode- mode of open- Returns:
- LargeObject instance providing access to the object
- Throws:
java.sql.SQLException- on error
-
open
public LargeObject open(int oid, int mode, boolean commitOnClose) throws java.sql.SQLException
This opens an existing large object, same as previous method, but commits the transaction on close if asked.- Parameters:
oid- of large objectmode- mode of opencommitOnClose- commit the transaction when this LOB will be closed- Returns:
- LargeObject instance providing access to the object
- Throws:
java.sql.SQLException- on error
-
open
public LargeObject open(long oid, int mode) throws java.sql.SQLException
This opens an existing large object, based on its OID.- Parameters:
oid- of large objectmode- mode of open- Returns:
- LargeObject instance providing access to the object
- Throws:
java.sql.SQLException- on error
-
open
public LargeObject open(long oid, int mode, boolean commitOnClose) throws java.sql.SQLException
This opens an existing large object, based on its OID.- Parameters:
oid- of large objectmode- mode of opencommitOnClose- commit the transaction when this LOB will be closed- Returns:
- LargeObject instance providing access to the object
- Throws:
java.sql.SQLException- on error
-
create
@Deprecated public int create() throws java.sql.SQLExceptionDeprecated.As of 8.3, replaced bycreateLO()This creates a large object, returning its OID.It defaults to READWRITE for the new object's attributes.
- Returns:
- oid of new object
- Throws:
java.sql.SQLException- on error
-
createLO
public long createLO() throws java.sql.SQLExceptionThis creates a large object, returning its OID.It defaults to READWRITE for the new object's attributes.
- Returns:
- oid of new object
- Throws:
java.sql.SQLException- if something wrong happens
-
createLO
public long createLO(int mode) throws java.sql.SQLExceptionThis creates a large object, returning its OID.- Parameters:
mode- a bitmask describing different attributes of the new object- Returns:
- oid of new object
- Throws:
java.sql.SQLException- on error
-
create
@Deprecated public int create(int mode) throws java.sql.SQLExceptionDeprecated.As of 8.3, replaced bycreateLO(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:
java.sql.SQLException- on error
-
delete
public void delete(long oid) throws java.sql.SQLExceptionThis deletes a large object.- Parameters:
oid- describing object to delete- Throws:
java.sql.SQLException- on error
-
unlink
@Deprecated public void unlink(int oid) throws java.sql.SQLExceptionDeprecated.As of 8.3, replaced byunlink(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:
java.sql.SQLException- on error
-
unlink
public void unlink(long oid) throws java.sql.SQLExceptionThis 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:
java.sql.SQLException- on error
-
delete
@Deprecated public void delete(int oid) throws java.sql.SQLExceptionDeprecated.As of 8.3, replaced bydelete(long)This deletes a large object.- Parameters:
oid- describing object to delete- Throws:
java.sql.SQLException- on error
-
-