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

news2025/1/10 1:37:50

目录

一、实验环境

二、登录华为云创建测试库表

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小点进行测试。 本次实验到此结束,欢迎大家互动、交流!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/543145.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

bug:生产问题,Golang解决csv文件用excel打开中文乱码问题

bug:Golang解决csv文件用excel打开中文乱码问题 1 场景及分析 场景:今天在生成csv文件之后,测试发现用office和wps打开乱码 分析:经过测试之后发现使用记事本打开不乱码,同时用记事本打开之后另存为ANSI编码之后用off…

详解java中的日期与时间;新旧API对比;各种日期格式转换

一、基本概念 1、本地时间 不同的时区,在同一时刻,本地时间是不同的。全球一共分为24个时区,伦敦所在的时区称为标准时区,其他时区按东/西偏移的小时区分,北京所在的时区是东八区。 2、时区 GMT GMT08:0…

Linux基础指令(含英文注释)

前言: Linux下一切皆文件。 文件 文件内容 文件属性。 操作文件 对内容的操作 对属性的操作。 主要的文件是目录文件dir,和普通文件。(还有其它的) 一、ls/pwd 1、ls 对于目录,该命令列出该目录下的所有子目…

建站笔记——跟小枫社长学建站

该文章为看视频时的一些笔记,完整版可以看小枫社长的视频 小枫社长视频原址 一、租云服务器 学生或者新人可以免费试用几个月 腾讯云阿里云 阿里云对控制台进行了全面升级,在首页使用了新的设计方案,云服务器ECS位置如下,点击左…

浙大数据结构第六周之初识图

题目详情:06-图1 列出连通集 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。 输入格式: 输入第1…

SAP从入门到放弃系列之MTS策略测试记录

​包括:10策略、11策略、30策略、40策略、52策略、63策略。 10策略 业务特点: 策略 10 在大规模生产场景中特别有用,它通常与重复制造 (REM) 相结合。如果企业PMC排产时,希望产品由生产计划(需求管理)决…

了解“感应雷”危害,针对性防护

直击雷的危害,比较容易理解,其防范措施也相对简单明了——避雷针、引下线、接地装置(当然,这里面也有很多的细节和要求,也是需要专业人员来从事的,在此就不展开了),所以对直击雷的防…

springCloud使用maven

springCloud项目使用maven集成nexus 一:故事背景二:基础概念2.1 什么是Maven2.2 什么是nexus 三:实操3.1 setting文件配置3.2 项目内pom.xml配置3.3 jar上传3.3.1 maven插件上传3.3.2 mvn命令上传3.3.3 页面上传3.3.4 通过Rest的方式进行上传…

c++之到底什么时候需要加入析构函数定义?以及内存泄漏

析构函数(destructor)是在类对象销毁时自动调用的特殊成员函数。它的主要作用是释放对象的资源,如堆内存、文件、网络连接等。析构函数的特点是: 1. 析构函数名称与类名相同,前面加~。如~MyClass()。 2. 析构函数没有返回类型。 3. 析构函数可以重载,但不能有参数。 4. 一个…

2023年认证杯二阶段C题数据合并python以及matlab多途径实现代码

对于每种心率下给出的数据,我们需要进行合并才能方便后续处理,这里为大家展示利用python以及matlab分别实现合并的代码 import pandas as pd import os# 创建一个空的DataFrame对象 merged_data pd.DataFrame()# 设置数据文件所在的文件夹路径 folder_…

本地编译和交叉编译的理解

1、本地编译:常见的软件开发,都是属于本地编译:在当前的PC下,x86的CPU下,直接编译出来程序,可以运行的程序(或者库文件),其可以直接在当前的环境,即x86的CPU下…

【linux】挖矿病毒nanominer伪装成python占用服务器GPU!本文带你分析并杀毒!

病毒表现 gpustat -cpu 可以看到root用户将GPU的核心跑满了每个占用都是100%,显存吃了6G多。 nvidia-smi 不能正常显示GPU被哪些进程占用 ![在这里插入图片描述](https://img-blog.csdnimg.cn/780f90080a084a44ac59227e384f985b.png 病毒文件分析 在/tmp/.x/…

浅比一下,各大免费CDN的速度

前言 CDN那么多,到底哪个体验最好呢?今天来简单对比一下免费的CDN之间的差距,看看那家最适合白嫖 百度CDN 官网:https://su.baidu.com/ 平均速度62.7ms,需要备案的域名才行,支持SSL,流量5G/天…

Spring 整合 Mybatis -- Spring入门保姆级教程(四)

文章目录 前言五、Spring 整合 Mybatis1.Mybatis一般开发流程2.spring整合mybatis思路分析3.Spring整合Mybatis环境准备(注解开发)4.Spring整合Mybatis5.小结 引用网站及博客总结 前言 为了巩固所学的知识,作者尝试着开始发布一些学习笔记类…

​AI + 非遗文化传播,人工智能师资培训重磅招募

大语言模型热度空前,诸如文心一言、 ChatGPT 等已经能够与人对话互动、回答问题、协助创作,逐渐应用于人们的工作和生活,也引发了社会热议。为推动大模型及人工智能相关专业人员的培养,同时将人工智能技术融入非遗文化传播&#x…

电子采购系统实现方式(SRM供应商管理)

企事业数字化转型专家,提供各类应用解决方案。您身边的赋能小助手! 文章目录 前言一、当下采购的痛点二、解决方案-供应商管理1.供应商管理 三、解决方案-企业询价、供应商报价管理四、解决方案-采购订单五、送货、到货、订单管理总结 前言 随着各类产业…

软件工程(五) 结构化需求与面向对象需求分析

1、结构化需求分析(SA) 结构化需求分析要完成功能模型、数据模型和行为模型的构建。 1.1、功能模型 一般用数据流图进行建模,也就是DFD。 比如我们要开发一个子啊先教育平台系统,我们把这个系统看作一个整体,去分析哪些人员会用到这个系统。比如有学员,培训部,辅导老师…

阿里云、腾讯云、移动云飙“价”:智能普惠成新风向?

经过过去一年的“低迷”境况之后,2023年云服务商因为AI大模型的爆发,重新燃起了斗志。站在当下的时间节点,云服务商们也在重新思考如何在新形势下,让自己占据更大的优势,于是一场围绕“技术竞争与市场争夺”的新战争打…

spring boot 项目yml方式区分开发、测试生产,并在maven中配置

1、新建配置文件,分别为application.yml、application-dev.yml、application-test.yml和application-prod.yml 2、在application.yml文件中添加如下代码 spring:profiles:## ??pom???????profile??active: "profiles.active"3、在pom中的proj…

class生命周期

组件实例 化的过程称作组件的挂载(mount)。 组件挂载的过程: 构造函数(constructor)最先执行,componentWillMount() 会在 render() 方法之前 执行,而 componentDidMount() 在 render() 方法之后执行。组件更新,调用顺序如下: • componentWi…