本文提供的云数据库 MySQL 版 JAVA SDK 的代码示例仅供参考。
使用 SDK 调用 MySQL 接口时,默认无超时时间限制。您可以在发起接口调用请求时,在代码的最后加上 _request_timeout
参数来指定请求的超时时间(单位:秒),若未在该时间内完成,请求即会终止并报超时错误。例如,您可以在调用 DescribeDBInstances 接口时,通过以下代码将超时时间设置为 10 秒。
public static ApiClient apiClient = new ApiClient()
.setCredentials(Credentials.getCredentials(ak,sk))
.setRegion(region)
.setConnectTimeout(10);
关于下述 SDK 代码中所使用参数的定义、取值范围等信息,请参见 CreateDBInstances。
package org.example;
import com.volcengine.*;
import com.volcengine.rdsmysqlv2.RdsMysqlV2Api;
import com.volcengine.rdsmysqlv2.model.*;
import com.volcengine.sign.Credentials;
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";
// 创建 RDS MySQL SDK 客户端,后续可以利用此客户端调用 API 执行任务请求
public static ApiClient apiClient = new ApiClient()
.setCredentials(Credentials.getCredentials(ak, sk))
.setRegion(region)
.setConnectTimeout(10);
public static RdsMysqlV2Api rdsmysqlv2api = new RdsMysqlV2Api(apiClient);
// 创建一个接口入参,并根据需要调用接口的参数说明配置来设置接口入参
public static void main(String[] args) throws Exception {
CreateDBInstanceRequest request = new CreateDBInstanceRequest();
request.setDbEngineVersion("MySQL_Community_5_7");
request.setStorageType("LocalSSD");
request.setStorageSpace(20);
request.setVpcId("vpc-*");
request.setSubnetId("subnet-*");
List<NodeInfoForCreateDBInstanceInput> nodesInfo = new ArrayList<>();
NodeInfoForCreateDBInstanceInput primaryNodeInfo = new NodeInfoForCreateDBInstanceInput();
primaryNodeInfo.setNodeType("Primary");
primaryNodeInfo.setZoneId("cn-beijing-a");
primaryNodeInfo.setNodeSpec("rds.mysql.1c2g");
NodeInfoForCreateDBInstanceInput secondaryNodeInfo = new NodeInfoForCreateDBInstanceInput();
secondaryNodeInfo.setNodeType("Secondary");
secondaryNodeInfo.setZoneId("cn-beijing-a");
secondaryNodeInfo.setNodeSpec("rds.mysql.1c2g");
nodesInfo.add(primaryNodeInfo);
nodesInfo.add(secondaryNodeInfo);
request.setNodeInfo(nodesInfo);
ChargeInfoForCreateDBInstanceInput chargeInfo = new ChargeInfoForCreateDBInstanceInput();
chargeInfo.setChargeType("PostPaid");
request.setChargeInfo(chargeInfo);
// 调用接口完成接口所对应的操作
try {
CreateDBInstanceResponse response = rdsmysqlv2api.createDBInstance(request);
System.out.println(response);
} catch (ApiException e) {
System.out.println(e.getResponseBody());
}
}
}
本示例中的参数说明如下表所示。
配置项 | 说明 | 取值 |
---|---|---|
DBEngineVersion | 实例名称。 | Your Instance Name |
NodeInfo | 实例规格配置。 | [ |
StorageType | 实例存储类型。 | LocalSSD |
StorageSpace | 实例存储空间。 | 100 |
VpcId | 专有网络(VPC) ID。 | vpc-**** |
SubnetId | 子网 ID。 | Subnet123456 |
InstanceName | 实例名称。 | Your Instance Name |
SuperAccountName | 高权限账号名称。 | Test1 |
SuperAccountPassword | 高权限账号的密码。 | Test@123456 |
LowerCaseTableNames | 表名是否区分大小写。 | 1 |
DBTimeZone | 时区。 | UTC +08:00 |
DBParamGroupId | 参数模板 ID。 | ParamGroup123456 |
ProjectName | 实例所属项目。 | Test |
ChargeInfo | 计费类型。 | { |
InstanceTags | 实例标签。 | { |
Number | 实例购买数量。 | 1 |
关于下述 SDK 请求中所使用的参数的定义、取值范围等信息,请参见 DescribeDBInstances。
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 验证信息及 Region
public static String ak = "Your AK";
public static String sk = "Your SK";
public static String region = "Your Region";
// 创建一个 MySQL SDK 客户端,后续可以利用此客户端调用 API 执行任务请求
public static ApiClient apiClient = new ApiClient()
.setCredentials(Credentials.getCredentials(ak, sk))
.setRegion(region);
public static RdsMysqlV2Api rdsmysqlv2api = new RdsMysqlV2Api(apiClient);
// 创建一个接口入参,并根据需要调用接口的参数说明配置来设置接口入参
public static void main(String[] args) throws Exception {
DescribeDBInstanceDetailRequest request = new DescribeDBInstanceDetailRequest();
// 调用接口完成接口所对应的操作
try {
DescribeDBInstanceDetailResponse response = rdsmysqlv2api.describeDBInstanceDetail(request);
System.out.println(response);
} catch (ApiException e) {
System.out.println(e.getResponseBody());
}
}
}