vBulletin Search Engine Optimization
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| Hello, Is there any way to use the proprietary LargeObject API, without actually having a reference to the postgresql Drivers's Connection object? I need to store (potentially) large chunks of data, so as I read the documentation I need to use the oid type for performance reasons. However, if the application is executing within a j2ee server with connection pooling, the given Connection instance is just a proxy for the actual one. Otherwise I could possibly use PreparedStatement.setBlob(), but how could I create a Blob instance? I'm not on the mailing list (yet). -dennis --------------------------------------------------------------------------- The information in this email is confidential and may be legally protected. ---------------------------(end of broadcast)--------------------------- TIP 5: don't forget to increase your free space map settings |
| |||
| Hi, You have to chose between database portability and better performance. Personally I am using a BYTEA field and setBytes : this allows me to have portable code across databases and decent performance. Regards. Dennis Thrysøe a écrit : > Hello, > > Is there any way to use the proprietary LargeObject API, without > actually having a reference to the postgresql Drivers's Connection object? > > I need to store (potentially) large chunks of data, so as I read the > documentation I need to use the oid type for performance reasons. > > However, if the application is executing within a j2ee server with > connection pooling, the given Connection instance is just a proxy for > the actual one. > > Otherwise I could possibly use PreparedStatement.setBlob(), but how > could I create a Blob instance? > > I'm not on the mailing list (yet). > > -dennis > --------------------------------------------------------------------------- > The information in this email is confidential and may be legally protected. > > > ---------------------------(end of broadcast)--------------------------- > TIP 5: don't forget to increase your free space map settings > ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq |
| |||
| On Thu, 2 Aug 2007, Dennis Thrysøe wrote: > Is there any way to use the proprietary LargeObject API, without actually > having a reference to the postgresql Drivers's Connection object? Often connection wrappers provide a means to access the underlying Connection. You don't say what you're using so you'll have to consult those docs yourself. > Otherwise I could possibly use PreparedStatement.setBlob(), but how could I > create a Blob instance? > JDBC4 provides a means for creating Blobs, but we haven't implemented that yet, so the easiest way is to create a Blob is to get it from the database: stmt.execute("CREATE TABLE t (a int, b oid)"); stmt.execute("INSERT INTO t VALUES (1, lo_creat(-1))"); ResultSet rs = stmt.executeQuery("SELECT b FROM t WHERE a = 1"); rs.next(); Blob b = rs.getBlob(1); Kris Jurka ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org |
| ||||
| Kris Jurka wrote: > On Thu, 2 Aug 2007, Dennis Thrysøe wrote: > >> Is there any way to use the proprietary LargeObject API, without >> actually having a reference to the postgresql Drivers's Connection >> object? > > Often connection wrappers provide a means to access the underlying > Connection. You don't say what you're using so you'll have to consult > those docs yourself. My goal is to support any j2ee server, so I cannot assume much about any proxy/pooling mechanism. > stmt.execute("CREATE TABLE t (a int, b oid)"); > stmt.execute("INSERT INTO t VALUES (1, lo_creat(-1))"); > ResultSet rs = stmt.executeQuery("SELECT b FROM t WHERE a = 1"); > rs.next(); > Blob b = rs.getBlob(1); Thanks. That looks like a good solution. -dennis --------------------------------------------------------------------------- The information in this email is confidential and may be legally protected. ---------------------------(end of broadcast)--------------------------- TIP 7: You can help support the PostgreSQL project by donating at http://www.postgresql.org/about/donate |