openGauss开源数据库实战二十一

文章目录

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

任务目标

初步学握JDBC的编程方法。

实施步骤

一、准备工作

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

sql 复制代码
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的测试表:

sql 复制代码
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**。

bash 复制代码
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并配置环境变量

bash 复制代码
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,所以我们首先查看一个数据库的版本,命令如下:

bash 复制代码
gs_ctl --version

笔者的版本是6.0.0

bash 复制代码
[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一样,我们也需要先登陆才能获得下载连接,笔者已经完成了登陆,已将自己的下载连接放在了下面的命令中,不过可能会过期,所以无效的话请读者自己登陆后自信获取自己的下载链接地址🔗。

bash 复制代码
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的库路径下:

sql 复制代码
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非常注重模块,所以文件目录结构必须如下图中给出的一样:

测试用的代码如下:

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 stub

	    Connection con;
	    //驱动程序名
	    String driver = "org.postgresql.Driver";
	    //URL指向要访问的数据库名testdb
	    String 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 exception
              e.printStackTrace();
             }
        finally{
              System.out.println("异常退出!");
             }
      }
}

此外,我们需要导入我们从openGauss官网下载的JDBC的连接JAR包,如下图:

需要注意的一件事就是,我们其实需要导入的是名字为postgresql.jar的包,而不是opengauss-jdbc-6.0.0.jar包,只能说无话可说😒

导入正确的包之后,点击绿色的运行箭头就可以运行程序了,正确的运行情况如下:

3 JAR包的构建

暂缺

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

sql 复制代码
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来解决的,笔者的配置文件如下:

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

整个文件的目录如下:

4. 运行

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

相关推荐
围观岳老师5 分钟前
JAVA根据Word模板生成word文件
java·开发语言·word
HiWorldNice12 分钟前
如何在Centos7中设置tomcat开机自启动
java·centos·tomcat
是十一月末12 分钟前
Linux的基本功能和命令
linux·服务器·开发语言·数据库
model200517 分钟前
CentOS7 Apache安装踩坑
centos·apache
MavenTalk17 分钟前
Spring Cloud Alibaba:一站式微服务解决方案
java·数据库·spring boot·spring cloud·微服务·netflix
荼蘼_30 分钟前
宝塔内设置redis后,项目以及RedisDesktopManager客户端连接不上!
数据库·redis·缓存
HUWD37 分钟前
Java 实现给pdf文件指定位置盖章功能
java·pdf
cwtlw42 分钟前
如何创建maven工程
java·笔记·后端·学习·maven
打码人的日常分享42 分钟前
【网络安全资料文档】网络安全空间态势感知系统建设方案,网络安全数据采集建设方案(word原件)
数据库·安全·web安全·需求分析·规格说明书
路在脚下@43 分钟前
Spring Boot中使用YAML配置文件
java·spring boot