openGauss开源数据库实战二十一

文章目录

  • 任务二十一 使用JDBC访问openGauss数据库
    • 任务目标
    • 实施步骤
      • 一、准备工作
    • 二、下载并安装JavaSE8
      • 1 下载JavaSE8
      • 安装Java8SE并配置环境变量
    • 三、下载并安装eclipse
    • 四、下载并安装openGauss的JDBC驱动包
    • 五、使用IDEA编写JDBC测试程序
      • 1 使用IDEA的SSH连接虚拟机
      • 2 创建项目并连接数据库
      • 3 JAR包的构建
    • 六、验证JDBC对数据库的操作
    • 七、使用VScode远程编写JDBC测试程序
      • 1. SSH连接远程
      • 2. 创建工程
      • 3. 添加依赖包的方式
      • 4. 运行

任务二十一 使用JDBC访问openGauss数据库

任务目标

初步学握JDBC的编程方法。

实施步骤

一、准备工作

使用Linux用户omm,打开一个Linux终端窗口,执行下面的命令和SQL语句,创建用于测试JDBC的数据库用户test、表空间test_ts、数据库testdb:

gsql -d postgres -p 26000 -r
CREATE USER test IDENTIFIED BY 'test@ustb2020';
ALTER USER test SYSADMIN;
CREATE TABLESPACE test_ts RELATIVE LOCATION 'tablespace/test_ts1';
CREATE DATABASE testdb WITH TABLESPACE test_ts;
GRANT ALL ON DATABASE testdb TO test;
\q

执行下面的命令和SQL语句,创建用于测试JDBC的测试表:

gsql -d testdb -h 192.168.100.91 -U test -p 26000 -W test@ustb2020 -r
create table test_tbl (ID serial primary key,InsertTime timestamp);
\q

二、下载并安装JavaSE8

下载JavaSE8介质jdk-8u241-linux-x64.tar.gz,使用Linux的root用户,将其拷贝到/root/Desktop目录下,并执行如下的命令,安装JavaSE8:

1 下载JavaSE8

congOracle官网找到对应版本的JavaSE8。
在这里插入图片描述
有可能在自己的Windows电脑上复制的连接不对,原因是Oracle需要你先登陆,登陆完成后就可以复制到正确的下载链接了。
当然,这里笔者也提供了一个链接,但是具体能否使用不是很确定,不过应该问题不大。

需要注意的是,首先我们使用root用户,其次工作目录是**/root/Desktop**。

cd /root/Desktop
wget https://download.oracle.com/otn/java/jdk/8u241-b07/1f5b5a70bf22433b84d0e960903adac8/jdk-8u241-linux-x64.tar.gz?AuthParam=1733822964_e0a6be5aef084ff5e51bde5c7de09639

下载完成后可以发现自己的桌面多了一个文件压缩包:
在这里插入图片描述
给他重名一下吧,改成jdk-8u241-linux-x64.tar.gz,接下来我们就可以开始安装和环境变量的配置了。

安装Java8SE并配置环境变量

cd /root/Desktop         #该目录是介质所在目录
tar xfz jdk-8u241-linux-x64.tar.gz -C /usr
ln -s /usr/jdk1.8.0_241 /usr/jdk
cat>> /etc/profile<<EOF
export JAVA_HOME=/usr/jdk
export PATH=\$JAVA_HOME/bin:\$PATH
EOF
source /etc/profile
javac -version

成功后的情况如下:
在这里插入图片描述

三、下载并安装eclipse

eclipse是什么呀,椭圆?听起来好帅啊,所以我们还是用IDEA吧。

相信大家的Windows or MacOS电脑都会有IDEA吧,就算没有总也会有VScode吧,所以我先跳过下载eclipse了,回头直接在IDEA和VScode上展示如何使用JDBC连接数据库。

四、下载并安装openGauss的JDBC驱动包

这里需要注意的是,我们需要下载对应虚拟机上openGauss数据库版本的JDBC,所以我们首先查看一个数据库的版本,命令如下:

gs_ctl --version

笔者的版本是6.0.0

[omm@test /]$ gs_ctl --version
gs_ctl (openGauss 6.0.0 build aee4abd5) compiled at 2024-09-29 18:38:08 commit 0 last mr

从地址 https:/opengauss.org/zh/download.html下载JDBC驱动包openGauss-6.0.0-JDBC.tar.gz如下图所示。
在这里插入图片描述
同Oracle一样,我们也需要先登陆才能获得下载连接,笔者已经完成了登陆,已将自己的下载连接放在了下面的命令中,不过可能会过期,所以无效的话请读者自己登陆后自信获取自己的下载链接地址🔗。

wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/6.0.0/CentOS7/x86/openGauss-JDBC-6.0.0.tar.gz

下载成功后桌面会出现一个新的文件压缩包:
在这里插入图片描述

JDBC驱动包与PostgreSQL保持兼容,其中类名、类结构与PostgreSQL驱动完全一致,曾经运行于PostgreSQL的应用程序可以直接移植到当前系统使用。
使用Linux的root用户,执行下面的命令,将JDBC驱动包安装到Java的库路径下:

cd /root/Desktop         #该目录是介质所在目录
cp openGauss-JDBC-6.0.0.tar.gz /usr/jdk/lib
cd /usr/jdk/lib
tar xvf openGauss-JDBC-6.0.0.tar.gz
ls -l postgresql.jar

五、使用IDEA编写JDBC测试程序

但是这里笔者遇到了一个问题,就是想不到怎么将这个项目打包成一个JAR包,也许回头会想到办法再补充到这里

1 使用IDEA的SSH连接虚拟机

第一次连接需要下载IDEA的后台服务程序,将近2GB,整个过程比较简单,笔者不赘述了,下面是介绍如何SSH的位置:
在这里插入图片描述
等到一切下载完成后就可以连接虚拟机,不过我们需要使用ens34那块NAT类型的网卡,原因见实验零中的拓扑图咯。
账号是root,密码就是你root用户的密码。
在这里插入图片描述

2 创建项目并连接数据库

在这里插入图片描述
新创建的项目会像如下这样:
在这里插入图片描述
然后我们需要将提供的jdbc测试代码加入到项目中,由于java非常注重模块,所以文件目录结构必须如下图中给出的一样:
在这里插入图片描述
测试用的代码如下:

package testjdbc;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;public class testjdbc {public static void main(String[] args) {// TODO Auto-generated method stubConnection con;//驱动程序名String driver = "org.postgresql.Driver";//URL指向要访问的数据库名testdbString url = "jdbc:postgresql://192.168.100.91:26000/testdb";//openGauss用户名String user = "test";//openGauss数据库用户test的密码String password = "test@ustb2020";try {//加载驱动程序Class.forName(driver).newInstance();	       //第一步,使用getConnection()方法,连接openGauss数据库!con = DriverManager.getConnection(url,user,password);System.out.println("数据库数据成功获取!!");        if(!con.isClosed())System.out.println("Succeeded connecting to the openGauss:testdb");//第二步,创建statement类对象,用来执行SQL语句!!Statement statement = con.createStatement();//  以下的代码,用来构建要执行的SQL语句:insert语句java.util.Date date = new java.util.Date();    //创建时间对象Timestamp timeStamp = new Timestamp(date.getTime()); // 将日期时间转换为数据库中的timestamp类型// 格式化时间日期SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");while(true){//系统睡眠1秒Thread.sleep(1000);//通过当前时间来建立时间戳timeStamp = Timestamp.valueOf(LocalDateTime.now());//SQL语句编写的同时将时间格式化String sql2 = "insert into test_tbl(InsertTime) values ('"+sdf.format(timeStamp)+"');";//执行SQL语句 statement.executeUpdate(sql2);}
//          rs.close();} catch(ClassNotFoundException e) {   //数据库驱动类异常处理System.out.println("Sorry,can`t find the Driver!");   
//              e.printStackTrace();   }catch(SQLException e) {//数据库连接失败异常处理e.printStackTrace();  }catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally{System.out.println("异常退出!");}}
}

此外,我们需要导入我们从openGauss官网下载的JDBC的连接JAR包,如下图:
在这里插入图片描述
需要注意的一件事就是,我们其实需要导入的是名字为postgresql.jar的包,而不是opengauss-jdbc-6.0.0.jar包,只能说无话可说😒

导入正确的包之后,点击绿色的运行箭头就可以运行程序了,正确的运行情况如下:
在这里插入图片描述

3 JAR包的构建

暂缺

六、验证JDBC对数据库的操作

gsql -d testdb -h 192.168.100.91 -U test -p 26000 -W test@ustb2020 \-c "select * from test_tbl"

在这里插入图片描述
提供的测试代码每过1s会向数据的test_tbl表插入一个记录,如上图所示。

七、使用VScode远程编写JDBC测试程序

最终结果如下图:
在这里插入图片描述
使用过程同IDEA一致,唯一的区别是:VScode的轻量化编辑器,所以他的服务器程序安装比IDEA快的多,可配置性也高于IDEA。
大致过程如下:

1. SSH连接远程

这里有两种方法,其一是直接再vscode使用ssh连接,首先使用shift + ctrl + p打开功能区,然后输入ssh,选择Connect to Host…,然后输入要连接的虚拟机的配置即可。
在这里插入图片描述

2. 创建工程

在这里插入图片描述
后面也是右键相应的文件加选择New modules等等

3. 添加依赖包的方式

不同于IDEA的方式,VScode添加依赖包都是通过配置.vscode下的setting.json来解决的,笔者的配置文件如下:

{"java.project.sourcePaths": ["src"],"java.project.outputPath": "bin","java.project.referencedLibraries": ["lib/**/*.jar","/usr/jdk/lib/postgresql.jar"]
}

整个文件的目录如下:
在这里插入图片描述

4. 运行

打开我们的testjdbc.java的代码,右上角的运行箭头一点即可。

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

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

相关文章

Git:常用命令

一、查看当前分支 git branch 二、查看所有分支 git branch -a 三、切换到远程分支 git checkout origin/分支名 示例&#xff1a;git checkout origin/dev 四、拉取远程分支代码 git pull origin 分支名 示例&#xff1a;git pull origin dev 五、常用指令 查看暂存区…

运维实战:K8s 上的 Doris 高可用集群最佳实践

今天我们将深入探讨&#xff1a;&#xff1a;如何在 K8s 集群上部署 Compute storage coupled&#xff08;存算耦合&#xff09; 模式的 Doris 高可用集群&#xff1f; 本文&#xff0c;我将为您提供一份全面的实战指南&#xff0c;逐步引导您完成以下关键任务&#xff1a; 配…

在GITHUB上传本地文件指南(详细图文版)

这份笔记简述了如何在GITHUB上上传文件夹的详细策略。 既是对自己未来的一个参考&#xff0c;又希望能给各位读者带来帮助。 详细步骤 打开目标文件夹&#xff08;想要上传的文件夹&#xff09; 右击点击git bash打开 GitHub创立新的仓库后&#xff0c;点击右上方CODE绿色按…

Vue框架入门

Author&#xff1a;Dawn_T17?? 目录 什么是框架 一.Vue 的使用方向 二.Vue 框架的使用场景 &#xff08;TIP&#xff09;MVVM思想 三.Vue入门案例 TIP&#xff1a;插值表达式 四.Vue-指令? &#xff08;1&#xff09;v-bind 和 v-model? ? &#xff08;2&#x…

FPGA 遍历读 LMK04803 寄存器

主要思路&#xff1a; 1.使用 VIO 输出信号控制什么时候开始读LMK04803寄存器 2.遍历LMK04803所有寄存器&#xff0c;将读到的每个寄存器的值显示在VIO上。 3.遍历指的是 从 R0 开始读&#xff0c;R0读完接着读 R1&#xff0c;一直到R31 结束 4.注意的是写寄存器是 32bit &…

【uni-app 微信小程序】新版本发布提示用户进行更新

知识准备 uni.getUpdateManager文档介绍 不支持APP与H5&#xff0c;所以在使用的时候要做好平台类型的判断&#xff0c;如何判断&#xff0c;参考条件编译处理多端差异 代码参考 export const updateApp () > {const updateManager uni.getUpdateManager()updateManag…

vue实现点击左右按钮横向滚动

html部分 <div ref"tabHeaderRef" class"flex items-center tabs_header"><div class"tab-pre" v-if"hidePre" click"leftPre"><i class"el-icon-arrow-left"></i></div><div r…

数据结构(3)单链表的模拟实现

上一节我们进行了数据结构中的顺序表的模拟式现&#xff0c;今天我们来实现一下另外一个数据结构&#xff1a;单链表。 我们在实现顺序表之后一定会引发一些问题和思考&#xff1a; 1.顺序表在头部和中间插入数据会用到循环&#xff0c;时间复杂O&#xff08;N&#xff09; …

uni-app 组成和跨端原理 【跨端开发系列】

&#x1f517; uniapp 跨端开发系列文章&#xff1a;&#x1f380;&#x1f380;&#x1f380; uni-app 组成和跨端原理 【跨端开发系列】 uni-app 各端差异注意事项 【跨端开发系列】uni-app 离线本地存储方案 【跨端开发系列】uni-app UI库、框架、组件选型指南 【跨端开…

操作系统:中断与处理器调度

目录 1、中断与中断系统 中断概念&#xff1a; 中断装置&#xff1a; 中断相关概念&#xff1a; 中断优先级别与中断屏蔽 2、处理机&#xff08;CPU&#xff09;调度 调度相关参数&#xff1a;P62 调度算法&#xff1a; 处理机调度时机 处理机调度过程 3、调度级别与多…

两种距离度量简记

一、Lp距离/Minkowski 距离&#xff08;Minkowski distance&#xff09; 1、Lp距离&#xff1a; 特征空间中两个实例点的距离是两个实例点相似程度的反映。Lp距离是一种一般化的距离度量 设特征空间x是n维实数向量空间Rn xi&#xff0c;xj的Lp距离定义为&#xff08;p>1&…

从零开始的使用SpringBoot和WebSocket打造实时共享文档应用

在现代应用中&#xff0c;实时协作已经成为了非常重要的功能&#xff0c;尤其是在文档编辑、聊天系统和在线编程等场景中。通过实时共享文档&#xff0c;多个用户可以同时对同一份文档进行编辑&#xff0c;并能看到其他人的编辑内容。这种功能广泛应用于 Google Docs、Notion 等…

centos7 离线安装7z

1、下载7-Zip 下载地址&#xff1a;7-Zip - 程序下载 2、解压 mkdir 7zip --创建文件夹7zip mv 7z2301-linux-x64.tar.xz 7zip/ --移动 cd 7zip tar -xvJf 7z2301-linux-x64.tar.xz --解压 输入ll 查看解压后的文件 3、安装cp 7zzs /usr/local/bin/ 输入7zzs 查看是否安装成功…

顶会新宠!KAN-LSTM完美融合新方案

2024深度学习发论文&模型涨点之——KANLSTM KAN-LSTM混合预测模型是一种结合了自注意力机制&#xff08;KAN, Key-attention network&#xff09;和长短时记忆网络&#xff08;LSTM&#xff09;的深度学习模型&#xff0c;主要用于序列数据的预测任务&#xff0c;如时间序…

CondaError: Run ‘conda init‘ before ‘conda activate‘

rootautodl-container-543e4aa3a7-e596c47a:~# conda activate python37 CondaError: Run ‘conda init’ before ‘conda activate’ conda 激活虚拟环境的时候报错&#xff0c;提示需要进行初始化&#xff0c;但是初始化之后仍然不生效。 1、初始化 conda init2、重新加载环…

Java_实例变量和局部变量及this关键字详解

最近得看看Java,想学一学Flink实时的东西了&#xff0c;当然Scala语法也有这样的规定&#xff0c;简单看一下这两个吧&#xff0c;都比较容易忽视 实例变量和局部变量 实例变量和局部变量是常见的两种变量类型&#xff0c;区别 作用域&#xff1a; 实例变量&#xff1a;实例变…

代理模式的理解和实践

代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许你为其他对象提供一种代理以控制对这个对象的访问。代理对象在客户端和目标对象之间起到中介的作用&#xff0c;客户端通过代理对象间接地访问目标对象。通过这种方式&#xff0c;代理模式…

Autoformer: 一种基于自动相关机制的时序预测新架构

论文题目: Autoformer:Decomposition Transformers with Auto-Correlation for Long-Term Series Forecasting 论文地址&#xff1a;https://openreview.net/pdf?idI55UqU-M11y 今天给大家介绍一篇时序预测领域的重要算法——Autoformer&#xff0c;由李华等人于2020年提出&am…

2024-12月js逆向案例-sensor-data之vmp字段之akamai_2/3.0-(下)

目录 一、初始插桩二、长串的由来三、短串的由来2024-12月akamai_2.0-sensor-data之cookie反爬分析详细教程(上)2024-12月akamai_2.0-sensor-data之cookie反爬分析详细教程(中)一、初始插桩 1、其实就是研究dFT的由来,解混淆得到如下**var dFT = ‘’‘concat’‘concat’…

GAMES101:现代计算机图形学-笔记-10

今天来聊一些基本的概念&#xff1a;相机&#xff0c;棱镜与光场。 众所周知&#xff0c;成像的方法有两种&#xff1a;合成与捕获。 像我们之前所学的内容如光栅化&#xff0c;如光线追踪&#xff0c;本质上都是合成图像的方法&#xff0c;他们只是在计算机中模拟来成像。 那…