云服务器内容精选
-
示例 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 //以下代码将获取数据库连接操作封装为一个接口,可通过给定用户名和密码来连接数据库。public static Connection getConnect(String username, String passwd) { //驱动类。 String driver = "org.postgresql.Driver"; //数据库连接描述符。 String sourceURL = "jdbc:postgresql://10.10.0.13:8000/postgres"; Connection conn = null; try { //加载驱动。 Class.forName(driver); } catch( Exception e ) { e.printStackTrace(); return null; } try { //创建连接。 conn = DriverManager.getConnection(sourceURL, username, passwd); System.out.println("Connection succeed!"); } catch(Exception e) { e.printStackTrace(); return null; } return conn; };// 以下代码将使用Properties对象作为参数建立连接public static Connection getConnectUseProp(String username, String passwd) { //驱动类。 String driver = "org.postgresql.Driver"; //数据库连接描述符。 String sourceURL = "jdbc:postgresql://10.10.0.13:8000/postgres?"; Connection conn = null; Properties info = new Properties(); try { //加载驱动。 Class.forName(driver); } catch( Exception e ) { e.printStackTrace(); return null; } try { info.setProperty("user", username); info.setProperty("password", passwd); //创建连接。 conn = DriverManager.getConnection(sourceURL, info); System.out.println("Connection succeed!"); } catch(Exception e) { e.printStackTrace(); return null; } return conn; };
-
调用函数创建数据库连接 JDBC提供了三个方法,用于创建数据库连接。 DriverManager.getConnection(String url); DriverManager.getConnection(String url, Properties info); DriverManager.getConnection(String url, String user, String password); 分布式版连接参数参见表2,主备版连接参数参见表3。 表2 分布式版数据库连接参数 参数 描述 url gsjdbc4.jar数据库连接描述符。格式如下: jdbc:postgresql:(数据库名称缺省则与用户名一致) jdbc:postgresql:database jdbc:postgresql://host/database(端口值缺省会使用默认端口) jdbc:postgresql://host:port/database jdbc:postgresql://host:port/database?param1=value1¶m2=value2 jdbc:postgresql://host1:port1,host2:port2/database?param1=value1¶m2=value2 说明: 使用gsjdbc200.jar时,将“jdbc:postgresql”修改为“jdbc:gaussdb”,不同包的区别请参考JDBC包、驱动类和环境类。 database为要连接的数据库名称。 host为数据库服务器名称或IP地址。 建议业务系统单独部署在实例外部,否则可能会影响数据库运行性能。 缺省情况下,连接服务器为localhost。 port为数据库服务器端口。 缺省情况下,会尝试连接到5432端口的database。 param为参数名称,即数据库连接属性。 参数可以配置在URL中,以"?"开始配置,以"="给参数赋值,以"&"作为不同参数的间隔。也可以采用info对象的属性方式进行配置,详细示例会在本节给出。 value为参数值,即数据库连接属性值。 连接时需配置connectTimeout和socketTimeout,推荐配置为2(如果未配置,默认为0,即不会超时)。在DN与客户端出现网络故障时,客户端一直未收到DN侧ACK确认报文,会启动超时重传机制,不断的进行重传。当超时时间达到系统默认的600s后才会报超时错误,这也就会导致RTO时间很高。 info 数据库连接属性(所有属性大小写敏感)。常用的属性如下: PGDBNAME:String类型。表示数据库名称(URL中无需配置该参数,自动从URL中解析)。 PGHOST:String类型。主机IP地址。若配置多个IP,它们的IP和端口用“:”分隔,并作为整体以逗号分隔(URL中无需配置该参数,自动从URL中解析)。 PGPORT:Integer类型。主机端口号。若配置多个,它们的端口号和IP用":"分割,并作为整体以逗号分隔其他(URL中无需配置该参数,自动从URL中解析)。 user:String类型。表示创建连接的数据库用户。 password:String类型。表示数据库用户的密码。 loggerLevel:String类型。目前支持4种级别:OFF、INFO、DEBUG、TRACE。设置为OFF关闭日志。设置为INFO、DEBUG和TRACE记录的日志信息详细程度不同。 loggerFile:String类型。用于指定日志输出路径(目录和文件名)。若只指定文件名,未指定目录则日志生成在客户端运行程序目录;若不配置或配置的路径不存在,则日志会默认通过流输出。 logger:String类型。表示JDBC Driver要使用的日志输出框架。JDBC Driver支持对接用户应用程序使用的日志输出框架。目前仅支持第三方的基于Slf4j-API的日志框架。 如果不设置或设置为JDK LOGGER,则JDBC Driver使用JDK LOGGER。 否则必须设置采用基于Slf4j-API 第三方日志框架。 allowEncodingChanges:Boolean类型。设置该参数值为“true”进行字符集类型更改,配合characterEncoding=CHARSET设置字符集,二者使用"&"分隔。 currentSchema:String类型。在search-path中指定要设置的schema。 loadBalanceHosts:Boolean类型。在默认模式下(禁用),顺序连接URL中指定的多个主机。如果启用,则使用洗牌算法从候选主机中随机选择一个主机建立连接。 autoBalance:String类型。 设置为true或balance或roundrobin表示开启JDBC负载均衡功能,将应用程序的多个连接均衡到中的各个节点。 例如:jdbc:postgresql://host1:port1,host2:port2/database?autoBalance=true JDBC将定期获取(周期刷新可使用参数refreshCNIpListTime配置,默认为10s)整个实例可用CN列表,比如获取到的列表为:host1:port1,host2:port2,host3:port3,host4:port4。 host1和host2在autoBalance启用时,仅在首次连接做高可用用途,后续Driver将从host1,host2,host3,host4中依次选择可用的CN刷新可用CN列表,后续用户新建的connection将使用RoundRobin算法从host1,host2,host3,host4选取CN主机进行连接。 设置为priorityn表示开启JDBC优先级负载均衡功能,将应用程序的多个连接首先均衡到url上配置的前n个中可用的CN数据库主节点,当url上配置前n个主节点全部不可用时,连接会随机分配到数据库实例中其他可用CN数据库主节点。n为数字,不小于0,且小于url上配置的CN数量。 例如:jdbc:postgresql://host1:port1,host2:port2,host3:port3,host4:port4/database?autoBalance=priority2 JDBC将定期获取(周期按refreshCNIpListTime定义)整个实例可用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:postgresql://host1:port1,host2:port2,host3:port3/database?autoBalance=shuffle JDBC将定期获取(周期刷新可使用参数refreshCNIpListTime配置,默认为10S)整个实例的可用CN列表,比如获取到的列表为:host1:port1,host2:port2,host3:port3,host4:port4。 host1:port1,host2:port2,host3:port3,仅在首次连接做高可用,后续连接将在刷新后的CN列表中,使用shuffle算法随机选用一个CN节点进行连接。 设置为false,不开启负载均衡功能。默认为false。 注意: 负载均衡是基于连接级别,不是基于事务级别。如果连接是长连接,并且连接上的负载不均衡,无法保证CN主机上的负载是均衡的。 负载均衡仅能在分布式场景下使用,主备版环境中不可使用。 使用priorityn做负载均衡时,连接串中IP需要和pgxc_node表中CN的node_host保持一致,否则无法实现优先级负载均衡功能。 查询实例中可用CN的IP和PORT,可使用此语句:“select node_host,node_port from pgxc_node where node_type='C' and nodeis_active = true;” refreshCNIpListTime:Integer类型。JDBC定期检测中状态,获取可用的IP列表的时间间隔,默认为10秒。 hostRecheckSeconds:Integer类型。JDBC尝试连接主机后会保存主机状态:连接成功或连接失败。在hostRecheckSeconds时间内保持可信,超过则状态失效。缺省值是10秒。 ssl:Boolean类型。以SSL方式连接。 ssl=true可支持NonValidatingFactory通道和使用证书的方式: NonValidatingFactory通道需要配置用户名和密码,同时将SSL设置为true。 配置客户端证书、密钥、根证书,将SSL设置为true。 sslmode:String类型。SSL认证方式。取值范围为:require、verify-ca、verify-full。 require只尝试SSL连接,不会检查服务器证书是否由受信任的CA签发,且不会检查服务器主机名与证书中的主机名是否一致。 verify-ca只尝试SSL连接,并且验证服务器是否具有由可信任的证书机构签发的证书。 verify-full只尝试SSL连接,并且验证服务器是否具有由可信任的证书机构签发的证书,以及验证服务器主机名是否与证书中的一致。 sslcert:String类型。提供证书文件的完整路径。客户端和服务端证书的类型为End Entity。 sslkey:String类型。提供密钥文件的完整路径。 sslrootcert:String类型。SSL根证书的文件名。根证书的类型为CA。 sslpassword:String类型。提供给ConsoleCallbackHandler使用。 sslpasswordcallback:String类型。SSL密码提供者的类名。缺省值:org.postgresql.ssl.jdbc4.LibPQFactory.ConsoleCallbackHandler。 sslfactory:String类型。提供的值是SSLSocketFactory在建立SSL连接时用的类名。 sslprivatekeyfactory: String类型。提供的值是实现私钥解密方法的接口org.postgresql.ssl.PrivateKeyFactory的实现类的完整限定类名。如果不提供,首先尝试默认的jdk私钥解密算法,如果无法解密,则使用org.postgresql.ssl.BouncyCastlePrivateKeyFactory,用户需要自己提供bcpkix-jdk15on.jar包,版本建议:1.65以上。 sslfactoryarg:String类型。此值是上面提供的sslfactory类的构造函数的可选参数(不推荐使用本参数)。 sslhostnameverifier:String类型。主机名验证程序的类名。接口实现javax.net.ssl.HostnameVerifier,默认使用org.postgresql.ssl.PGjdbcHostnameVerifier。 loginTimeout:Integer类型。指建立数据库连接的等待时间。超时时间单位为秒。 connectTimeout:Integer类型。用于连接服务器操作的超时值。如果连接到服务器花费的时间超过此值,则连接断开。超时时间单位为秒,值为0时表示已禁用,timeout不发生。 socketTimeout:Integer类型。用于socket读取操作的超时值。如果从服务器读取所花费的时间超过此值,则连接关闭。超时时间单位为秒,值为0时表示已禁用,timeout不发生。 cancelSignalTimeout:Integer类型。发送取消消息本身可能会阻塞,此属性控制用于取消命令的“connect超时”和“socket超时”。超时时间单位为秒,默认值为10秒。 tcpKeepAlive:Boolean类型。启用或禁用TCP保活探测功能。默认为false。 logUnclosedConnections:Boolean类型。客户端可能由于未调用Connection对象的close()方法而泄漏Connection对象。最终这些对象将被垃圾回收,并且调用finalize()方法。如果调用者自己忽略了此操作,该方法将关闭Connection。 assumeMinServerVersion(废弃):String类型。该参数设置要连接的服务器版本。 ApplicationName:String类型。设置正在使用连接的应用程序名称。通过在上查询pgxc_stat_activity表可以看到正在连接的客户端信息,显示在application_name列。缺省值为PostgreSQL JDBC Driver。 connectionExtraInfo:Boolean类型。表示驱动是否上报当前驱动的部署路径、进程属主用户到数据库。 取值范围:true或false,默认值为false。设置connectionExtraInfo为true,JDBC驱动会将当前驱动的部署路径、进程属主用户上报到数据库中,记录在connection_info参数里;同时可以在PG_STAT_ACTIVITY和PGXC_STAT_ACTIVITY中查询到。 autosave:String类型。共有3种:"always", "never", "conservative"。如果查询失败,指定驱动程序应该执行的操作。在autosave=always模式下,JDBC驱动程序在每次查询之前设置一个保存点,并在失败时回滚到该保存点。在autosave=never模式(默认)下,无保存点。在autosave=conservative模式下,每次查询都会设置保存点,但是只会在“statement XXX无效”等情况下回滚并重试。 protocolVersion:Integer类型。连接协议版本号,目前仅支持3。注意:设置该参数时将采用md5加密方式,需要同步修改数据库的加密方式:gs_guc set -N all -I all -Z coordinator -c "password_encryption_type=1" ,重启实例生效后需要创建用md5方式加密密码的用户。同时修改pg_hba.conf,将客户端连接方式修改为md5。用新建用户进行登录(因为设置这个值后,只能使用低等级的加密方式(md5),降低安全性,所以此值不推荐设置)。 说明: MD5加密算法安全性低,存在安全风险,建议使用更安全的加密算法。 prepareThreshold:Integer类型。该值决定着PreparedStatement对象在执行多少次以后使用服务端已经准备好的statement。默认值是5,意味着在执行同一个PreparedStatement对象时,在第五次以及以上执行时不再向服务端发送parse消息对statement进行解析,而使用之前在服务端已经解析好的statement。 preparedStatementCacheQueries:Integer类型。该参数确定了每个连接的cache缓存Statement对象生成query的最大个数。默认值为256,若Statement对象生成query个大于256则会将最近最少使用的query从缓存中丢弃。0表示禁用缓存。 preparedStatementCacheSizeMiB:Integer类型,该参数确定了每个连接的cache缓存Statement对象所生成query的最大值(以兆字节为单位),默认情况下是5。若缓存了超过5MB的query,则最近最少使用的查询缓存将被丢弃。0表示禁用缓存。 databaseMetadataCacheFields:Integer类型。默认值是65536。指定每个连接可缓存的最大字段的个数。“0”表示禁用缓存。 databaseMetadataCacheFieldsMiB:Integer类型。默认值是5。指定每个连接可缓存的字段的最大值,单位是MB。“0”表示禁用缓存。 stringtype:String类型,可选字段为:"unspecified", "varchar"。设置通过setString()方法使用的PreparedStatement参数的类型,如果stringtype设置为VARCHAR(默认值),则这些参数将作为varchar参数发送给服务器。若stringtype设置为unspecified,则参数将作为untyped值发送到服务器,服务器将尝试推断适当的类型。 batchMode:Boolean类型。用于确定是否使用batch模式连接。默认值为on,表示开启batch模式。 fetchsize:Integer类型。用于设置数据库连接所创建statement的默认fetchsize。默认值为0,表示一次获取所有结果。 reWriteBatchedInserts:Boolean类型。批量导入时,该参数设置为on,可将N条插入语句合并为一条:insert into TABLE_NAME values(values1, ..., valuesN), ..., (values1, ..., valuesN);使用该参数时,需设置batchMode=off。 unknownLength:Integer类型,默认为Integer.MAX_VALUE。某些postgresql类型(例如TEXT)没有明确定义的长度,当通过ResultSetMetaData.getColumnDisplaySize和ResultSetMetaData.getPrecision等函数返回关于这些类型的数据时,此参数指定未知长度类型的长度。 defaultRowFetchSize:Integer类型。确定一次fetch在ResultSet中读取的行数。限制每次访问数据库时读取的行数可以避免不必要的内存消耗,从而避免OutOfMemoryException。缺省值是0,这意味着ResultSet中将一次获取所有行。本参数不允许设置为负值。 binaryTransfer:Boolean类型。使用二进制格式发送和接收数据,默认值为“false”。 binaryTransferEnable:String类型。启用二进制传输的类型列表,以逗号分隔。OID编号和名称二选一,例如binaryTransferEnable=INT4_ARRAY,INT8_ARRAY。 比如:OID名称为BLOB,编号为88,可以如下配置: binaryTransferEnable=BLOB 或 binaryTransferEnable=88 binaryTransferDisEnable:String类型。禁用二进制传输的类型列表,以逗号分隔。OID编号和名称二选一。覆盖binaryTransferEnable的设置。 blobMode:String类型。用于设置setBinaryStream(int, InputStream, int)方法为不同类型的数据赋值,设置为on时表示为blob类型数据赋值,设置为off时表示为bytea类型数据赋值,默认为on;setBinaryStream(int, InputStream, long)与setBinaryStream(int, InputStream)用于为bytea数据类型赋值。 socketFactory:String类型。用于创建与服务器socket连接的类的名称。该类必须实现了接口“javax.net.SocketFactory”,并定义无参或单String参数的构造函数。 socketFactoryArg:String类型。此值是上面提供的socketFactory类的构造函数的可选参数,不推荐使用。 receiveBufferSize:Integer类型。该值用于设置连接流上的SO_RCVBUF。 sendBufferSize:Integer类型。该值用于设置连接流上的SO_SNDBUF。 preferQueryMode:String类型。共有4种:"extended", "extendedForPrepared", "extendedCacheEverything", "simple"。用于指定执行查询的模式,默认值为extended。simple模式只发送Q消息,仅支持文本模式,不支持parse与bind;extended模式会使用parse、bind和execute消息;extendedForPrepared模式下只有Prepared Statement对象使用扩展查询,Statement对象只使用简单查询;extendedCacheEverything模式会缓存每个Statement对象所生成的query。 ApplicationType:String类型。共有2种:"not_perfect_sharding_type","perfect_sharding_type"。用于设置是否开启分布式写入和查询,默认值为"not_perfect_sharding_type"。not_perfect_sharding_type模式下开启分布式写入和查询;perfect_sharding_type模式下默认禁止分布式写入和查询,只有在sql文中加入/* multinode */ 才能执行分布式写入和查询。该项设置只有数据库处于gtm free场景的情况下才会有效。 user 数据库用户。 password 数据库用户的密码。 表3 主备版数据库连接参数 参数 描述 url postgresql.jar数据库连接描述符。格式如下: jdbc:postgresql:database jdbc:postgresql://host/database jdbc:postgresql://host:port/database jdbc:postgresql://host:port/database?param1=value1¶m2=value2 jdbc:postgresql://host1:port1,host2:port2/database?param1=value1¶m2=value2 说明: database为要连接的数据库名称。 host为数据库服务器名称或IP地址。 由于安全原因,数据库主节点禁止数据库内部其他节点无认证接入。如果要在数据库内部访问数据库主节点,请将JDBC程序部署在数据库主节点所在机器,host使用"127.0.0.1"。否则可能会出现“FATAL: Forbid remote connection with trust method!”错误。 建议业务系统单独部署在数据库外部,否则可能会影响数据库运行性能。 缺省情况下,连接服务器为localhost。 port为数据库服务器端口。 缺省情况下,会尝试连接到5432端口的database。 param为参数名称,即数据库连接属性。 参数可以配置在URL中,以"?"开始配置,以"="给参数赋值,以"&"作为不同参数的间隔。也可以采用info对象的属性方式进行配置,详细示例会在本节给出。 value为参数值,即数据库连接属性值。 连接时需配置connectTimeout和socketTimeout,推荐配置为2(如果未配置,默认为0,即不会超时)。在DN与客户端出现网络故障时,客户端一直未收到DN侧ACK确认报文,会启动超时重传机制,不断的进行重传。当超时时间达到系统默认的600s后才会报超时错误,这也就会导致RTO时间很高。 info 数据库连接属性(所有属性大小写敏感)。常用的属性如下: PGDBNAME:String类型。表示数据库名称。(URL中无需配置该参数,自动从URL中解析) PGHOST:String类型。主机IP地址。详细示例见下。 PGPORT:Integer类型。主机端口号。详细示例见下。 user:String类型。表示创建连接的数据库用户。 password:String类型。表示数据库用户的密码。 loggerLevel:String类型。目前支持3种级别:OFF、DEBUG、TRACE。设置为OFF关闭日志,设置为DEBUG和TRACE记录的日志信息详细程度不同。 loggerFile:String类型。Logger输出的文件名。需要显示指定日志文件名,若未指定目录则生成在客户端运行程序目录。 allowEncodingChanges:Boolean类型。设置该参数值为“true”进行字符集类型更改,配合characterEncoding=CHARSET设置字符集,二者使用"&"分隔。 currentSchema:String类型。在search-path中指定要设置的schema。 hostRecheckSeconds:Integer类型。JDBC尝试连接主机后会保存主机状态:连接成功或连接失败。在hostRecheckSeconds时间内保持可信,超过则状态失效。缺省值是10秒。 ssl:Boolean类型。以SSL方式连接。 ssl=true可支持NonValidatingFactory通道和使用证书的方式: 1、NonValidatingFactory通道需要配置用户名和密码。 2、配置客户端证书、密钥、根证书,将SSL设置为true。 sslmode:String类型。SSL认证方式。取值范围为:require、verify-ca、verify-full。 require只尝试SSL连接,如果存在CA文件,则应设置成verify-ca的方式验证。 verify-ca只尝试SSL连接,并且验证服务器是否具有由可信任的证书机构签发的证书。 verify-full只尝试SSL连接,并且验证服务器是否具有由可信任的证书机构签发的证书,以及验证服务器主机名是否与证书中的一致。 sslcert:String类型。提供证书文件的完整路径。客户端和服务端证书的类型为End Entity。 sslkey:String类型。提供密钥文件的完整路径。使用时将客户端证书转换为DER格式: openssl pkcs8 -topk8 -outform DER -in client.key -out client.key.pk8 -nocrypt sslrootcert:String类型。SSL根证书的文件名。根证书的类型为CA。 sslpassword:String类型。提供给ConsoleCallbackHandler使用。 sslpasswordcallback:String类型。SSL密码提供者的类名。缺省值:org.postgresql.ssl.jdbc4.LibPQFactory.ConsoleCallbackHandler。 sslfactory:String类型。提供的值是SSLSocketFactory在建立SSL连接时用的类名。 sslfactoryarg:String类型。此值是上面提供的sslfactory类的构造函数的可选参数(不推荐使用)。 sslhostnameverifier:String类型。主机名验证程序的类名。接口实现javax.net.ssl.HostnameVerifier,默认使用org.postgresql.ssl.PGjdbcHostnameVerifier。 loginTimeout:Integer类型。指建立数据库连接的等待时间。超时时间单位为秒。 connectTimeout:Integer类型。用于连接服务器操作的超时值。如果连接到服务器花费的时间超过此值,则连接断开。超时时间单位为秒,值为0时表示已禁用,timeout不发生。 socketTimeout:Integer类型。用于socket读取操作的超时值。如果从服务器读取所花费的时间超过此值,则连接关闭。超时时间单位为秒,值为0时表示已禁用,timeout不发生。 cancelSignalTimeout:Integer类型。发送取消消息本身可能会阻塞,此属性控制用于取消命令的“connect超时”和“socket超时”。超时时间单位为秒,默认值为10秒。 tcpKeepAlive:Boolean类型。启用或禁用TCP保活探测功能。默认为false。 logUnclosedConnections:Boolean类型。客户端可能由于未调用Connection对象的close()方法而泄漏Connection对象。最终这些对象将被垃圾回收,并且调用finalize()方法。如果调用者自己忽略了此操作,该方法将关闭Connection。 assumeMinServerVersion:String类型。客户端会发送请求进行float精度设置。该参数设置要连接的服务器版本,如assumeMinServerVersion=9.0,可以在建立时减少相关包的发送。 ApplicationName:String类型。设置正在使用连接的JDBC驱动的名称。通过在数据库主节点上查询pg_stat_activity表可以看到正在连接的客户端信息,JDBC驱动名称显示在application_name列。缺省值为PostgreSQL JDBC Driver。 connectionExtraInfo:Boolean类型。表示驱动是否上报当前驱动的部署路径、进程属主用户到数据库。 取值范围:true或false,默认值为false。设置connectionExtraInfo为true,JDBC驱动会将当前驱动的部署路径、进程属主用户上报到数据库中,记录在connection_info参数里;同时可以在PG_STAT_ACTIVITY中查询到。 autosave:String类型。共有3种:"always", "never", "conservative"。如果查询失败,指定驱动程序应该执行的操作。在autosave=always模式下,JDBC驱动程序在每次查询之前设置一个保存点,并在失败时回滚到该保存点。在autosave=never模式(默认)下,无保存点。在autosave=conservative模式下,每次查询都会设置保存点,但是只会在“statement XXX无效”等情况下回滚并重试。 protocolVersion:Integer类型。连接协议版本号,目前仅支持3。注意:设置该参数时将采用md5加密方式,需要同步修改数据库的加密方式:gs_guc set -N all -I all -c "password_encryption_type=1" ,重启数据库生效后需要创建用md5方式加密密码的用户。同时修改pg_hba.conf,将客户端连接方式修改为md5。用新建用户进行登录(不推荐)。 说明: MD5加密算法安全性低,存在安全风险,建议使用更安全的加密算法。 prepareThreshold:Integer类型。控制parse语句何时发送。默认值是5。第一次parse一个SQL比较慢,后面再parse就会比较快,因为有缓存了。如果一个会话连续多次执行同一个SQL,在达到prepareThreshold次数以上时,JDBC将不再对这个SQL发送parse命令。 preparedStatementCacheQueries:Integer类型。确定每个连接中缓存的查询数,默认情况下是256。若在prepareStatement()调用中使用超过256个不同的查询,则最近最少使用的查询缓存将被丢弃。0表示禁用缓存。 preparedStatementCacheSizeMiB:Integer类型。确定每个连接可缓存的最大值(以兆字节为单位),默认情况下是5。若缓存了超过5MB的查询,则最近最少使用的查询缓存将被丢弃。0表示禁用缓存。 databaseMetadataCacheFields:Integer类型。默认值是65536。指定每个连接可缓存的最大值。“0”表示禁用缓存。 databaseMetadataCacheFieldsMiB:Integer类型。默认值是5。每个连接可缓存的最大值,单位是MB。“0”表示禁用缓存。 stringtype:String类型,可选字段为:false, "unspecified", "varchar"。设置通过setString()方法使用的PreparedStatement参数的类型,如果stringtype设置为VARCHAR(默认值),则这些参数将作为varchar参数发送给服务器。若stringtype设置为unspecified,则参数将作为untyped值发送到服务器,服务器将尝试推断适当的类型。 batchMode:Boolean类型。用于确定是否使用batch模式连接。默认值为on,表示开启batch模式。 fetchsize:Integer类型。用于设置数据库连接所创建statement的默认fetchsize。默认值为0,表示一次获取所有结果。 reWriteBatchedInserts:Boolean类型。批量导入时,该参数设置为on,可将N条插入语句合并为一条:insert into TABLE_NAME values(values1, ..., valuesN), ..., (values1, ..., valuesN);使用该参数时,需设置batchMode=off。 unknownLength:Integer类型,默认为Integer.MAX_VALUE。某些postgresql类型(例如TEXT)没有明确定义的长度,当通过ResultSetMetaData.getColumnDisplaySize和ResultSetMetaData.getPrecision等函数返回关于这些类型的数据时,此参数指定未知长度类型的长度。 defaultRowFetchSize:Integer类型。确定一次fetch在ResultSet中读取的行数。限制每次访问数据库时读取的行数可以避免不必要的内存消耗,从而避免OutOfMemoryException。缺省值是0,这意味着ResultSet中将一次获取所有行。没有负数。 binaryTransfer:Boolean类型。使用二进制格式发送和接收数据,默认值为“false”。 binaryTransferEnable:String类型。启用二进制传输的类型列表,以逗号分隔。OID编号和名称二选一,例如binaryTransferEnable=Integer4_ARRAY,Integer8_ARRAY。 比如:OID名称为BLOB,编号为88,可以如下配置: binaryTransferEnable=BLOB 或 binaryTransferEnable=88 binaryTransferDisEnable:String类型。禁用二进制传输的类型列表,以逗号分隔。OID编号和名称二选一。覆盖binaryTransferEnable的设置。 blobMode:String类型。用于设置setBinaryStream方法为不同类型的数据赋值,设置为on时表示为blob类型数据赋值,设置为off时表示为bytea类型数据赋值,默认为on。 socketFactory:String类型。用于创建与服务器socket连接的类的名称。该类必须实现了接口“javax.net.SocketFactory”,并定义无参或单String参数的构造函数。 socketFactoryArg:String类型。此值是上面提供的socketFactory类的构造函数的可选参数,不推荐使用。 receiveBufferSize:Integer类型。该值用于设置连接流上的SO_RCVBUF。 sendBufferSize:Integer类型。该值用于设置连接流上的SO_SNDBUF。 preferQueryMode:String类型。共有4种:"extended", "extendedForPrepared", "extendedCacheEverything", "simple"。用于指定执行查询的模式,simple模式会excute,不parse和bind;extended模式会bind和excute;extendedForPrepared模式为prepared statement扩展使用;extendedCacheEverything模式会缓存每个statement。 targetServerType: String类型。该参数识别主备数据节点是通过查询URL连接串中,数据节点是否允许写操作来实现的,默认为"any"。共有四种:"any","master","slave","preferSlave": master则尝试连接到URL连接串中的主节点,如果找不到就抛出异常。 slave则尝试连接到URL连接串中的备节点,如果找不到就抛出异常。 preferSlave则尝试连接到URL连接串中的备数据节点(如果有可用的话),否则连接到主数据节点。 any则尝试连接URL连接串中的任何一个数据节点。 user 数据库用户。 password 数据库用户的密码。
-
获取驱动包 根据不同版本的实例,下载不同版本的发布包,如表1所示。 表1 驱动包下载列表 版本 下载地址 3.x 驱动包 驱动包校验包 2.x 驱动包 驱动包校验包 为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的校验包对软件包进行校验,校验方法如下: 上传软件包和软件包校验包到虚拟机(Linux操作系统)的同一目录下。 执行如下命令,校验软件包完整性。 cat GaussDB_driver.zip.sha256 | sha256sum --check 如果回显OK,则校验通过。 GaussDB_driver.zip: OK
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格