设置和获取连接属性值
可以采用以下方式之一设置连接属性:
-
将属性名称和值包括在传递给方法
DriverManager.getConnection()
的连接字符串中。 -
在
Properties
对象中设置属性,然后将其传递给方法DriverManager.getConnection()
。 -
使用方法
VerticaConnection.setProperty()
。使用此方法,您只能更改那些在创建连接后仍可更改的连接属性。
此外,一些标准 JDBC 连接属性在 Connection
界面上具有 getter 和 setter,例如 Connection.setAutoCommit()
。
在连接时设置属性
创建与 Vertica 的连接时,您可以通过以下方式设置连接属性:
-
在连接字符串中指定这些属性。
-
修改传递给
getConnection()
的Properties
对象。
连接字符串属性
您可以使用用于用户名和密码的相同 URL 参数格式在连接字符串中指定连接属性。例如,以下字符串启用 TLS 连接:
"jdbc:vertica://VerticaHost:5433/db?user=UserName&password=Password&TLSmode=require"
使用 setProperty()
方法设置主机名会替代已在连接字符串中设置的主机名。如果出现这种情况,Vertica 可能无法连接到主机。例如,如果使用以上连接字符串,以下代码会替代 VerticaHost
名称:
但是,如果需要新连接或替代连接,您可以在主机名属性对象中输入有效的主机名。
NonVertica_host
主机名将替代连接字符串中的 VerticaHost
名称。若要避免此问题,请将 props.setProperty("hostName", "NonVertica_host");
行注释掉:
属性对象
要使用传递给 getConnection()
调用的 Properties
对象设置连接属性:
-
导入
java.util.Properties
类以实例化Properties
对象。 -
使用
put()
方法向对象添加名称-值对。
注意
无论属性值的数据类型是哪种,在 Properties 对象中设置的所有值的数据类型均为字符串。在连接后获取和设置属性
与 Vertica 建立连接后,您可以使用 VerticaConnection
方法 getProperty()
和 setProperty()
分别设置一些连接属性的值。
使用 VerticaConnection.getProperty()
方法,您可以获取部分连接属性的值。使用此方法更改与 Vertica 建立连接后可设置的属性值。
由于这些方法特定于 Vertica,因此您必须使用以下方法之一将 Connection
对象强制转换为 VerticaConnection
接口:
-
将
Connection
对象导入客户端应用程序。 -
使用完全限定的引用:
com.vertica.jdbc.VerticaConnection
。
以下示例演示了获取和设置只读属性的值。
运行以上示例后,将在标准输出上输出以下内容:
ReadOnly state: true
ReadOnly state is now: false