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.rhkb.cn/news/487976.html

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

相关文章

算法——前缀和

如果我们想要得到数组中一段区间的和最朴素的想法肯定是我们从区间的开始下标遍历到结束下标并累加&#xff0c;但是这显然存在一个问题&#xff0c;时间开销是O&#xff08;n&#xff09;的级别&#xff0c;并且有着大量的重复计算&#xff0c;求[n, m]的和后继续求[n…m…p]区…

可视化建模以及UML期末复习篇----UML图

这是一篇相对较长的文章&#xff0c;如你们所见&#xff0c;比较详细&#xff0c;全长两万字。我不建议你们一次性看完&#xff0c;直接跳目录找你需要的知识点即可。 --------欢迎各位来到我UML国&#xff01; 一、UML图 总共有如下几种&#xff1a; 用例图&#xff08;Use Ca…

Tableau数据可视化与仪表盘搭建

1.Tableau介绍 可视化功能 数据赋能 数据赋能就是将我们的数据看板发布到我们的线上去 这里的IP地址是业务部门可以通过账号密码登入的 我们也可以根据需要下载&#xff0c;选中并点击下载即可 下载下来之后&#xff0c;自己就能根据数据进行自定义的分析 也可以下载图片 还有…

NanoLog起步笔记-7-log解压过程初探

nonolog起步笔记-6-log解压过程初探 再看解压过程建立调试工程修改makefile添加新的launch项 注&#xff1a;重新学习nanolog的README.mdPost-Execution Log Decompressor 下面我们尝试了解&#xff0c;解压的过程&#xff0c;是如何得到文件头部的meta信息的。 再看解压过程 …

设计模式-装饰器模式(结构型)与责任链模式(行为型)对比,以及链式设计

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言1.装饰器模式1.1概念1.2作用1.3应用场景1.4特点1.5类与对象关系1.6实现 2责任链模式2.1概念2.2作用2.3应用场景2.4特点2.5类与对象关系2.6实现 3.对比总结 前言…

llama-factory实战: 基于qwen2.5-7b 手把手实战 自定义数据集清洗 微调

基于qwen2.5 手把手实战 自定义数据集 微调&#xff08;llama-factory&#xff09; 准备工作1.数据集准备&#xff08;例:民法典.txt&#xff09;2.服务器准备&#xff08;阿里云 DSW 白嫖&#xff09;3.环境配置pip 升级模型下载微调助手 4.数据集处理脚本文件4.1文本分割(ber…

day08 接口测试(4)知识点完结!!

【没有所谓的运气&#x1f36c;&#xff0c;只有绝对的努力✊】 目录 1、postman读取外部数据文件&#xff08;参数化&#xff09; 1.1 数据文件简介 1.2 导入外部数据文件 1.2.1 csv文件 1.2.2 导入 json文件 1.3 读取数据文件数据 1.4 案例 1.5 生成测试报告 2、小…

基于Springboot的实验室管理系统【附源码】

基于Springboot的实验室管理系统 效果如下&#xff1a; 系统登录页面 实验室信息页面 维修记录页面 轮播图管理页面 公告信息管理页面 知识库页面 实验课程页面 实验室预约页面 研究背景 在科研、教育等领域&#xff0c;实验室是进行实验教学和科学研究的重要场所。随着实验…

selenium学习:等待方式

隐式等待 1.针对查找元素设置最大的超时时间 2.可以全局性的设置 3.不满足时&#xff0c;提示no such element driver.implicitly_wait(5) #对查找元素最大的超时时间&#xff0c;如果超过最大等待时间后&#xff0c;没有找到元素&#xff0c;则会报错&#xff1a;no such #e…

计算生成报价单小程序系统开发方案

计算生成报价单小程序报价系统&#xff0c;是根据商品品牌、类型、型号、规格、芯数、特性、颜色、分类进行选择不同的参数进行生成报价单&#xff0c;要求报价单支持生成图片、pdf、excel表格。 计算生成报价单小程序系统的主要功能模块有&#xff1a; 1、在线生成报价单&…

constexpr、const和 #define 的比较

constexpr、const 和 #define 的比较 一、定义常量 constexpr 定义&#xff1a;constexpr用于定义在编译期可求值的常量表达式。示例&#xff1a;constexpr int x 5;这里&#xff0c;x的值在编译期就确定为5。 const 定义&#xff1a;const表示变量在运行期间不能被修改&…

Spring Boot 整合 Druid 并开启监控

文章目录 1. 引言2. 添加依赖3. 配置数据源4. 开启监控功能5. 自定义 Druid 配置&#xff08;可选&#xff09;6. 访问监控页面7. 注意事项8. 总结 Druid 是一个由阿里巴巴开源的高性能数据库连接池&#xff0c;它不仅提供了高效的连接管理功能&#xff0c;还自带了强大的监控和…

Abaqus断层扫描三维重建插件CT2Model 3D V1.1版本更新

更新说明 Abaqus AbyssFish CT2Model3D V1.1版本更新新增对TIF、TIFF图像文件格式的支持。本插件用户可免费获取升级服务。 插件介绍 插件说明&#xff1a; Abaqus基于CT断层扫描的三维重建插件CT2Model 3D 应用案例&#xff1a; ABAQUS基于CT断层扫描的细观混凝土三维重建…

word poi-tl 表格功能增强,实现表格功能垂直合并

目录 问题解决问题poi-tl介绍 功能实现引入依赖模版代码效果图 附加&#xff08;插件实现&#xff09;MergeColumnData 对象MergeGroupData 类ServerMergeTableData 数据信息ServerMergeTablePolicy 合并插件 问题 由于在开发功能需求中&#xff0c;word文档需要垂直合并表格&…

【OpenCV】平滑图像

二维卷积(图像滤波) 与一维信号一样&#xff0c;图像也可以通过各种低通滤波器&#xff08;LPF&#xff09;、高通滤波器&#xff08;HPF&#xff09;等进行过滤。LPF 有助于消除噪音、模糊图像等。HPF 滤波器有助于在图像中找到边缘。 opencv 提供了函数 **cv.filter2D()**&…

Vulhub:Log4j[漏洞复现]

CVE-2017-5645(Log4j反序列化) 启动靶场环境 docker-compose up -d 靶机IPV4地址 ifconfig | grep eth0 -A 5 ┌──(root㉿kali)-[/home/kali/Desktop/temp] └─# ifconfig | grep eth0 -A 5 eth0: flags4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 in…

Flume基础概念

目录 作用组件构成ClientFlowAgentSourceSinkEvent 和Log4j的区别与定位事务传出流程输入到sourcesource端输入Channel 接收输入到SinkSink输出 作用 Flume可以从各种来源&#xff08;如日志文件、消息队列、网络数据、文件系统、数据库等&#xff09;收集数据&#xff0c;并将…

分布式搜索引擎之elasticsearch基本使用2

分布式搜索引擎之elasticsearch基本使用2 在分布式搜索引擎之elasticsearch基本使用1中&#xff0c;我们已经导入了大量数据到elasticsearch中&#xff0c;实现了elasticsearch的数据存储功能。但elasticsearch最擅长的还是搜索和数据分析。 所以j接下来&#xff0c;我们研究下…

Spring IOCAOP

Spring介绍 个人博客原地址 Spring是一个IOC&#xff08;DI&#xff09;和AOP框架 Sprng的优良特性 非侵入式&#xff1a;基于Spring开发的应用中的对象可以不依赖于Spring的API 依赖注入&#xff1a;DI是控制反转&#xff08;IOC&#xff09;最经典的实现 面向切面编程&am…

如何高效的向AI大模型提问? - 提示工程Prompt Engineering

大模型的输入&#xff0c;决定了大模型的输出&#xff0c;所以一个符合要求的提问Prompt起到关键作用。 以下是关于提示工程Prompt Engineering主要方法的详细表格&#xff0c;包括每种方法的优点、缺点、应用场景以及具体示例&#xff1a; 主要方法优点缺点应用场景示例明确性…