【数据库原理实验(openGauss)】 使用JDBC连接数据库 您所在的位置:网站首页 gaussdbT连接 【数据库原理实验(openGauss)】 使用JDBC连接数据库

【数据库原理实验(openGauss)】 使用JDBC连接数据库

2024-06-27 05:26| 来源: 网络整理| 查看: 265

使用JDBC连接数据库

文章目录 使用JDBC连接数据库一、准备连接环境1.修改数据库的pg_hba.conf文件2.登陆数据库授权退出3.修改数据库监听地址4.下载Java驱动包导入工具5.创建测试数据库demo6.创建schema7.创建测试表websites8.插入数据9.退出数据库 二、确定26000端口是否放开三、下载并安装JDK四、配置JDK环境变量五、连接openGauss并执行java代码(1)使用Java程序连接数据库并进行查询(2)编译后执行(3)执行结果

一、准备连接环境 1.修改数据库的pg_hba.conf文件

在GS_HOME中查找pg_hba.conf文件,本实验中数据库GS_HOME设置的为/gaussdb/data/db1,实际操作中GS_HOME地址可以查看安装时的配置文件:。

cd /gaussdb/data/db1 vi pg_hba.conf

输入“:90”找到对应位置,然后输入“i”切换到INSERT模式,将以下内容添加进pg_hba.conf文件,添加后按下“ECS”键,退出INSERT模式,输入“:wq”后回车保存。

# IPv4 local connections: host all all 127.0.0.1/32 trust host all all 192.168.0.19/32 trust host all all 0.0.0.0/0 sha256 # IPv6 local connections: host all all ::1/128 trust

使用omm用户登陆,使用gs_ctl将策略生效

su - omm gs_ctl reload -D /gaussdb/data/db1/ 2.登陆数据库授权退出

使用omm用户登陆数据库给dbuser用户授权,并退出数据库

gsql -d postgres -p 26000 -r alter role dbuser createrole createdb; \q 3.修改数据库监听地址

在GS_HOME中,本实验中数据库GS_HOME设置的为/gaussdb/data/db1

cd /gaussdb/data/db1 vi postgresql.conf

输入“:60”找到对应位置,然后输入“i”切换到INSERT模式,将listen_addresses的值修改成为*,修改后按下“ECS”键,退出INSERT模式,输入“:wq”后回车保存。

#listen_addresses = '192.168.0.19' # what IP address(es) to listen on; listen_addresses = '*'

修改完成后重启数据库生效(-D后面的数据库默认路径,需要根据实际情况进行修改)

gs_ctl restart -D /gaussdb/data/db1/ 4.下载Java驱动包导入工具

下载Java连接openGauss的驱动包,并将其导入对应的使用工具

通过以下链接,下载驱动包 https://opengauss.obs.cn-south-1.myhuaweicloud.com/1.1.0/arm/openGauss-1.1.0-JDBC.tar.gz

假设文件存放在d:\Download目录下,并进行解压,解压后文件为“postgresql.jar”。

5.创建测试数据库demo

使用gsql工具登陆数据库,并输入dbuser密码(如:Gauss#3demo)

gsql -d postgres -p 26000 -U dbuser -r

创建数据库demo

create database demo ENCODING 'UTF8' template = template0;

切换到demo数据库,并输入dbuser密码(如:Gauss#3demo)。

\connect demo; 6.创建schema

创建名为demo的schema,并设置demo为当前的schema。

CREATE SCHEMA demo;

将默认搜索路径设为demo。

SET search_path TO demo; 7.创建测试表websites CREATE TABLE websites ( id int NOT NULL, name char(20) NOT NULL DEFAULT '', url varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (id) ); COMMENT ON COLUMN websites.name IS '站点名称'; 8.插入数据 INSERT INTO websites VALUES ('1', 'openGauss', 'https://opengauss.org/zh/'), ('2', '华为云', 'https://www.huaweicloud.com/'), ('3', 'openEuler', 'https://openeuler.org/zh/'), ('4', '华为support中心', 'https://support.huaweicloud.com/'); 9.退出数据库 \q 二、确定26000端口是否放开

打开华为云首页,登录后进入“控制台”,点击“弹性云服务器ECS”进入ECS列表

在这里插入图片描述 在这里插入图片描述

在云服务器控制台找到安装数据库主机的ECS,点击查看基本信息,找到安全组

在这里插入图片描述

在这里插入图片描述

点击进入安全组,选择“入方向规则”并“添加规则”,进行26000端口设置

在这里插入图片描述 在这里插入图片描述

确定后,可以看到入网规则多了“TCP:26000”,如下图:

在这里插入图片描述

三、下载并安装JDK

下载JDK https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

在这里插入图片描述

点击jdk-8u261-windows-x64.exe进行安装 默认设置即可,出现安装进度 在这里插入图片描述 如下显示表示安装成功: 在这里插入图片描述

查看安装目录 在这里插入图片描述

四、配置JDK环境变量

右击“此电脑”选择“属性”,点击“高级系统设置” 在这里插入图片描述 在这里插入图片描述

点击“环境变量”,新建系统变量“JAVA_HOME”,输入JDK安装目录

在这里插入图片描述

在这里插入图片描述 “C:\Program Files\Java\jdk1.8.0_261”为JDK安装目录。

编辑系统变量“path” 在这里插入图片描述 在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)。

新建系统变量“CLASSPATH”变量,输入“.” 即可 在这里插入图片描述

系统变量配置完毕,查询检验是否配置成功,运行cmd 输入java -version(java和 -version之间有空格)。

java -version

显示版本信息,则说明安装和配置成功

五、连接openGauss并执行java代码 (1)使用Java程序连接数据库并进行查询

步骤 1使用Java程序连接数据库并进行查询(注:请用户根据实际情况替换红字内容,修改jdbc:postgresql://弹性公网IP:26000/demo中弹性公网IP信息,USER = "dbuser"连接数据库的用户及密码PASS = “Gauss#3demo”)。

在d:\Download\中创建openGaussDemo.java文件,文件内容如下,注意红字部分要按照实际情况进行替换:

import java.sql.*; public class openGaussDemo { static final String JDBC_DRIVER = "org.postgresql.Driver"; static final String DB_URL = "jdbc:postgresql://弹性公网IP:26000/demo?ApplicationName=app1"; // 数据库的用户名与密码,需要根据自己的设置 static final String USER = "dbuser"; static final String PASS = "Gauss#3demo"; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try{ // 注册 JDBC 驱动 Class.forName(JDBC_DRIVER); // 打开链接 System.out.println("连接数据库..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); // 执行查询 System.out.println(" 实例化Statement对象..."); stmt = conn.createStatement(); String sql; sql = "SELECT id, name, url FROM demo.websites"; ResultSet rs = stmt.executeQuery(sql); // 展开结果集数据库 while(rs.next()){ // 通过字段检索 int id = rs.getInt("id"); String name = rs.getString("name"); String url = rs.getString("url"); // 输出数据 System.out.print("ID: " + id); System.out.print(", 站点名称: " + name); System.out.print(", 站点 URL: " + url); System.out.print("\n"); } // 完成后关闭 rs.close(); stmt.close(); conn.close(); }catch(SQLException se){ // 处理 JDBC 错误 se.printStackTrace(); }catch(Exception e){ // 处理 Class.forName 错误 e.printStackTrace(); }finally{ // 关闭资源 try{ if(stmt!=null) stmt.close(); }catch(SQLException se2){ }// 什么都不做 try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); } } System.out.println("Goodbye!"); } } (2)编译后执行

在安装Java的本机,打开cmd对Java程序编译后执行 在cmd中,进入d:\Download\目录,先对Java程序进行编译(进入Java程序的目录)

javac -encoding utf-8 -cp d:\Download\postgresql.jar openGaussDemo.java java -cp .;D:/Download/postgresql.jar openGaussDemo (3)执行结果 连接数据库... 实例化Statement对象... ID: 1, 站点名称: openGauss, 站点 URL: https://opengauss.org/zh/ ID: 2, 站点名称: 华为云, 站点 URL: https://www.huaweicloud.com/ ID: 3, 站点名称: openEuler, 站点 URL: https://openeuler.org/zh/ ID: 4, 站点名称: 华为support中心, 站点 URL: https://support.huaweicloud.com/ Goodbye!


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有