JDBC-二进制传输

来自 PostgreSQL 维基
跳转到导航跳转到搜索

JDBC 二进制传输

JDBC 驱动程序的二进制传输补丁的理念是将所有二进制类型从 PostgreSQL 服务器以二进制形式传输到 JDBC 驱动程序。

这消除了将数字从文本表示转换为二进制表示的必要性。

因此,此补丁将提高 JDBC 性能。

配置

二进制传输默认启用,但受

binaryTransfer=boolean

连接 URL 上的标志控制。

一个例子

jdbc:postgresql://127.0.0.1:5432:mydatabase?binaryTransfer=true

此外,您可以使用

-Dorg.postgresql.forcebinary=boolean

JVM 参数强制使用二进制传输。

一个例子

java -Dorg.postgresql.forcebinary=true -classpath myjar.jar MyApp

如果兼容版本小于 8.0,则类型为TIMETIMETZTIMESTAMPTIMESTAMPTZ 的值永远不会以二进制格式传输。

如果兼容版本小于 8.3,则类型为INT2_ARRAYINT4_ARRAYINT8_ARRAYFLOAT4_ARRAYFLOAT8_ARRAYVARCHAR_ARRAYTEXT_ARRAY 的值永远不会以二进制格式传输。

开发

此补丁由 Mikko 开发,Kris 做了修改,Jesper 做了小幅更新。

测试

版本

v13

  • 与 CVS HEAD 同步 (2009/06/23)

v12

  • 与 CVS HEAD 同步 (2009/06/02)

v11

  • 修复了 Statement::executeQuery(String) 中关于 ResultSet 的问题
  • 将二进制传输添加到测试套件中
  • 添加了简单的 Statement ResultSet 测试

v10

  • 与 CVS HEAD 同步
  • build.xml - 关于 def_pgport 的清理
  • build.properties - 关于 def_pgport 的清理
  • QueryExecutor - 修正了常量值
  • QueryExecutorImpl - 删除了不必要的代码路径

v9 及更早版本

补丁