更新时间:2026-07-28 GMT+08:00
分享

连接参数参考

连接参数的名称对大小写敏感。将连接参数进行分类,具体如表1所示。

表1 连接参数分类

类别

参数名称

认证

PGDBNAME、PGHOST、PGPORT、user、password、tenantName、tenantPassword

数据库连接

ApplicationName、protocolVersion、connectMode、loginTimeout、logUnclosedConnections、allowConnThreadPool

网络连接

socketFactory、socketFactoryArg、receiveBufferSize、sendBufferSize、tcpKeepAlive、connectTimeout、socketTimeout、socketTimeoutInConnecting、cancelSignalTimeout、cmNetworkTimeout

安全

ssl、sslmode、sslgmcipher、sslcert、sslkey、sslenccert、sslenckey、sslrootcert、sslpassword、sslpasswordcallback、sslfactory、sslprivatekeyfactory、sslfactoryarg、sslhostnameverifier、TLSCiphersSupperted、enable_ce、key_info、auto_sendtoken、refreshClientEncryption

结果集

fetchsize、defaultRowFetchSize、unknownLength、uppercaseAttributeName、stripTrailingZeros、useGsClobBlobClass、enableObjectTypeConv

数据类型

binaryTransfer、binaryTransferEnable、binaryTransferDisable、blobMode、yearIsDateType、zeroCharacterReplacement、use_boolean、setFloat、stringtype

日志及调试

logger、loggerLevel、loggerFile、printSqlInLog、actualErrorCodeForBatch、connectionExtraInfo、traceInterfaceClass

兼容性

driverInfoMode、oracleCompatible、mCompatible、pgCompatible、compatibilityTags、enableObjectTypeConv、assumeMinServerVersion、mCompatibleSetDateTime、mQuoteStringCompatible

性能

prepareThreshold、preparedStatementCacheQueries、preparedStatementCacheSizeMiB、databaseMetadataCacheFields、databaseMetadataCacheFieldsMiB、batchMode、reWriteBatchedInserts

可用性

currentSchema、enableStandbyRead、loadBalanceHosts、autoBalance、disasterToleranceCluster、usingEip、enableAutoMigrate、priorityServers、preferredServiceGroup、preferredNodeIds、backupServiceGroup、backupNodeIds、hostRecheckSeconds、ApplicationType、sessionType、execTargetNode

其他功能

allowEncodingChanges、characterEncoding、enableTimeZone、autosave、cleanupSavepoints、enableStreamingQuery、preferQueryMode、allowReadOnly、parseCandidatesByDomain、primaryDomains、priorityDomains、refreshDomainResolveTime、refreshCNIpListTime、statementTimeout、executeUpdateQueryable、dbMonitor、enableGaussArrayAndStruct、getColumnsReturnNull、extendTablePrivilege、diffProcAndFunc

认证

表2 认证相关的连接参数

参数名称

参数说明

参数值

PGDBNAME

表示数据库名称(该参数在url中无需配置,系统将自动从Properties文件中解析)。

类型:String

PGHOST

  • 在非透明多写特性下,表示主机IP地址(该参数在url中无需配置,系统将自动从Properties文件中解析),同时支持IPv4和IPv6。若配置多个CN,它们的IP和端口使用“:”分隔,并作为整体以逗号分隔其他CN

类型:String

PGPORT

  • 在非透明多写特性下,表示主机端口号(该参数在url中无需配置,系统将自动从Properties文件中解析)。

类型:Integer

user

表示创建连接的数据库用户。

类型:String

password

表示数据库用户的密码。

类型:String

须知:

数据库连接

表3 数据库连接相关的连接参数

参数名称

参数说明

参数值

ApplicationName

表示正在连接的JDBC驱动名称。

  • 非透明多写特性下,在CN上查询PGXC_STAT_ACTIVITY系统视图可以看到正在连接的客户端信息,其中application_name字段表示JDBC驱动名称。

类型:String

默认值:PostgreSQL JDBC Driver

protocolVersion

指定连接协议版本号,用于连接不同版本的数据库。

说明:

设置protocolVersion时需确认数据库的类型和加密方式。

例如,用户要连接V5服务端且把该参数设置为3时,则需要确认或修改数据库的加密方式为MD5。修改加密方式为MD5,需要将password_encryption_type参数设置为1。随后使用对应加密方式的用户登录或者创建新用户,此时创建新用户的加密方式为MD5。同时修改pg_hba.conf,将客户端连接方式修改为MD5。

password_encryption_type参数具体说明,请参见《参考》中“数据库运行参数说明 > GUC参数说明 > 连接和认证 > 安全和认证”章节。

类型:Integer

取值范围:

  • 1:表示连接V1服务端。
  • 3:表示连接V5之前的服务端,或连接使用MD5加密方式的V5服务端。该方式存在安全风险,不建议配置该值。
  • 350:表示连接V5之前的服务端。该方式存在安全风险,不建议配置该值。
  • 351:表示连接支持MD5、SHA256及SM3加密方式的V5服务端,推荐配置该值。

默认值:351

loginTimeout

  • 非透明多写特性下,表示建立数据库连接的等待时间。当url配置多IP时,若获取连接花费的时间超过此值,则连接失败,不再尝试后续IP。loginTimeout时间包括connectTimeout和socketTimeoutInConnecting,计算方式为:loginTimeout=(connectTimeout+socketTimeoutInConnecting)*节点数量。
说明:
当CPU、内存、I/O负载中的任意一项接近100%时,会出现连接慢的现象,可能会导致连接时间超过阈值的问题,可通过以下方式进行问题排查:
  1. 登录连接慢的物理机或通过管理工具查询资源负载:通过top命令等确认CPU使用率;通过free命令确认内存使用情况;通过iostat命令确认I/O负载。也可通过cm_agent中的监控日志,以及数据库运维平台中的监测记录进行检查。
  2. 针对短时间内大量慢查询导致的峰值负载场景,可通过[数据库服务器的端口号+1]端口连接,查询pg_stat_activity视图。针对慢查询,可以使用系统函数pg_terminate_backend(pid int)终止会话。
  3. 针对业务量长期超负载情况(无明显慢查询,或慢查询终止后但新的查询依然会变成慢查询),应考虑降低业务负载、增加数据库资源的方式进行优化。

类型:Integer

单位:s(秒)

有效取值范围:0 ~ 2147483647。0及负数表示已禁用,timeout不生效。

默认值:0

建议:配置后每次建立连接都会开启一个异步线程,在连接数较多的情况下可能会导致客户端压力增大,如果业务确认需要设置此参数,建议对该参数值进行调整。

  • 在非透明多写特性下,建议调整为max(connectTimeout, socketTimeoutInConnecting) * 节点数,防止在网络异常且第n个IP为主的情况下无法成功连接。
说明:
  • 在非透明多写特性下,对于多IP配置,此参数设置值是尝试连接IP的总时间。若设置的值过小,可能会导致后面的IP无法连接的问题。例如配置了三个IP,如果loginTimeout为5s,尝试连接前两个IP总耗时5s且尚未成功建立连接,第三个IP将无法连接。此时会建立连接失败。

logUnclosedConnections

客户端可能由于未调用Connection对象的close()方法而泄漏Connection对象。设置为true时,JVM调用finalize()方法回收Connection对象会有日志记录。

类型:Boolean

取值范围:

  • true:表示如果用户没有调用close()方法,JVM调用finalize()方法回收Connection对象会有日志记录。
  • false:表示如果用户没有调用close()方法,JVM调用finalize()方法回收Connection对象不会有日志记录。

默认值:false

网络连接

表4 网络连接相关的连接参数

参数名称

参数说明

参数值

socketFactory

创建与服务器socket连接的类的名称。该类必须实现接口“javax.net.SocketFactory”,并定义无参或单String参数的构造函数。

类型:String

socketFactoryArg

表示上述socketFactory类构造函数的可选参数。如果不确定目标类的构造函数,则不推荐使用。

类型:String

receiveBufferSize

指定连接流上的SO_RCVBUF。

类型:Integer

单位:Byte

取值范围:-1 ~ 2147483647

默认值:-1。表示不设置缓冲区大小。

sendBufferSize

指定连接流上的SO_SNDBUF。

类型:Integer

单位:Byte

取值范围:-1 ~ 2147483647

默认值:-1。表示不设置缓冲区大小。

tcpKeepAlive

指定是否启用TCP保活探测功能。

类型:Boolean

取值范围:

  • true:表示启用TCP保活探测功能。
  • false:表示禁用TCP保活探测功能。

默认值:false

connectTimeout

指定连接服务器操作系统的超时时间。如果连接到服务器操作系统花费的时间超过此值,则连接断开。当url配置多IP时,表示连接单个IP的超时时间。

类型:Integer

单位:s(秒)

取值范围:0 ~ 2147483。0表示已禁用,timeout不生效。

默认值:0

socketTimeout

指定socket读取操作的超时时间。如果从服务器读取数据流所花费的时间超过此值,则连接关闭。推荐配置此参数,否则当数据库进程异常或服务端系统重启但未关闭socket时,客户端可能陷入长时间等待。建议依据业务可接受的SQL执行时间进行合理配置。

说明:

当JDBC侧触发超时且连接关闭时,其下发给数据库侧正在运行的业务会被强制终止。业务强制终止的能力受GUC参数check_disconnect_query控制,设置为on表示支持该能力,设置为off表示不支持该能力。

类型:Integer

单位:s(秒)

有效取值范围:0 ~ 2147483。0及负数表示已禁用,timeout不生效。

默认值:0

socketTimeoutInConnecting

指定建立连接阶段socket读取操作的超时时间。在建立连接阶段,如果从服务器读取数据流超过此阈值,则尝试查找下一个节点建立连接。

类型:Integer

单位:s(秒)

有效取值范围:0 ~ 2147483。0及负数表示已禁用,timeout不生效。

默认值:5

cancelSignalTimeout

指定取消命令的“connect超时”和“socket超时”的超时时间。如果取消命令超过指定时间未响应,会中断该连接,减少占用客户端资源。

类型:Integer

单位:s(秒)

有效取值范围:0 ~ 2147483。0及负数表示已禁用,timeout不生效。

默认值:10

安全

表5 安全相关的连接参数

参数名称

参数说明

参数值

ssl

表示是否以SSL方式连接数据库。设置为true时,支持使用NonValidatingFactory通道和证书两种SSL连接方式。

类型:Boolean

取值范围:

  • true:表示以SSL方式连接数据库。
  • false:表示不以SSL方式连接数据库。

默认值:NULL(与false等效)

sslmode

表示SSL认证方式。

类型:String

取值范围:disable、allow、prefer、require、verify-ca、verify-full。

  • disable:不使用SSL连接。
  • allow:如果数据库服务器要求使用,则可以使用SSL连接,但不验证数据库服务器的真实性。
  • prefer:如果数据库支持,那么首选使用SSL连接,但不验证数据库服务器的真实性。
  • require:只尝试SSL连接,不会检查服务器证书是否由受信任的证书机构签发,且不会检查服务器主机名与证书中的主机名是否一致。
  • verify-ca:只尝试SSL连接,并且验证服务器是否具有由可信任的证书机构签发的证书。
  • verify-full:只尝试SSL连接,并且验证服务器是否具有由可信任的证书机构签发的证书,以及验证服务器主机名是否与证书中的一致。

默认值:NULL(与require等效)

sslgmcipher

指定国密TLS采用的加密算法套件。

类型:String

取值范围:

  • ECC_SM4_SM3:支持国密单向/双向认证。
  • ECDHE_SM4_SM3:仅支持国密双向认证。

默认值:NULL

sslcert

指定客户端证书文件的完整路径。证书类型为End Entity。

类型:String

默认值:NULL(表示读取用户根目录的客户端证书文件)

sslkey

指定密钥文件的完整路径,使用时需将该密钥转换为DER格式。

openssl pkcs8 -topk8 -outform DER -in client.key -out client.key.pk8 -nocrypt

类型:String

默认值:NULL(表示读取用户根目录的密钥文件)

sslenccert

指定国密TLS客户端加密证书的完整路径,证书类型为End Entity。

类型:String

默认值:NULL(表示读取用户根目录的国密TLS客户端加密证书)

sslenckey

指定国密TLS密钥文件的完整路径,使用时需将该密钥转换为DER格式。

openssl pkcs8 -topk8 -outform DER -in client_enc.key -out client_enc.key.pk8 -nocrypt

类型:String

默认值:NULL(表示读取用户根目录的国密TLS密钥文件)

sslrootcert

表示SSL根证书的文件名。根证书的类型为CA。

类型:String

默认值:NULL(表示读取用户根目录的SSL根证书)

sslpassword

表示SSL密码。该参数提供给ConsoleCallbackHandler组件使用。

类型:String

默认值:NULL

须知:

sslpasswordcallback

指定SSL密码提供者的完整类名。

类型:String

默认值:NULL(表示不开启此功能)

sslfactory

指定SSLSocketFactory在建立SSL连接时使用的类名。

类型:String

默认值:NULL(表示不开启此功能)

sslprivatekeyfactory

指定实现私钥解密方法的接口com.huawei.gaussdb.jdbc.ssl.PrivateKeyFactory的实现类的完整限定类名。若未指定该参数,系统将首先尝试使用默认的JDK私钥解密算法。若无法解密则使用com.huawei.gaussdb.jdbc.ssl.BouncyCastlePrivateKeyFactory,用户需提供bcpkix-jdk15on.jar包(建议版本1.65及以上)。

类型:String

默认值:NULL(表示会尝试使用默认的JDK私钥解密算法进行解密)

sslfactoryarg

表示sslfactory类构造函数的可选参数(不推荐使用)。

类型:String

默认值:NULL

sslhostnameverifier

表示主机名验证程序的类名。该参数实现javax.net.ssl.HostnameVerifier接口。

类型:String

默认值:com.huawei.gaussdb.jdbc.ssl.PGjdbcHostnameVerifier

TLSCiphersSupperted

指定支持的TLS加密套件列表。

说明:

设置为不支持的TLS加密套件时,系统将抛出异常。

类型:String

默认值:TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

enable_ce

表示密态等值查询功能的启用模式。

类型:Integer

取值范围:

  • 1或3:表示JDBC支持密态等值查询基础功能。
  • 其他值:表示不支持密态等值查询功能。

默认值:NULL(表示不支持密态等值查询功能)

key_info

与enable_ce参数协同使用,用于配置访问外部密钥管理服务的参数。该参数仅在密态数据库环境下生效。

类型:String

默认值:NULL

须知:

auto_sendtoken

与enable_ce参数协同使用,仅在密态数据库参数enable_ce设置为3时生效。启用该参数后,JDBC客户端将在建立连接后自动执行与setClientInfo("send_token")功能相同的传输密钥操作。

类型:Boolean

默认值:false

refreshClientEncryption

表示密态数据库是否支持客户端缓存刷新功能。

类型:String

取值范围:

  • 1或NULL:表示密态数据库支持客户端缓存刷新功能。
  • 其他字符串:表示密态数据库不支持客户端缓存刷新功能。

默认值:NULL

结果集

表6 结果集相关的连接参数

参数名称

参数说明

参数值

fetchsize

指定一次fetch在ResultSet中读取的行数,其功能与defaultRowFetchSize参数等效。

类型:Integer

有效取值范围:0 ~ 2147483647。0及负数表示一次fetch在ResultSet中读取所有行数。

默认值:0

建议:用户根据实际业务查询数据数量和客户端机器内存情况来配置此参数。设置fetchsize时要关闭自动提交模式(conn.setAutoCommit(false);),否则会导致fetchsize无法生效。

defaultRowFetchSize

指定一次fetch在ResultSet中读取的行数。限制每次访问数据库时读取的行数可以避免不必要的内存消耗,从而避免OutOfMemoryException。

须知:

若同时设置fetchsize和defaultRowFetchSize,以fetchsize参数的值为准。

类型:Integer

取值范围:0 ~ 2147483647。0表示一次fetch在ResultSet中读取所有行数。

默认值:0

unknownLength

GaussDB某些数据类型(例如TEXT)没有明确数据长度,当通过java.sql.ResultSetMetaData#getColumnDisplaySize和java.sql.ResultSetMetaData#getPrecision等方法返回这些类型的数据时,此参数用于指定数据长度。

类型:Integer

取值范围:0 ~ 2147483647

默认值:2147483647

uppercaseAttributeName

指定将获取元数据的接口的查询结果转为大写或小写。主要适用场景为数据库中存储元数据全为小写,但要使用大写的元数据作为出参和入参。

涉及到的接口请参见:java.sql.DatabaseMetaDatajava.sql.ResultSetMetaData

说明:

uppercaseAttributeName参数开启后,如果数据库中有小写、大写和大小写混合的元数据,只能查询到小写部分的元数据,并以大写的形式输出。使用前请务必确认存储的元数据全为小写,以避免数据出错。

类型:String

取值范围:

  • true、upper:表示将元数据转为大写。
  • false:表示以GUC参数uppercase_attribute_name配置为准。
  • lower:表示将元数据转为小写。

默认值:false

stripTrailingZeros

指定是否去除numeric类型后的0,仅对java.sql.ResultSet#getObject(int columnIndex)生效。

类型:Boolean

取值范围:

  • true:表示去除numeric类型后的0。
  • false:表示不去除numeric类型后的0。

默认值:false

useGsClobBlobClass

指定使用java.sql.ResultSet#getObject方法获取Clob字段和Blob字段时返回某种类型的对象,以及使用java.sql.ResultSetMetaData#getColumnClassName方法获取Clob字段和Blob字段时返回的类型名称。

类型:Boolean

取值范围:

  • true:表示使用java.sql.ResultSet#getObject方法获取Clob字段时会返回PGClob类型的对象,获取Blob字段时会返回PGBlob类型的对象。使用java.sql.ResultSetMetaData#getColumnClassName方法获取Clob字段的类型名称会返回java.sql.Clob,获取Blob字段的类型名称时会返回java.sql.Blob。
  • false:表示使用java.sql.ResultSet#getObject方法获取Clob字段时会返回PGClob类型的对象,获取Blob字段时会返回byte[]类型的对象。使用java.sql.ResultSetMetaData#getColumnClassName方法获取Clob字段的类型名称会返回java.sql.CLOB,获取Blob字段的类型名称时会返回java.sql.BLOB。

默认值:false

enableObjectTypeConv

表示java.sql.ResultSet#getObject(int, Class<?>)接口是否支持兼容类型转换。当前已支持数值类型互转、字符串类型互转和日期/时间类型互转。

类型:Boolean

取值范围:

  • true:表示支持兼容类型转换。
  • false:表示不支持兼容类型转换。

默认值:false

数据类型

表7 数据类型相关的连接参数

参数名称

参数说明

参数值

binaryTransfer

指定是否启用二进制格式发送和接收数据。

类型:Boolean

取值范围:

  • true:表示启用二进制格式传输数据。
  • false:表示不启用二进制格式,而是使用text格式传输数据。

默认值:false

binaryTransferEnable

指定启用二进制传输的类型列表。以逗号分隔,例如:binaryTransferEnable=INT4_ARRAY,INT8_ARRAY。

可使用OID编号或者名称配置。例如:OID名称为BLOB,编号为88,可以进行如下配置:binaryTransferEnable=BLOB或binaryTransferEnable=88。

须知:

如果binaryTransferDisable与binaryTransferEnable有相同的value,则会禁用。

类型:String

默认值:""(空字符串)

binaryTransferDisable

指定禁用二进制传输的类型列表。以逗号分隔,可使用OID编号或者名称配置。

类型:String

默认值:""(空字符串)

blobMode

指定setBinaryStream()方法为不同类型的数据赋值。

类型:String

取值范围:

  • on:表示为blob类型数据赋值。
  • off:表示为bytea类型数据赋值。

默认值:on

yearIsDateType

使用java.sql.ResultSet#getObject接口和java.sql.ResultSet#getString接口获取year数据类型字段时,指定返回的数据对象是否以Date类型呈现。

类型:Boolean

取值范围:

  • true:表示使用java.sql.ResultSet#getObject方法获取year数据类型字段时会返回Date类型的对象,使用java.sql.ResultSet#getString方法获取year数据时会返回yyyy-mm-dd格式的日期字符串,使用java.sql.ResultSet#getInt/getLong/getShort方法获取数据时会返回年份数值。
  • false:表示使用java.sql.ResultSet#getObject方法获取year数据类型字段时会返回Integer类型的对象,使用java.sql.ResultSet#getString方法获取year数据时会返回年份的字符串,使用java.sql.ResultSet#getInt/getLong/getShort方法获取数据时会返回年份数值。

默认值:true

use_boolean

表示extended模式下setBoolean()方法绑定的Oid类型。

类型:Boolean

取值范围:

  • true:表示绑定Boolean类型。
  • false:表示绑定int2(Smallint)类型。

默认值:false

setFloat

表示调用setFloat或者setObject指定类型为float时,传递给数据库的Oid是否为float4的Oid。M-Compatibility模式数据库下不受该参数影响。

类型:Boolean

取值范围:

  • true:表示调用setFloat或者setObject指定类型为float时,传递给数据库的Oid为float4。
  • false:表示调用setFloat或者setObject指定类型为float时,传递给数据库的Oid为float8。

默认值:false

stringtype

指定调用java.sql.PreparedStatement#setString方法时传给数据库的参数类型。

类型:String

取值范围:

  • varchar:表示将参数作为varchar类型发送给服务器。
  • unspecified:表示参数发送到服务器时不指定类型,服务器将尝试推断适当的类型。

默认值:NULL(与varchar等效)

日志及调试

表8 日志及调试相关的连接参数

参数名称

参数说明

参数值

logger

表示JDBC驱动要使用的日志输出框架。JDBC驱动支持对接用户应用程序使用的日志输出框架。

类型:String

取值范围:

  • Slf4JLogger:基于Slf4j-API的日志框架。目前支持的第三方日志输出框架只有基于Slf4j-API的日志框架。具体使用方式,请参见日志管理
  • JdkLogger:Java内置日志框架。若未显式配置,驱动将默认使用JdkLogger。

loggerLevel

指定日志记录级别。

类型:String

取值范围:目前支持四种级别,不区分大小写,取值如下。

  • OFF:关闭所有日志输出。
  • INFO:记录基本运行信息。
  • DEBUG:记录调试信息(信息量大于INFO)。
  • TRACE:记录最详细的调试信息(信息量最大)。

默认值:OFF

loggerFile

在开启连接监控功能时,该参数用于指定监控日志输出路径。仅限连接监控场景下配置该参数,其他场景下该参数不生效。

类型:String

默认值:NULL(表示在客户端运行程序目录下生成日志文件)

printSqlInLog

指定是否在异常信息或日志中输出SQL语句。

类型:Boolean

取值范围:

  • true:启用SQL语句输出。
  • false:禁用SQL语句输出。

默认值:true

actualErrorCodeForBatch

executeBatch接口执行报错时,指定返回实际错误码或者返回固定错误码0。

类型:Boolean

取值范围:

  • true:返回实际错误码。
  • false:返回固定错误码0。

默认值:false

connectionExtraInfo

指定是否上报驱动相关信息到数据库。

类型:Boolean

取值范围:

  • true:上报驱动部署路径、进程属主用户、url连接配置到数据库,信息将记录在connection_info参数中。
    说明:
    • 非透明多写特性下,可通过PG_STAT_ACTIVITY和PGXC_STAT_ACTIVITY查看驱动相关信息。
  • false:不进行信息上报。

默认值:false

traceInterfaceClass

指定获取traceId方法接口com.huawei.gaussdb.jdbc.log.Tracer的实现类完整限定名。

类型:String

默认值:NULL(表示不开启此功能)

兼容性

表9 兼容性相关的连接参数

参数名称

参数说明

参数值

driverInfoMode

表示驱动描述信息的输出模式。

类型:String

取值范围:

  • postgresql:表示输出PostgreSQL相关的驱动描述信息。
  • gaussdb:表示输出GaussDB相关的驱动描述信息。

默认值:postgresql

oracleCompatible

指定驱动侧是否开启Oracle兼容特性。

类型:String

取值范围:
  • true:表示开启驱动侧所有的Oracle兼容tag(驱动升级后自动包含新版本新增的tag)。
  • false:表示关闭驱动侧所有的Oracle兼容tag。
  • tag:表示开启驱动侧部分的Oracle兼容特性,每个tag对应一个特定的Oracle兼容特性。当配置多个tag时,tag之间用逗号隔开,例如:"tag1,tag2,tag3"。

    当前支持配置的tag包括:

    • getProcedureColumns:DatabaseMetaData#getProcedureColumns方法兼容Oracle数据库行为。当未指定catalog或schema时,默认不作为过滤条件。
    • getCallableStatementResults:CallableStatement接口的getLong、getInt、getShort、getByte方法兼容Oracle数据库行为。在注册出参类型为java.sql.Types#NUMERIC时,调用CallableStatement的getLong、getInt、getShort、getByte方法,能够正常接收out的值,只有out数值超过java数值,数据类型取值范围会提示SQLException异常。
    • batchInsertAffectedRows:reWriteBatchedInserts参数启用后,Statement#executeBatch方法才能兼容Oracle数据库行为。
    • setDateTime:PBE(Prepare-Bind-Execute)模式下绑定Date、Time、Timestamp类型参数时,指定具体oid下发至数据库。
    • blob:开启后,Blob类的接口兼容Oracle数据库行为。
    • clob:开启后,Clob类的接口兼容Oracle数据库行为。
    • functionsCompatible:以下接口方法兼容Oracle数据库行为。
      • ResultSet#wasNull、getBoolean、insertRow
      • DatabaseMetaData#getProcedureTerm
      • Blob#length、getBytes、position、setBytes、truncate、free
      • Clob#length、getSubString、getCharacterStream、getAsciiStream、position、setString、truncate、free
      • CallableStatement,请参见java.sql.CallableStatement

默认值:false

mCompatible

指定驱动侧是否开启MySQL兼容特性。

类型:String

取值范围:
  • true:表示开启驱动侧所有的MySQL兼容tag(驱动升级后自动包含新版本新增的tag)。
  • false:表示关闭驱动侧所有的MySQL兼容tag。
  • tag:表示开启驱动侧部分的MySQL兼容特性,每个tag对应一个特定的MySQL兼容特性。当配置多个tag时,tag之间用逗号隔开,例如:"tag1,tag2,tag3"。
    当前支持配置的tag包括:
    • DatetimeAsTimeStampType:使用java.sql.ResultSet#getObject方法获取datetime数据类型字段时会返回Timestamp类型的对象。
    • blob:开启后,Blob类的接口兼容MySQL数据库行为。
    • clob:开启后,Clob类的接口兼容MySQL数据库行为。
    • functionsCompatible:以下接口方法兼容MySQL数据库行为。
      • ResultSet#wasNull
      • DatabaseMetaData#getProcedureTerm
      • ResultSetMetaData#getColumnName
      • Blob#length、getBytes、setBytes、truncate、free
      • Clob#length、getSubString、getCharacterStream、getAsciiStream、position、setString、truncate、free

默认值:false

mCompatibleSetDateTime

连接MySQL兼容数据库时,绑定Date、Time、Timestamp类型参数,指定oid为具体值或为0下发至数据库。

类型:Boolean

取值范围:

  • true:绑定Date、Time、Timestamp类型参数,指定具体oid下发至数据库,与MySQL数据库的PBE模式(useServerPrepStmts=true&cachePrepStmts=true)保持兼容。
  • false:绑定Date、Time、Timestamp类型参数,oid设置为0下发至数据库,由服务端自动推导类型,与MySQL数据库的默认Query模式保持兼容。

默认值:false

pgCompatible

设置JDBC对SQL语法解析方式是否兼容PG。

类型:Boolean

取值范围:

  • true:表示语法解析兼容PG,支持一个statement中包含多条SQL,并使用分号进行分隔的场景。开启后不支持执行带有分号的SQL语句。
  • false:表示SQL语句解析方式采用默认行为(不兼容PG)。

默认值:false

compatibilityTags

将驱动的部分特性恢复到早期版本,以确保前向兼容。可配置相应tag,每个tag代表开启对应的前向兼容特性,不同tag之间用逗号隔开。目前支持的tag如下:

typeMapInitNull:使用该tag后,兼容驱动早期版本的行为。

说明:

一般不建议使用该参数,除非有明确的前向兼容问题。

类型:String

默认值:NULL

enableObjectTypeConv

表示java.sql.ResultSet#getObject(int, Class<?>)方法是否支持兼容类型转换。当前已支持数值类型互转、字符串类型互转和日期/时间类型互转。

类型:Boolean

取值范围:

  • true:表示支持兼容类型转换。
  • false:表示不支持兼容类型转换。

默认值:false

assumeMinServerVersion(废弃)

指定连接的服务器最低版本。

例如:assumeMinServerVersion高于或者等于9.0,可优化连接建立过程。客户端将不再发送将float精度设置为3的请求(默认维持精度等级2)。

类型:String

默认值:NULL

mQuoteStringCompatible

表示java.sql.DatabaseMetaData#getIdentifierQuoteString()方法是否兼容MySQL。

类型:Boolean

取值范围:

  • true:兼容MySQL,若数据库的sql_mode参数包含ANSI_QUOTES选项,该方法返回双引号,否则返回反引号。
  • false:不兼容MySQL,该方法返回双引号。

默认值:false

性能

表10 性能相关的连接参数

参数名称

参数说明

参数值

prepareThreshold

表示PreparedStatement对象的执行次数阈值。达到该阈值后将复用服务端已解析的statement。

说明:
  • 开启该功能时,不建议使用prepareStatement方法执行涉及密码的语句(例如:CREATE USER user_name WITH PASSWORD '********';)。因为当执行达到prepareThreshold指定次数时,数据库将缓存SQL语句,基于安全因素不会缓存密码,再次执行该prepareStatement方法时会报错“Password must contain at least 8 characters.”。
  • 不推荐prepareThreshold设置为0或1。
    • 设置为0时,每次执行都需要重新解析SQL,降低数据库性能。
    • 设置为1时,即使仅执行一次也会缓存执行计划,造成不必要的内存资源消耗。

类型:Integer

有效取值范围:0 ~ 2147483647。0及负数表示禁用此功能。

默认值:5。表示同一PreparedStatement对象执行次数达到5次后,不再向服务端发送parse消息进行重复解析,而是复用服务端已解析的statement。

preparedStatementCacheQueries

表示每个连接中使用prepareStatement()创建的查询数量超过某一阈值时,将采用LRU(最近最少使用)策略淘汰查询缓存。

类型:Integer

有效取值范围:0 ~ 2147483647。0及负数表示禁用缓存。

默认值:256。表示每个连接中使用prepareStatement()创建的查询数量超过256时,将采用LRU(最近最少使用)策略淘汰查询缓存。

建议:根据业务需求调整该参数,需与prepareThreshold参数配合使用。

preparedStatementCacheSizeMiB

表示每个连接中使用prepareStatement()创建的查询占用缓存空间超过某一阈值时,将采用LRU(最近最少使用)策略淘汰查询缓存。

类型:Integer

单位:MB

有效取值范围:0 ~ 2147483647。0及负数表示禁用缓存。

默认值:5。表示每个连接中使用prepareStatement()创建的查询占用缓存空间超过5MB时,将采用LRU(最近最少使用)策略淘汰查询缓存。

databaseMetadataCacheFields

指定每个连接中缓存的数据库元数据字段数量的最大值。

类型:Integer

有效取值范围:0 ~ 2147483647。0及负数表示禁用缓存。

默认值:65536

databaseMetadataCacheFieldsMiB

指定每个连接中缓存的数据库元数据字段占用缓存空间的最大值。

类型:Integer

单位:MB

有效取值范围:0 ~ 2147483647。0及负数表示禁用缓存。

默认值:5

batchMode

表示是否使用batch模式连接。

说明:

设置batchMode=on时,执行批量插入/更新/删除操作,每一列的数据类型以第一条数据指定的类型为准,若数据类型混用可能会导致报错或者插入的数据异常。

类型:String

取值范围:

  • on:表示开启batch模式,可以提升批量插入/更新/删除的性能。成功执行批量插入/更新/删除操作后,返回结果为[count, 0, 0...0],数组第一个元素为批量插入/更新/删除的总行数。
  • off:表示关闭batch模式。成功执行插入/更新/删除操作后,返回结果的数组各元素对应单条SQL语句执行的影响行数。

默认值:on

reWriteBatchedInserts

表示批量插入时,是否重写SQL语句。使用该参数时,要求设置batchMode=off。

类型:Boolean

取值范围:

  • true:表示批量插入时,可将插入语句合并为一条:
    INSERT INTO TABLE_NAME VALUES (values1, ..., valuesN), ..., (values1, ..., valuesN);
  • false:表示批量插入时,不重写SQL语句。

默认值:false

可用性

表11 可用性相关的连接参数

参数名称

参数说明

参数值

currentSchema

指定当前连接的Schema。如果Schema名包含除字母、数字、下划线之外的特殊字符,需要对Schema名加引号,注意加引号后Schema名大小写敏感。如需配置多个Schema,要用逗号进行分隔。

例如:currentSchema=schema_a,"schema-b","schema/c"

类型:String

默认值:NULL(表示使用连接的用户名作为默认Schema)

enableStandbyRead

指定是否开启备机读模式。

类型:Boolean

取值范围:

  • true:表示启用。
  • false:表示禁用。

默认值:false

loadBalanceHosts

指定是否使用负载均衡功能。

说明:
  • 该参数不可与autoBalance参数一起使用。

类型:Boolean

取值范围:

  • true:表示使用洗牌算法从候选主机中随机选择一个主机建立连接。
  • false:表示顺序连接url中指定的多个主机。

默认值:false

autoBalance

  • 在非透明多写特性下,指定负载均衡的策略。
须知:
  • 负载均衡是基于连接级别,不是基于事务级别。如果连接是长连接,并且连接上的负载不均衡,无法保证CN节点上的负载均衡。
  • 该参数仅能在分布式场景下使用。
  • 配置该参数后,除首次建立连接外,后续与数据库建立连接会依赖pgxc_node表中的IP和端口,具体请参见usingEip参数中的须知。
  • 该参数不可与loadBalanceHosts参数一起使用。
  • 如果在连接容灾集群时开启了负载均衡功能,那么查询请求会发送到主集群上,导致查询性能会受到影响。
  • 在开启负载均衡时,url中可以配置浮动IP或数据IP,如果配置为浮动IP,系统会根据浮动IP获取对应的数据IP,通过获取的数据IP实现负载均衡。因此无论url中配置浮动IP或数据IP时,都需要确保数据IP网络连接正常,否则负载均衡功能将使用异常。
  • 非透明多写特性

    类型:String

    取值范围:

    • true、balance或roundrobin:表示开启JDBC负载均衡功能,将应用程序的多个连接均衡到数据库集群中的各个可用CN

      例如:

      jdbc:gaussdb://host1:port1,host2:port2/database?autoBalance=true

      JDBC会定期刷新整个集群的可用CN列表(CN列表中获取的host是数据IP),该刷新周期可以通过参数refreshCNIpListTime进行配置,默认值为10s。比如获取到的列表为:

      host1:port1,host2:port2,host3:port3,host4:port4

      在启用负载均衡时,host1和host2仅在首次连接时保证高可用性。之后,Driver将从host1、host2、host3和host4中依次选择可用CN来刷新可用CN列表。后续用户新建的连接将使用轮询(RoundRobin)算法从host1、host2、host3和host4中选择CN主机进行连接。

    • priorityn:表示开启JDBC优先级负载均衡功能,将应用程序的多个连接首先均衡到url上配置的前n个中可用的CN数据库节点。当url上配置前n个节点全部不可用时,连接会随机分配到数据库集群中其他可用CN数据库节点。n为正整数,且小于url上配置的CN数量。当parseCandidatesByDomain设置为true时,priorityn的优先级配置不生效,这种场景下的优先级使用priorityDomains参数配置。使用priorityn进行负载均衡时,host不能使用IPv6。在多进程建立连接场景下,该策略会出现负载不均衡。

      例如:

      jdbc:gaussdb://host1:port1,host2:port2,host3:port3,host4:port4/database?autoBalance=priority2

      JDBC将定期获取整个集群可用CN列表,比如获取到的列表为:

      host1:port1,host2:port2,host3:port3,host4:port4,host5:port5,host6:port6

      其中host1和host2处于AZ1,host3和host4处于AZ2。Driver将优先从host1、host2中做负载均衡,host1和host2全部不可用时,才会从host3、host4、host5和host6中随机选择CN节点进行连接。

    • shuffle:表示开启JDBC随机负载均衡功能,将应用程序的多个连接随机均衡到数据库集群中的各个可用CN。

      例如:

      jdbc:gaussdb://host1:port1,host2:port2,host3:port3/database?autoBalance=shuffle

      JDBC将定期获取整个集群的可用CN列表,比如获取到的列表为:

      host1:port1,host2:port2,host3:port3,host4:port4

      host1、host2和host3仅在首次连接时保证高可用性,后续将使用洗牌(shuffle)算法在刷新后的CN列表中随机选择一个CN节点进行连接。

    • specified:表示开启JDBC负载均衡功能,并且只在用户url中指定的节点上建立连接。

      例如:

      jdbc:gaussdb://host1:port1,host2:port2,host3:port3,host4:port4/database?autoBalance=specified&priorityServers=2

      JDBC 将识别用户指定的host1和host2为主集群中用于建立连接的节点,而host3和host4则作为备集群的连接节点。建立连接时,JDBC会首先在host1和host2上均匀分配连接。如果主集群中的所有节点(host1和host2)均发生故障,JDBC不会尝试在剩余的集群节点上建立连接。当备节点升级为主节点后,JDBC会在host3和host4上均匀分配连接。如果备集群中的所有节点(host3和host4)均发生故障,JDBC同样不会尝试在剩余的集群节点上建立连接。

    • shufflen:表示开启JDBC在指定节点上优先随机负载均衡功能,将应用程序的多个连接首先随机均衡到url上配置的前n个中可用的CN数据库节点。当url上配置前n个节点全部不可用时,连接会随机分配到数据库集群中其他可用CN数据库节点。n为正整数,且小于等于url上配置的CN数量。

      parseCandidatesByDomain设置为true时,shufflen的优先级配置不生效,这种场景下的优先级使用priorityDomains参数配置。使用shufflen进行负载均衡时,host不能使用IPv6。在多进程建立连接场景下,通过该策略可以实现指定优先节点的负载均衡连接。

      例如:

      jdbc:gaussdb://host1:port1,host2:port2,host3:port3,host4:port4/database?autoBalance=shuffle2

      JDBC将定期获取整个集群的可用CN列表,比如获取到的列表为:

      host1:port1,host2:port2,host3:port3,host4:port4,host5:port5,host6:port6

      Driver将优先从host1、host2中进行随机负载均衡,host1和host2全部不可用时,才会从host3、host4、host5和host6中随机选择CN主机进行连接。

    • false:表示不开启JDBC负载均衡功能和优先级负载均衡功能。

    默认值:false

disasterToleranceCluster

表示在开启负载均衡功能的场景下且JDBC连接数据库的url中只配置容灾集群节点时,判断负载均衡连接到主集群或连接到容灾集群。该参数不可与priorityServers参数共同使用。

说明:
  • 配置该参数时,连接串中应该只配置主集群或者容灾集群。

类型:Boolean

取值范围:

  • true:表示开启,会在容灾集群节点进行负载均衡。
  • false:表示关闭,会在主集群节点间进行负载均衡。

默认值:false

usingEip

指定是否使用业务IP实现负载均衡。

须知:
  • 该参数需要配合autoBalance参数使用。
  • 当usingEip=true时,除首次建立连接外,后续使用业务IP与数据库建立连接(对应pgxc_node表中node_host1和node_port1列);当usingEip=false时,除首次建立连接外,后续使用数据IP与数据库建立连接(对应pgxc_node表中node_host和node_port列)。

类型:Boolean

取值范围:

  • true:表示使用业务IP实现负载均衡。
  • false:表示使用数据IP实现负载均衡。

默认值:true

priorityServers

指定url中优先连接的节点数量。应用于流式容灾场景。该参数不可与disasterToleranceCluster参数共同使用。

示例:

jdbc:gaussdb://host1:port1,host2:port2,host3:port3,host4:port4/database?priorityServers=2

表示host1与host2为主集群节点,host3与host4为容灾集群节点。

类型:Integer

取值范围:大于0且小于url中配置的CN数量。

默认值:NULL(表示不开启此功能)

hostRecheckSeconds

JDBC尝试连接主机后将记录主机状态(连接成功或连接失败、主节点或备节点)。在设定的hostRecheckSeconds时间内保持记录的主机状态可信,超时后记录的主机状态失效。

类型:Integer

单位:s(秒)

取值范围:0 ~ 2147483

默认值:10

ApplicationType

指定是否开启分布式写入和查询。该参数仅在数据库处于GTM-Free模式时有效。

类型:String

取值范围:

  • not_perfect_sharding_type:开启分布式写入和查询。
  • perfect_sharding_type:默认禁止分布式写入和查询,只有在SQL文中加入/* multinode */ 才能执行分布式写入和查询。

默认值:not_perfect_sharding_type

sessionType

指定当前会话的类型,并生成对应的执行计划。

类型:String

取值范围:

  • normal:表示普通会话类型,根据数据库原有逻辑生成执行计划。
  • singleNode:表示单节点会话类型,读写操作支持下推。单节点会话模式通过CN对指定目标DN进行1对1的会话。此模式需与参数execTargetNode同时使用,设置参数execTargetNode为目标DN节点名称,JDBC将优先连接目标DN对应的本地CN节点。
  • globalReadOnly:表示跨节点只读会话类型。该模式下会正常生成分布式计划,但禁止分布式写操作。

默认值:normal

execTargetNode

表示单节点会话模式下对应的DN节点。此参数需与sessionType同时使用,且仅当sessionType设置为singleNode时生效。

说明:
  • 若sessionType设置为singleNode,但未指定execTargetNode,其效果等同于sessionType设置为normal。

类型:String

取值范围:当前集群内的所有DN节点名称。

默认值:NULL

其他功能

表12 其他功能相关的连接参数

参数名称

参数说明

参数值

allowEncodingChanges

表示是否允许修改字符集类型,通常与characterEncoding参数配合使用,用“&”连接,格式示例如下:

allowEncodingChanges=true&characterEncoding=UTF8

类型:Boolean

取值范围:

  • true:表示允许修改字符集类型。
  • false:表示禁止修改字符集类型。

默认值:false

characterEncoding

表示字符集类型,需与allowEncodingChanges参数配合使用。当allowEncodingChanges为false时,characterEncoding仅允许设置为UTF8;当allowEncodingChanges为true时,characterEncoding可在支持范围内进行配置。

须知:
  • 配置GB18030_2022时,需确保数据库支持该字符集。
  • 1.8.0_381及以上的JDK8版本支持GB18030 2022,低于该版本的JDK8仅支持GB18030 2000。若使用低版本JDK8并配置GB18030_2022,JDBC实际使用的字符集将降级为GB18030。
  • 17.0.8及以上的JDK17版本支持GB18030 2022,低于该版本的JDK17仅支持GB18030 2000。若使用低版本JDK17并配置GB18030_2022,JDBC实际使用的字符集将降级为GB18030。

类型:String

取值范围:UTF8、GBK、LATIN1、GB18030、GB18030_2022、ZHS16GBK。

默认值:UTF8

enableTimeZone

指定是否启用客户端时区设置。

类型:Boolean

取值范围:

  • true:表示启用客户端时区设置(根据JVM时区指定数据库时区)。
  • false:表示禁用客户端时区设置(使用数据库时区)。

默认值:true

autosave

事务内SQL语句执行失败时,指定驱动程序的处理策略。

类型:String

取值范围:

  • always:JDBC驱动程序在每次执行SQL语句之前设置一个保存点,并在失败时回滚到该保存点。
  • never:不设置任何保存点。
  • conservative:每次执行SQL语句之前都会设置保存点,仅在statement XXX无效等特定异常时回滚并重试。

默认值:never

cleanupSavepoints

指定是否自动释放JDBC创建的保存点(autosave为always或conservative时创建)。

类型:Boolean

取值范围:

  • true:自动释放JDBC创建的保存点。
  • false:禁止此功能。

默认值:false

enableStreamingQuery

指定是否开启流式读功能。

说明:

流式读功能:读取数据时,服务端将全部数据发送至客户端Socket缓冲区。缓冲区占满时暂停发送,有空余则继续向缓冲区中发送数据,同时JVM逐行从缓冲区中读取数据。

  • 处理结果快,不会造成JVM内存溢出。
  • 仅支持向后遍历,且在数据处理完成前或statement关闭前,当前连接无法执行其他操作。具体示例请参见使用流式读功能

类型:Boolean

取值范围:

  • 设置为true,且使用statement.setFetchSize(Integer.MIN_VALUE)或者statement.enableStreamingResults()接口时,才能开启流式读功能。
  • 设置为false,表示关闭流式读功能。

默认值:false

preferQueryMode

指定执行查询的模式。

类型:String

取值范围:

  • simple:使用简单查询将整个SQL语句(含参数)作为一个整体发送给数据库执行,无法缓存SQL语句。
  • extended:使用扩展查询将SQL语句的解析(Parse)、参数绑定(Bind)和执行(Execute)分成多个步骤,仅对预编译语句(PreparedStatement)进行缓存,不缓存普通语句(Statement)。
  • extendedForPrepared:对预编译语句(PreparedStatement)使用扩展查询,而对于普通语句(Statement)则使用简单查询,仅对预编译语句进行缓存,不缓存普通语句。
  • extendedCacheEverything:使用扩展查询,同时缓存预编译语句(PreparedStatement)和普通语句(Statement)。

默认值:extended

allowReadOnly

指定是否允许开启只读模式。当allowReadOnly为true时,调用connection.setReadOnly(true)后,只读模式生效,无法修改数据;当allowReadOnly为false时,调用connection.setReadOnly(true)后,只读模式不生效,仍可以修改数据。

类型:Boolean

取值范围:

  • true:允许设置只读模式。
  • false:禁止设置只读模式。

默认值:true

parseCandidatesByDomain

指定是否根据域名获取多个候选节点。

类型:Boolean

取值范围:

  • true:启用域名解析功能。开启后需将url中的host信息配置为“域名+端口”格式,驱动将基于域名获取IP并生成备节点集合,可配合autoBalance参数实现负载均衡功能。
  • false:禁用域名解析功能。

默认值:false

primaryDomains

指定url中配置的前n个域名为主集群并优先连接。参数值大于0时表示启用该功能,需配合parseCandidatesByDomain参数为true时才能生效。将url中的域名拆分成两个分组,前一个分组为主集群,后一个分组为备集群。发生主备切换后,前一个分组为备集群,后一个分组为主集群。适用于流式容灾和Dorado双集群场景。

示例:

jdbc:gaussdb://domain1:port1,domain2:port2,domain3:port3,domain4:port4/database?parseCandidatesByDomain=true&primaryDomains=2

domain1和domain2对应主集群,优先连domain1和domain2对应的IP。如果发生主备切换,将domain3和domain4标记为主集群,优先对domain3和domain4建立连接。

类型:Integer

取值范围:0 ~ (url配置的域名数量-1)

默认值:0(关闭此功能)

priorityDomains

指定url中配置的前n个域名为优先连接的域名。参数值大于0时表示启用该功能,需配合parseCandidatesByDomain参数为true时才能生效。若已配置primaryDomains,则此参数值需小于primaryDomains的配置值。

示例:

jdbc:gaussdb://domain1:port1,domain2:port2,domain3:port3,domain4:port4/database?parseCandidatesByDomain=true&primaryDomains=2&priorityDomains=1

domain1和domain2对应主集群,但将优先连接domain1对应的IP。domain2是备用域名,仅在domain1不可连接时才会尝试连接domain2对应的IP。若发生主备切换,domain3和domain4将被标记为新的主集群,但将优先连接domain3对应的IP,仅在domain3不可连接时才会尝试连接domain4对应的IP。

类型:Integer

取值范围:0 ~ (url配置的域名数量-1)

默认值:0(关闭此功能)

refreshDomainResolveTime

指定域名解析结果的刷新周期,需配合parseCandidatesByDomain参数为true时才能生效。生效后会将url中的域名解析刷新时间设置为指定值,并在异步线程中定时更新域名解析结果。

须知:

驱动仅通过应用所在环境的DNS服务获取域名解析结果,为保障域名绑定的变更被驱动及时感知,需应用所在环境的DNS服务保障域名绑定关系变更后能够及时生效。

类型:Integer

单位:s(秒)

取值范围:1 ~ 2147483647

默认值:10

refreshCNIpListTime

获取CN列表的缓存有效时间。JDBC在建立连接时会检测数据库集群CN状态,在refreshCNIpListTime时间内,此状态被视为可信。超过该时间后状态失效,下次建立连接时会重新获取可用CN的IP列表。

类型:Integer

单位:s(秒)

取值范围:1 ~ 9999

默认值:10

建议:根据业务需求进行调整,并与autoBalance配合使用。

statementTimeout

指定statement执行的超时值。若statement执行时间超过该值,将取消当前执行操作。

类型:Integer

单位:ms(毫秒)

有效取值范围:0 ~ 2147483647。0及负数表示禁用超时功能。

默认值:0

executeUpdateQueryable

指定executeUpdate()方法是否允许执行DQL语句。

说明:

建议通过executeQuery()方法执行DQL语句,因此不推荐启用此参数。

类型:Boolean

取值范围:

  • true:表示启用此功能。开启后,executeUpdate()方法执行DQL语句将返回-1,并可获取结果集。
  • false:表示禁用此功能。

默认值:false

dbMonitor

指定是否开启JDBC连接监控功能。

说明:
  • 连接监控功能可监控以下指标:应用开启连接的次数、关闭连接的次数、连接异常断开的次数、数据库访问量、客户端CPU使用率、内存使用率、网络传输速率、网络时延、网络抖动及丢包率。
  • 当dbMonitor设置为true、loggerLevel设置为debug、loggerFile设置为filePath时,可将客户端的连接监控数据输出到日志文件filePath中。具体配置示例,请参见监控数据库连接

类型:Boolean

取值范围:

  • true:表示启用此功能。
  • false:表示禁用此功能。

默认值:false

enableGaussArrayAndStruct

开启此功能后,会将投影列(或出参)为数组和集合类型的查询结果转换为GaussArray和GaussStruct对象。

类型:Boolean

取值范围:

  • true:表示启用此功能。
  • false:表示禁用此功能。

默认值:false

getColumnsReturnNullScale

通过ResultSetMetaData#getColumns方法获取DECIMAL类型的小数位数时,设置是否将未指定小数位数的列返回null。

类型:Boolean

取值范围:

  • true:对于未指定小数位数的DECIMAL类型列,小数位数返回为null。
  • false:对于未指定小数位数的DECIMAL类型列,小数位数返回为0。

默认值:false

extendTablePrivilege

通过PgDatabaseMetaData#getTablePrivileges方法获取用户对表的权限时,设置驱动行为与哪个开源数据库的驱动兼容。目前仅支持PostgreSQL数据库驱动的兼容。

类型:String

取值范围:

  • PG:驱动行为与最新版本的PostgreSQL数据库的驱动兼容。

默认值:NULL

diffProcAndFunc

指定DatabaseMetaData#getProcedures、DatabaseMetaData#getFunctions方法是否区分存储过程和函数。

类型:Boolean

取值范围:

  • true:表示DatabaseMetaData#getProcedures只返回存储过程,DatabaseMetaData#getFunctions只返回函数。
  • false:表示DatabaseMetaData#getProcedures、DatabaseMetaData#getFunctions同时返回存储过程和函数。

默认值:false

相关文档