Class LargeObjectManager
- java.lang.Object
-
- org.postgresql.largeobject.LargeObjectManager
-
public class LargeObjectManager extends java.lang.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:
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 int
create()
Deprecated.As of 8.3, replaced bycreateLO()
int
create(int mode)
Deprecated.As of 8.3, replaced bycreateLO(int)
long
createLO()
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 bydelete(long)
void
delete(long oid)
This deletes a large object.LargeObject
open(int oid)
Deprecated.As of 8.3, replaced byopen(long)
LargeObject
open(int oid, boolean commitOnClose)
This opens an existing large object, same as previous method, but commits the transaction on close if asked.LargeObject
open(int oid, int mode)
Deprecated.As of 8.3, replaced byopen(long, int)
LargeObject
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.LargeObject
open(long oid)
This opens an existing large object, based on its OID.LargeObject
open(long oid, boolean commitOnClose)
This opens an existing large object, same as previous method, but commits the transaction on close if asked.LargeObject
open(long oid, int mode)
This opens an existing large object, based on its OID.LargeObject
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 byunlink(long)
void
unlink(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 byBaseConnection
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:
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.SQLException
Deprecated.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.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:
java.sql.SQLException
- if something wrong happens
-
createLO
public long createLO(int mode) throws java.sql.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:
java.sql.SQLException
- on error
-
create
@Deprecated public int create(int mode) throws java.sql.SQLException
Deprecated.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.SQLException
This 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.SQLException
Deprecated.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.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:
java.sql.SQLException
- on error
-
delete
@Deprecated public void delete(int oid) throws java.sql.SQLException
Deprecated.As of 8.3, replaced bydelete(long)
This deletes a large object.- Parameters:
oid
- describing object to delete- Throws:
java.sql.SQLException
- on error
-
-