JDBC:如何获得当前连接?

时间:2013-06-13 08:43:10

标签: jdbc mybatis

我正在尝试为Postgres的BLOB创建一个MyBatis自定义FILE类型处理程序。

以下是我需要实现的方法来实现接口:

@Override
public File getNullableResult(ResultSet rs, String columnName) throws SQLException {
    1.get current connection
    2.get postgreSQL LargeObjectManager from current connection
    3.get oid from ResultSet, so the Larget Object can be found
    4.read the large object and rewrite it into a file
    5.return the file
}

但是我不知道在这种情况下如何获得当前连接。有没有办法从ResultSet获取连接?

提前致谢,

更新

PostgreSQL以特殊(非标准)方式实现blob(大对象,而不是bytea)。它将所有blob保存在pg_largeobject表中,并使用oid作为"指针"所以你可以从真实的桌子中引用blob。

Postgres JDBC驱动程序具有独立的API来处理blob。以下链接中的更多详细信息: http://jdbc.postgresql.org/documentation/91/binary-data.html

1 个答案:

答案 0 :(得分:1)

您可以使用:

Connection connection = rs.getStatement().getConnection();

但请检查此方法以直接从rs获取BLOB数据:

rs.getBinaryStream("myBlobColumn");