云数据库连接部署实践指南 (怎么部署云数据库连接)
随着云计算技术的不断发展,云数据库已经成为了越来越多企业的选择。使用云数据库的好处就在于可以避免自己公司内部购置硬件和维护数据库,从而省去大量的人力和资源,较大的提高工作效率。但是,一些企业初试云数据库时,却总是不知道如何进行连接部署,这也是一个很重要的步骤。本文就是为大家提供一份详尽的。
一、准备工作
如果您的公司要使用云数据库,那么,首先要确定应该选择哪种云平台,如腾讯云、阿里云等。各个云平台之间的差异很大,需要根据自己公司的具体情况进行选择。例如,如果公司的主要业务在中国,而使用阿里云就是更好的选择,因为阿里云在国内拥有非常强大的网络支持,可以保证用户访问的速度和稳定性。还需要选择一个适合自己的数据库,例如MySQL、Oracle等。
准备工作包括:
1.云平台账户:首先注册云平台账户,获得ID和API密钥,然后根据不同云平台要求的规范将账户配置信息记录在config文件中。
2.软件环境安装:安装Java环境和云数据库相关的SDK。Java环境可以直接通过链接https://www.oracle.com/technetwork/java/javase/downloads/index.html下载。云数据库SDK可以根据所选云平台下载,例如,使用阿里云那么可以访问链接https://developer.aliyun.com/sdk/java。
二、代码实现
云数据库连接部署分为两种:一种是自己本地搭建的应用连接云数据库,另一种是云服务器即在云数据库中建立应用,连接各自的本地数据库。接下来将分别进行阐述。
1.本地应用连接云数据库
要连接云数据库,需要进行以下的操作:
a.添加Demo的依赖:
“`
<dependency>
<groupId> com.aliyun </groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>[4.1.0,5.0.0)</version>
</dependency>
“`
数据库的连接配置可以根据不同的云平台进行指定,例如,阿里云要进行如下的配置:
“`
String accessKeyId = “<your accessKeyId>”;
String accessKeySecret = “<your accessKeySecret>”;
String endpoint = “http(s)://<your endpoint>”;
String regionId = “<your regionId>”;
“`
创建连接后,就可以进行数据的操作,如下:
“`
String instanceId = “<your instanceId>”;
String databaseName = “<your databaseName>”;
String dbInstanceId = “<your dbInstanceId>”;
String dbClass = “<your dbClass>”;
Class.forName(dbClass);
DriverManager.setLogWriter(new PrintWriter(System.out));
String jdbcURL = “jdbc:mysql://” + dbInstanceId + “.” + endpoint+ “/” +databaseName;
String userName = “<your userName>”;
String password = “<your password>”;
System.out.println(“get connection begin!!”);
Connection conn = DriverManager.getConnection(jdbcURL, userName, password);
System.out.println(“get connection end”);
“`
2.云服务器连接本地数据源
现在假设云服务器已经安装了MySql HTTP中间件,并配置了一个名为testmysql的本地MySql数据库。使用此应用程序的AWS EC2实例通过中间件连接到此MySQL实例,并执行SELECT语句以读取联系人数据。应用程序的包含以下组件的源代码(全部为Java类):
1.读取名为config.properties的配置文件以获取阿里云密钥对和AWS区域的住所。
2.读取名为read.sql的SQL文件,并使用读取语句从本地MySQL实例中检索联系人数据。
3.将联系人数据的结果集转换为ON对象,然后通过logback日志记录。
配置文件格式:
“`
aliyun.accessKeyId=<your accessKeyId>
aliyun.accessKeySecret=<your accessKeySecret>
aws.region=<region>
“`
Java类:OperationClass:
“`
import java.sql.*;
import org.json.simple.ONArray;
import org.json.simple.ONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.amazonaws.services.lambda.runtime.Context;
import com.alibaba.fastjson.ON;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class OperationClass {
private static final Logger LOGGER = LoggerFactory.getLogger(OperationClass.class);
public static ONObject getResponse() {
ONObject obj = new ONObject();
ONArray array = new ONArray();
String query = getQuery(“read.sql”);
LOGGER.info(“Get the query string: ” + query);
try (Connection conn = DriverManager.getConnection(“jdbc:mariadb://localhost/testmysql”,
“root”, “root”)) {
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
LOGGER.info(“Got result with ID: ” + rs.getInt(1) + ” eml: ” + rs.getString(2));
ONObject temp = new ONObject();
temp.put(“id”, rs.getInt(1));
temp.put(“eml”, rs.getString(2));
array.add(temp);
}
ps.close();
rs.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
obj.put(“isBase64Encoded”, false);
obj.put(“statusCode”, 200);
obj.put(“headers”, new ONObject());
obj.put(“body”, ON.toONString(array));
return obj;
}
public static String getQuery(String filename) {
String query = “”;
try (InputStream inputStream = OperationClass.class.getClassLoader().getResourceAsStream(filename)) {
if (inputStream == null) {
throw new FileNotFoundException(“SQL file not found for the query. Kindly check the file ” + filename);
} else {
try (InputStreamReader streamReader = new InputStreamReader(inputStream);
BufferedReader reader = new BufferedReader(streamReader)) {
String line;
while ((line = reader.readLine()) != null) {
query += line;
}
} catch (IOException e) {
e.printStackTrace();
}
inputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
return query;
}
}
“`
部分方法解释:
1.这个getResponse()方法返回一个ON文件。该文件包含:
a.statusCode – 响应状态代码(200表示成功)。
b.headers -用于配置响应标头的对象。
c.body – 一个数组,每个对象表示一个联系人,其中包含以下键:id和eml。
2.getConnection()方法获取本地MySQL实例的一个连接。
三、数据库连接测试
完成代码后,一定要进行协议端口的加固等数据库安全相关的操作。具体测试方法为:
1.连接已经配置完成的云数据库,执行一些简单的增删改查指令以检验连接是否成功。如下:
“`
mysql>use test;
mysql>CREATE TABLE cloud_connector (
-> eml varchar(20)
-> );
Query OK, 0 rows affected (0.09 sec)
mysql>insert into cloud_connector values(‘test@qq.com’);
Query OK, 1 row affected (0.02 sec)
mysql>select * from cloud_connector;
+————–+
| eml |
+————–+
| test@qq.com |
+————–+
1 row in set (0.00 sec)
“`
2.在本地环境下,执行applications/ myDemo的maven clean package命令以构建MyDemo.jar文件。
3.使用scp工具将MyDemo.jar文件复制到AWS EC2实例中。
4.通过SSH连接到AWS EC2实例,并使用以下命令运行MyDemo.jar:java -jar myDemo.jar。
5.使用A Web Browser连接到部署在AWS EC2中的应用程序的URL:http://localhost:8000/app/getContacts。
6.应用程序在该页面中显示ON对象。
四、
云数据库连接部署是企业使用云数据库时的基础部署工作。本篇文章试图为大家提供一份操作性强的实践指南,希望能够对初试使用云数据库的企业有帮助。但如果在测试中出现问题,一定要及时寻求相关技术人员的帮助,这样才能确保应用程序的正常运行。