JDBC连接GaussDB云数据库操作示例

举报
Gauss松鼠会小助手2 发表于 2023/10/24 10:55:31 2023/10/24
【摘要】 本地JDB版本:本实验版本:JDK版本:Java 11.0.17 (登录网址:https://www.oracle.com/java/technologies/downloads/#java11 ,选择对应jdk版本下载安装即可) 2、华为云环境:广州-友好用户环境,弹性公网

一、实验环境

1、本地JDB版本本实验版本JDK版本Java 11.0.17

(登录网址:https://www.oracle.com/java/technologies/downloads/#java11  ,选择对应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云数据库执行insertupdateselect

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云数据库,并进行库表操作:

1JAVA脚本执行情况

 

2)数据库表查询情况(插入三条记录,更新了一条记录):

 

结论:以上结果均与GaussDB云数据端的数据完全匹配,测试结果正确,jdbc访问GaussDB顺利完成。

 

另,大家可以通过新增角色(或用户)进行测试,例如参考上文中的第二大点中的第3小点进行测试 本次实验到此结束,欢迎大家互动、交流!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。