2

我正在尝试为 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

4

1 回答 1

1

您可以使用:

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

但是请检查此方法以直接从以下位置获取 BLOB 数据rs

rs.getBinaryStream("myBlobColumn");
于 2013-06-13T14:19:01.283 回答