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