步骤四:连接DRDS逻辑库 JDBC驱动连接DRDS逻辑库 说明 使用以下操作步骤前,确保已安装JDBC驱动,建议JDBC驱动版本选择5.1.49及以上版本,JDBC驱动下载地址: 步骤 1 加载驱动程序。 plaintext Class.forname(com.mysql.jdbc.Driver); 步骤 2 打开数据库连接。 plaintext String username "EXAMPLEUSERNAMEENV" ; String password "EXAMPLEPASSWORDENV" ; String url "jdbc:mysql://ip:port/dbname"; Connection con DriverManager.getConnection(url , username , password); 说明 认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放,使用时解密),确保安全。 本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置)EXAMPLEUSERNAMEENV和EXAMPLEPASSWORDENV。 上述样例中URL的参数取值可参见下表设置。 表 URL参数说明 参数名称 参数说明 推荐取值 ip:port 连接地址和端口,用于连接DDM。 192.168.0.200:5066 获取方法:参考获取DRDS逻辑库连接地址获取jdbc连接地址和端口信息。 dbname 连接逻辑库名称。 db5505 获取方法:在DRDS管理控制台,单击目标实例名称,在左侧导航栏中选择“逻辑库管理”,查看逻辑库名称。 步骤 3 创建Statement对象。 plaintext Statement stmt con.createStatement(); 步骤 4 执行SQL语句。 plaintext ResultSet rs stmt.executeQuery("select now() as Systemtime"); con.close(); 步骤 5 (可选)优化代码。 plaintext loadBalanceAutoCommitStatementThreshold5&loadBalanceHostRemovalGracePeriod15000&loadBalanceBlacklistTimeout60000&loadBalancePingTimeout5000&retriesAllDown10&connectTimeout10000&useSSLtrue"; 说明 loadBalanceAutoCommitStatementThreshold和retriesAllDown参数必须按照以上样例进行配置,否则在连接切换时可能进入死循环,导致栈溢出。 其余参数及相关配置说明请参见下表。 表 参数说明 参数名称 参数说明 推荐取值 loadBalanceAutoCommitStatementThreshold 表示连接上执行多少个语句后会重新选择连接。 如果取值为5,则当执行5个sql后(Queries或者updates等),将会重新选择连接。 如果取值为0,则表示“粘性连接,不重新选择连接”。 关闭自动提交时(autocommitfalse)会等待事务完成再考虑是否重新选择连接。 5 loadBalanceHostRemovalGracePeriod 设置宽限期,以等待主机从负载均衡连接中移除,当主机当前是活动主机时释放主机。 15000 loadBalanceBlacklistTimeout 通过控制服务器在全局黑名单中的存留时间,检查不可用服务器之间的时间间隔(以毫秒为单位)。 60000 loadBalancePingTimeout 使用负载均衡连接时,等待每个负载均衡连接ping响应的毫秒数。 5000 retriesAllDown 当所有的连接地址都无法连接时,轮询重试的最大次数。 重试次数达到阈值仍然无法获取有效连接,将会抛出SQLException。 10 connectTimeout 和数据库服务器建立socket连接时的超时。 单位:毫秒,0表示永不超时,适用于JDK 1.4及更高版本。 10000 socketTimeout socket操作(读写)超时。 单位:毫秒, 0表示永不超时。 根据业务实际情况合理配置。 useSSL 使用SSL加密连接访问DRDS。 true 结束