当前位置: 首页 > news >正文

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.mrgr.cn/news/79803.html

相关文章:

  • 【考前预习】1.计算机网络概述
  • QTreeView 与 QTreeWidget 例子
  • MySQL中有几种锁
  • C++ webrtc开发(非原生开发,linux上使用libdatachannel库)
  • Swing1.计算器案例
  • 【SpringBoot】Day12-09 Filter
  • UnityShaderLab-实现溶解效果
  • MVC基础——市场管理系统(三)Clean Architecture
  • Python 处理多人多笔医保缴费异常退回业务
  • nginx 部署 ModSecurity3
  • Elasticsearch:使用阿里 infererence API 及 semantic text 进行向量搜索
  • 自然语言处理的未来愿景
  • python基础:(七)类
  • 基础暴力算法
  • C语言(指针练习)
  • MongoDB-ObjectID 生成器
  • python基础:(八)文件
  • 【html css选择器 五种方法,一篇看会】
  • R语言的数据结构-矩阵
  • Vmware workstation17.6虚拟机安装Ubuntu20.04 详细 完美 操作教程(图文并茂)
  • Scala的trait
  • 【SH】微信小程序调用EasyDL零门槛AI开发平台的图像分类研发笔记
  • Scala的隐式转换
  • 服务器---centos上前端从0到1配置项目部署
  • 优秀前端文章笔记----持续更新
  • Hash、HASHTABLE底层原理【Redis对象篇】