JDBC API
欢迎了解 SmartESQL JDBC 驱动程序的实现及其如何帮助您连接到现有的 SmartEDB 数据库。我们希望通过以下介绍,让您更轻松地掌握这一强大工具的使用方法。
SmartESQL JDBC 驱动程序为 Java 应用程序提供了与 SmartESQL 服务器的连接访问,它遵循广泛采用的行业标准,确保了高效、稳定的数据库交互。这款驱动程序是纯 Java 的“类型 3”驱动程序,专为 JDK/JRE 1.6.x 设计,能够与 SmartESQL 服务器端中间件无缝协作,进而访问 SmartEDB 数据库。
JDBC 驱动程序的工作方式与远程 SQL 模式下的 ODBC 驱动程序非常相似。它在纯 Java 中实现了远程 SQL 协议的客户端部分,并将 JDBC API 调用转换为对 SmartESQL 服务器的请求。这类似于使用 xSQL 工具作为远程 SQL 服务器的效果,或者通过 SDK 示例 api_sql_10_rsql_client 中演示的带有 RemoteSqlEngine API 的自定义 C 或 C++ 应用程序来实现。不同的是,JDBC 驱动程序无需安装步骤,直接包含在目标/bin 目录中的 extremedb_jdbc.jar 文件中,方便您快速上手使用。
示例
SimpleJDBC
SDK 示例 SimpleJDBC 展示了客户端应用程序如何连接到 SmartESQL JDBC 驱动程序并发出简单的 SQL 语句。连接字符串的语法为:
jdbc:smartedb:host:port:connection_timeout:datetime_precision:modes_mask:trace_file
其中各组成部分如下:
- host:port:xSQL 服务器或 SqlServer 应用程序的 IP 地址和端口号(默认为 localhost:5001)
- connection_timeout:数据库连接超时时间(默认值为 90000)
- datetime_precision:日期/时间字段的日期时间解析度(默认值为 1,表示秒)
- modes_mask:兼容模式(默认值为 0;可能的值为 1,表示“模拟 PostgreSQL”,这对于 WebFocus 商业版是必需的)
- trace_file:用于跟踪输出的文件名(默认不进行跟踪)
可以通过 JDBC URL 指定多个 SQL 服务器,从而实现连接在这些服务器之间切换,而无需显式重新连接。JDBC 驱动程序的连接可以通过两种方式切换:
- 当连接错误发生时,JDBC 驱动程序会自动尝试使用指定列表中的下一个服务器进行连接并执行下一条 SQL 语句;
- 通过使用命令 set_server Id 明确指定服务器的零起始标识符。
此功能的一个重要应用可能是切换到 HA_Overview.htm 主应用和副本应用之间,或者在集群节点之间进行切换。 以下是一些不同 URL 规范的示例:
jdbc:smartedb:localhost:9001:90000:1000:1
这将服务器地址设置为本地主机的 9001 端口,连接超时时间为 90 秒,日期时间精度为毫秒,并启用“模拟 PostgreSQL”选项。
jdbc:smartedb:localhost
这将服务器地址设置为默认端口 5001 上的本地主机,连接超时默认为 90 秒,日期时间分辨率默认为秒。
jdbc:smartedb:localhost:::1000
这将服务器地址设置为默认端口 5001 上的本地主机,连接超时默认为 90 秒,日期时间精度为毫秒。
jdbc:smartedb:192.168.49.1:8301::::trace.dbg
这将服务器地址设置为 192.168.49.1,端口为 8301,默认连接超时时间为 90 秒,默认日期时间精度为秒,并将跟踪输出写入 trace.dbg 文件。 另外,对于支持 JDBC 的实用程序,也可以在驱动程序管理器中指定驱动程序属性(属性名 = 值对)。自定义的 JDBC 驱动程序管理器程序应使用 DriverManager 方法 getConnection(String url, Properties info) 来获取 Properties 类的实例 info;然后在 info 对象中设置以下属性:connection_timeout、datetime_precision、modes_mask 和 trace_file。还可以设置驱动程序属性 encoding,默认值为 UTF-8。当在连接 URL 中指定时,这些连接参数中的任何一个都会覆盖配置文件中的驱动程序属性。
JDBCBatch
SDK 示例 JDBCBatch 展示了使用 JDBC 进行批处理。
JDBC 以及 SmartEDB 高可用性
当您使用 JDBC 与 SmartEDB 高可用性版本一起工作时,可以通过 JDBC URL 指定多个 SQL 服务器。这样,您可以在单个连接中轻松切换这些服务器,而无需额外的重新连接步骤。这一功能特别适用于在 SmartEDB 高可用性主服务器和副本应用程序之间或在 SmartEDB 集群网络中的节点之间进行切换。
JDBC 驱动程序当前连接的服务器可以通过以下两种方式切换:
- 自动切换:当出现连接错误时,JDBC 驱动程序会自动尝试连接到列表中的下一个服务器,并继续执行下一个 SQL 语句。
- 手动指定:您可以通过执行
set_server Id
命令来选择列表中特定的服务器(标识符从零开始计数)。
我们希望这些功能能帮助您更高效地管理和访问数据库,确保您的应用程序始终稳定运行。
服务器列表通过在 URL 中的主机名:端口号对之间添加分号分隔符来指定。例如:
jdbc:smartedb:host1:port1;host2:port2;host3:port3
使用 JDBC 进行数据压缩
JDBC 驱动程序通过设置“compression_level”属性来支持数据压缩。压缩级别有效值为 0 至 9:0 = 不压缩;1 = 最高速度,9 = 最佳压缩。例如:
java.util.Properties props = new java.util.Properties();
props.setProperty("compression_level", "9");
con = DriverManager.getConnection(url, props);