JDBC 功能支持
Vertica JDBC 驱动程序符合 JDBC 4.0 标准(但它不实施这些标准中的所有可选功能)。应用程序可以使用 DatabaseMetaData
类来确定驱动程序是否支持它要使用的特定功能。此外,此驱动程序实施 Wrapper
接口,该接口可让客户端代码发现特定于 Vertica 的 JDBC 标准类(例如,VerticaConnection
类和 VerticaStatement
类)扩展。
使用 Vertica JDBC 驱动程序时,应谨记以下一些重要事实:
-
光标仅能向前移动,而不可滚动。无法更新结果集。
-
一个连接在任何时候都仅支持执行单个语句。如果要同时执行多个语句,您必须打开多个连接。
-
从客户端驱动程序 12.0.0 版开始,支持 CallableStatement。
多个 SQL 语句支持
Vertica JDBC 驱动程序可以执行包含多个语句的字符串。例如:
stmt.executeUpdate("CREATE TABLE t(a INT);INSERT INTO t VALUES(10);");
仅 Statement
界面支持执行包含多个 SQL 语句的字符串。不能将多个语句字符串与 PreparedStatement
一起使用。从主机文件系统复制文件的 COPY 语句可使用多个语句字符串。但是,客户端 COPY 语句 (COPY FROM STDIN) 不起作用。
将多批内容转换为 COPY 语句
Vertica JDBC 驱动程序可将所有批量插入转换为 Vertica COPY 语句。如果关闭 JDBC 连接的 AutoCommit 属性,JDBC 驱动程序将使用单个 COPY 语句加载连续批量插入中的数据,这样可通过减少开销来提高加载性能。有关详细信息,请参阅使用 JDBC 预定义的语句批量插入。
多个 JDBC 版本支持
Vertica JDBC 驱动程序同时实施符合 JDBC 3.0 标准和 JDBC 4.0 标准的接口。驱动程序返回到应用程序的接口取决于应用程序运行于的 JVM 版本。如果应用程序正在 5.0 JVM 上运行,则驱动程序会向应用程序提供 JDBC 3.0 类。如果应用程序正在 6.0 或更高版本 JVM 上运行,则驱动程序会向应用程序提供 JDBC 4.0 类。
多重活动结果集 (MARS)
Vertica JDBC 驱动程序支持多重活动结果集 (MARS)。MARS 允许在单个连接中执行多个查询。ResultBufferSize 将查询的结果直接发送到客户端,而 MARS 先将结果存储在服务器上。完成查询和存储所有结果之后,您可向服务器发送检索请求以将行返回到客户端。