JDBC连接GaussDB云数据库操作示例
目录
一、实验环境
二、登录华为云创建测试库表
1、登录GaussDB云数据库
2、建库、建表,用于测试
3、新增普通角色(用户)用于登录及访问测试(可选)
4、获取对应的公网IP
三、创建java工程
1、创建java工程
2、添加jar包
3、编辑Java代码
四、执行并查看测试结果
一、实验环境
1、本地JDB版本:本实验版本:JDK版本:Java 11.0.17
(登录网址:Java Downloads | Oracle ,选择对应jdk版本下载安装即可)
2、华为云环境:广州-友好用户环境,弹性公网
二、登录华为云创建测试库表
1、登录GaussDB云数据库
以IAM用户登录:
依次进入:“服务列表——数据管理服务 DAS——开发工具——登录对应的实例”,如下图:
点击测试连接,提示连接成功,点确认进入:
2、建库、建表,用于测试
创建java_test库:
创建customer_t1表:
CREATE TABLE customer_t1(
c_customer_id INTEGER
, c_customer_name VARCHAR(32)
);
3、新增普通角色(用户)用于登录及访问测试(可选)
新增普通角色test_role,默认购选登录权限(赋权connect)
赋予test_role查询表customer_t1的权限。
GRANT SELECT on public.customer_t1 TO test_role;
(Tip: 测试时将java脚本中的连接用户名和秘密 替换成创建时设置的即可)
4、获取对应的公网IP
获取公网IP用于本地连接GaussDB云数据库:
在本地测试ip 是否ping的通(win+r —— cmd —— ping ip):
三、创建java工程
1、创建java工程
2、添加jar包
1)下载并解压获取对应gsjdbc4.jar: https://dbs-download.obs.cn-north-1.myhuaweicloud.com/GaussDB/1660794000209/GaussDB_opengauss_client_tools.zip
2)在工程src目录下创建lib文件夹,并将解压后的gsjdbc4.jar复制粘贴到此目录
3)手动将其添加到工程中
3、编辑Java代码
连接GaussDB云数据库、执行insert、update、select
package gaussdb_jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class GaussDB_jdbc {
static final String JDBC_DRIVER = "org.postgresql.Driver";
static final String DB_URL = "jdbc:postgresql://*.*.*.*:8000/java_test";
// 数据库的用户名与密码,需要根据自己的设置
static final String USER = "****";
static final String PASS = "****";
// 执行insert
public static void InsertData(Connection conn){
Statement stmt = null;
try {
stmt = conn.createStatement();
String sql;
sql = "INSERT INTO public.customer_t1(c_customer_id, c_customer_name) VALUES(1001,'张三');"
+ "INSERT INTO public.customer_t1(c_customer_id, c_customer_name) VALUES(1002,'李四');"
+ "INSERT INTO public.customer_t1(c_customer_id, c_customer_name) VALUES(1003,'王五');";
ResultSet rs = stmt.executeQuery(sql);
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 执行update
public static void UpadteData(Connection conn){
Statement stmt = null;
try {
stmt = conn.createStatement();
String sql;
sql = "UPDATE customer_t1 SET c_customer_name ='jdbc' WHERE c_customer_id =1003 ";
ResultSet rs = stmt.executeQuery(sql);
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 执行select
public static void SelectData(Connection conn){
Statement stmt = null;
try {
stmt = conn.createStatement();
String sql;
sql = "SELECT c_customer_id, c_customer_name FROM public.customer_t1";
ResultSet rs = stmt.executeQuery(sql);
// 展开结果集数据库
while(rs.next()){
// 通过字段检索
String column1 = rs.getString("c_customer_id");
String column2 = rs.getString("c_customer_name");
// 输出数据
System.out.print("c_customer_id: " + column1);
System.out.print(", c_customer_name: " + column2);
System.out.print("\n");
}
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
// 打开链接
try {
System.out.println("连接数据库...");
Connection conn = DriverManager.getConnection(DB_URL,USER,PASS);
// 执行插入数据
InsertData(conn);
//执行更新数据
UpadteData(conn);
//执行查看
SelectData(conn);
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Tip:ip地址、用户及秘钥根据实际替换即可。
四、执行并查看测试结果
执行java脚本前的数据库表情况(0条记录):
通过JAVA脚本访问GaussDB云数据库,并进行库表操作:
1)JAVA脚本执行情况:
2)数据库表查询情况(插入三条记录,更新了一条记录):
结论:以上结果均与GaussDB云数据端的数据完全匹配,测试结果正确,jdbc访问GaussDB顺利完成。
另,大家可以通过新增角色(或用户)进行测试,例如参考上文中的第二大点中的第3小点进行测试。 本次实验到此结束,欢迎大家互动、交流!