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

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

时间:2024-09-27 14:27:51浏览次数:1  
标签:customer JDBC java String 示例 GaussDB sql conn


目录

一、实验环境

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

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

标签:customer,JDBC,java,String,示例,GaussDB,sql,conn
From: https://www.cnblogs.com/xiaoxu0211/p/18435613

相关文章

  • GaussDB云数据库SQL应用系列-定时任务管理
    ​前言GaussDB数据库定时任务主要可以用于实现定期的备份、统计信息采集、数据汇总、数据清理与优化等,它是指在指定的时间间隔内自动执行一次或多次SQL语句的程序。一、GaussDB数据库定时任务介绍GaussDB数据库兼容Oracle定时任务功能主要通过DBE_TASK高级功能包提供的二次封......
  • GaussDB云数据库SQL应用系列-基础使用
    ​目录一、前言二、前提条件1、连接数据库实例2、GaussDB实例正常运行三、操作示例1、选择实例并进入SQL执行界面2、创建数据库用户3、创建数据库4、创建SCHEMA5、创建表(增删改查)1)创建3张表,并初始化一些数据2)假设查询场景,并通过SQL实现一、前言随着云计算技术的不......
  • GaussDB云数据库SQL应用系列-视图管理
    ​一、前言GaussDB是一款基于云计算技术的高性能关系型数据库,支持多种数据模型和分布式架构。在GaussDB中,视图管理是非常重要的一项功能,它可以帮助用户更方便地管理和查询数据。数据库视图管理是指对数据库中的视图进行创建、修改、删除、查询等操作的过程。二、准备条件参考......
  • GaussDB云数据库SQL应用系列—索引管理
    一、前言随着互联网的快速发展,数据量呈现爆炸式增长。如何高效地管理和查询这些数据成为了企业面临的重要问题。而数据库索引作为数据库优化的关键手段之一,对于提高数据库性能和查询效率具有重要作用。本文将介绍GaussDB云数据库的索引创建和管理方法,并结合实际应用场景进行分析......
  • GaussDB整体性能慢分析
    @目录问题描述问题现象告警业务影响原因分析分析步骤分析定位方法步骤一步骤二步骤三步骤四CPU满I/O满或者I/O异常内存满网络异常步骤五并发问题数据库配置问题异常等待事件长时间性能下降短时性能抖动不优SQL问题描述整体性能慢。不满足客户作业对时延要求或者不满足客户预期。......
  • GaussDB SQL调优:建立合适的索引
    ​背景GaussDB是华为公司倾力打造的自研企业级分布式关系型数据库,该产品具备企业级复杂事务混合负载能力,同时支持优异的分布式事务,同城跨AZ部署,数据0丢失,支持1000+扩展能力,PB级海量存储等企业级数据库特性。拥有云上高可用,高可靠,高安全,弹性伸缩,一键部署,快速备份恢复,监控告警等关......
  • GaussDB分区表查询性能异常分析
    问题现象使用分区表进行相关查询业务,SQL性能慢。原因分析导致分区表业务慢的常见原因有以下几种:分区索引失效,顺序扫描导致的SQL性能慢分区表无法进行分区剪枝导致的SQL性能慢SQL计划选择非最优导致的SQL性能慢处理方法判断是否存在索引异常的行为部分分区DDL如果不带UP......
  • GaussDB内存过载分析
    问题现象数据库进程内存占比较高长时间占比较高观察监控平台内存占用的变化曲线,无论当前数据库是否有业务在运行,数据库进程内存占总机器内存的比例长时间处于较高状态,且不下降。执行作业期间占比较高数据库进程在没有业务执行时,内存使用持续处于较低的状态,当有业务执行时,内......
  • 再识华为云数据库——GaussDB
    前言:华为云数据库GaussDB是一款拥有云上高可用,高可靠,高安全,弹性伸缩,一键部署,快速备份恢复,监控告警等关键能力,能为企业提供功能全面,稳定可靠,扩展性强,性能优越的企业级数据库服务。同时具有PB级海量数据存储、实时高效访问、自动化运维等特点,广泛应用于金融、电信、物流、电商、政......
  • 以学校数据模型为例,掌握在DAS下使用GaussDB
    @目录题目具体操作一、表的创建二、表数据的插入三、数据查询目的:这里以学校数据库模型为例,介绍GaussDB数据库、表等常见操作,以及SQL语法使用的介绍。题目假设A市B学校为了加强对学校的管理,引入了华为GaussDB数据库。在B学校里,主要涉及的对象有学生、教师、班级、院系和课程......