本文介绍云数据库 PostgreSQL 版 Java SDK 的下载、安装与初始化客户端的相关信息。
需要使用 Java JDK 1.7 或以上版本。更多详情,请参见 Java Downloads。
说明
您可以执行 java -version
命令检查当前 Java 的版本。
云数据库 PostgreSQL 版的 Java SDK 源码地址,请参见 SDK 列表。
配置 Maven 项目依赖。新建一个 Maven 项目,并在项目目录下的 pom.xml
中添加以下设置引入服务依赖。引入依赖后,Maven 项目管理工具会自动下载相关 JAR 包。
说明
如果您的 Java JDK 版本为 JDK 9 或以上版本,还需要额外添加 javax.annotation-api
依赖,请在 pom.xml
中添加以下内容。
<dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>1.3.2</version> </dependency>
<dependency> <groupId>com.volcengine</groupId> <artifactId>volcengine-java-sdk-rdsmysqlv2</artifactId> <version>0.1.157</version> </dependency>
已获取账号的 Access Key ID(简称 AK)和 Secret Access Key(简称 SK)信息,获取方法请参见查看 AKSK 信息。
已获取云数据库 PostgreSQL 版支持的 Region,请参见服务地址。
已下载并安装云数据库 PostgreSQL 版 Java SDK。具体操作步骤,请参见下载与安装。
使用以下代码初始化客户端。
package org.example; import com.volcengine.*; import com.volcengine.rdsmysqlv2.RdsMysqlV2Api; import com.volcengine.rdsmysqlv2.model.DescribeDBInstanceDetailRequest; import com.volcengine.rdsmysqlv2.model.DescribeDBInstanceDetailResponse; import com.volcengine.sign.Credentials; public class Main {// 设置 AKSK 验证信息及 Regionpublic static String ak = "Your AK";public static String sk = "Your SK";public static String region = "Your Region"; // 创建一个 RDS MySQL SDK 客户端,后续可以利用此客户端调用 API 执行任务请求public static ApiClient apiClient = new ApiClient() .setCredentials(Credentials.getCredentials(ak, sk)) .setRegion(region);public static RdsMysqlV2Api rdsmysqlv2api = new RdsMysqlV2Api(apiClient); } java
使用 SDK 调用 MySQL 接口时,默认无超时时间限制。您可以在发起接口调用请求时,在代码的最后加上 _request_timeout
参数来指定请求的超时时间(单位:秒),若未在该时间内完成,请求即会终止并报超时错误。例如,您可以在调用 DescribeDBInstances 接口时,通过以下代码将超时时间设置为 10 秒。
public static ApiClient apiClient = new ApiClient() .setCredentials(Credentials.getCredentials(ak,sk)) .setRegion(region) .setConnectTimeout(10); java
关于下述 SDK 代码中所使用参数的定义、取值范围等信息,请参见 CreateDBInstances。
package org.example; import com.volcengine.*; import com.volcengine.sign.Credentials; import com.volcengine.rdspostgresql.RdsPostgresqlApi; import com.volcengine.rdspostgresql.model.*; import java.util.ArrayList; import java.util.List; public class Main { // 设置 AKSK 验证信息及 Region public static String ak = "Your AK"; public static String sk = "Your SK"; public static String region = "Your Region"; public static String host = "Your Host"; // 创建一个 RDS PostgreSQL SDK 客户端,后续可以利用此客户端调用 API 执行任务请求 public static ApiClient apiClient = new ApiClient() .setCredentials(Credentials.getCredentials(ak, sk)) .setRegion(region) .setEndpoint(host) .setConnectTimeout(10); public static RdsPostgresqlApi rdsPostgresql = new RdsPostgresqlApi(apiClient); // 创建一个接口入参,并根据需要调用接口的参数说明配置来设置接口入参 public static void main(String[] args) throws Exception { List<NodeInfoForCreateDBInstanceInput> nodesInfo = new ArrayList<>(); NodeInfoForCreateDBInstanceInput primaryNodeInfo = new NodeInfoForCreateDBInstanceInput(); primaryNodeInfo.setNodeType("Primary"); primaryNodeInfo.setZoneId("cn-beijing-c"); primaryNodeInfo.setNodeSpec("rds.postgres.1c2g"); NodeInfoForCreateDBInstanceInput secondaryNodeInfo = new NodeInfoForCreateDBInstanceInput(); secondaryNodeInfo.setNodeType("Secondary"); secondaryNodeInfo.setZoneId("cn-beijing-c"); secondaryNodeInfo.setNodeSpec("rds.postgres.1c2g"); nodesInfo.add(primaryNodeInfo); nodesInfo.add(secondaryNodeInfo); ChargeInfoForCreateDBInstanceInput chargeInfo = new ChargeInfoForCreateDBInstanceInput(); chargeInfo.setChargeType("PostPaid"); CreateDBInstanceRequest request = new CreateDBInstanceRequest(); request.setInstanceName("pg-test-sdk-java"); request.setDbEngineVersion("PostgreSQL_12"); request.setStorageType("LocalSSD"); request.setStorageSpace(30); request.setVpcId("vpc-2bzo8w6m87v282dx0eemg****"); request.setSubnetId("subnet-2d6b6byrhtts058ozfenq****"); request.setNodeInfo(nodesInfo); request.setChargeInfo(chargeInfo); // 调用接口完成接口所对应的操作 try { CreateDBInstanceResponse response = rdsPostgresql.createDBInstance(request); System.out.println(response); } catch (ApiException e) { System.out.println(e.getResponseBody()); } } }
本示例中的参数说明如下表所示。
配置项 | 说明 | 取值 |
---|---|---|
DBEngineVersion | 兼容版本。 | PostgreSQL_12 |
NodeInfo | 实例规格配置。 | [ |
StorageType | 实例存储类型。 | LocalSSD |
StorageSpace | 实例存储空间。 | 30 |
VpcId | 专有网络(VPC) ID。 | vpc-2bzo8w6m87v282dx0eemg**** |
SubnetId | 子网 ID。 | subnet-2d6b6byrhtts058ozfenq**** |
InstanceName | 实例名称。 | pg-test-sdk-java |
ChargeInfo | 计费类型。 | { |
关于下述 SDK 请求中所使用的参数的定义、取值范围等信息,请参见 DescribeDBInstanceDetail。
package org.example; import com.volcengine.*; import com.volcengine.sign.Credentials; import com.volcengine.rdspostgresql.RdsPostgresqlApi; import com.volcengine.rdspostgresql.model.*; public class Main { // 设置 AKSK 验证信息及 Region public static String ak = "Your AK"; public static String sk = "Your SK"; public static String region = "Your Region"; public static String host = "Your Host"; // 创建一个 RDS PostgreSQL SDK 客户端,后续可以利用此客户端调用 API 执行任务请求 public static ApiClient apiClient = new ApiClient() .setCredentials(Credentials.getCredentials(ak, sk)) .setRegion(region) .setEndpoint(host) .setConnectTimeout(10); public static RdsPostgresqlApi rdsPostgresql = new RdsPostgresqlApi(apiClient); // 创建一个接口入参,并根据需要调用接口的参数说明配置来设置接口入参 public static void main(String[] args) throws Exception { DescribeDBInstanceDetailRequest request = new DescribeDBInstanceDetailRequest(); // 调用接口完成接口所对应的操作 try { DescribeDBInstanceDetailResponse response = rdsPostgresql.describeDBInstanceDetail(request); System.out.println(response); } catch (ApiException e) { System.out.println(e.getResponseBody()); } } }