使用JDBC连接数据库

文章目录

  • 使用JDBC连接数据库
    • 一、准备连接环境
      • 1.修改数据库的pg_hba.conf文件
      • 2.登陆数据库授权退出
      • 3.修改数据库监听地址
      • 4.下载Java驱动包导入工具
      • 5.创建测试数据库demo
      • 6.创建schema
      • 7.创建测试表websites
      • 8.插入数据
      • 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地址可以查看安装时的配置文件:<PARAM name="dataNode1" value="/gaussdb/data/db1"/>

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!

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

  1. 【数据库原理实验(openGauss)】金融场景化实验

    金融场景化实验 文章目录 金融场景化实验 一.金融数据模型 1.E-R图 2.关系模式 3.物理模型 Client(客户)表 bank_card(银行卡)表 finances_product(理财产品 ...

  2. 【数据库原理实验(openGauss)】实验报告

    <数据库系统原理实验>报告 文章目录 <数据库系统原理实验>报告 一.实验课程性质和教学目标 二.实验课程教学基本要求 三.实验教学内容 实验一 认识DBMS系统 (一)实验目 ...

  3. 【数据库原理实验(openGauss)】交互式SQL语句

    交互式SQL语句 文章目录 交互式SQL语句 一.数据准备 (1)向Departments中写入数据 (2)向Teachers中写入数据 (3)向Students中写入数据 (4)向Courses中写 ...

  4. 【数据库原理实验(openGauss)】数据库的备份与恢复

    数据库的备份与恢复 文章目录 数据库的备份与恢复 一.物理备份和恢复 实验准备: (1)物理备份 (2)物理备份恢复 二.逻辑备份和恢复 实验准备: (1)gs_dump备份 1.gs_dump备份示 ...

  5. 【数据库原理实验(openGauss)】认识DBMS系统

    认识DBMS系统(openGauss) 文章目录 认识DBMS系统(openGauss) 一.openGauss安装目录 (1)集群openGauss安装目录 (2)集群openGauss数据目录 ( ...

  6. 【数据库原理实验(openGauss)】事务与并发控制

    事务与并发控制 文章目录 事务与并发控制 一.事务 (1)事务的ACID特性 (2)事务管理 (3)事务实例 1.未提交的事务 2.已提交的事务 二.并发控制 (1)加锁语法 (2)加锁实例 一.事务 ...

  7. 【数据库原理实验(openGauss)】视图

    视图 文章目录 视图 一.创建视图 二.基于视图的查询 三.基于视图的更新 四.删除视图 五.对视图的理解 一.创建视图 CREATE VIEW CS_Students AS SELECT Sno, ...

  8. 【数据库原理实验(openGauss)】 安全性控制

    安全性控制 文章目录 安全性控制 一.用户及角色 (1)用户 (2)角色 二.权限设置及回收 1.将系统权限授权给用户或者角色 2.将数据库对象授权给角色或用户 3.将用户或者角色的权限授权给其他用户 ...

  9. 【数据库原理实验(openGauss)】创建数据库、表和索引

    创建数据库.表和索引 文章目录 创建数据库.表和索引 一.创建数据库 二.创建与删除模式 三.创建与修改表 (1)创建表 (2)修改表 四.创建与删除索引 (1)创建索引 (2)删除索引 一.创建数据 ...

最新文章

  1. 对话找钢网创始人王东:电竞少年凭什么革了钢贸行业的命?
  2. RxJava2 源码解析(一)
  3. 从运维的角度理解Iaas、Paas、Saas云计算
  4. redis服务器防止入侵,加ip,密码限制
  5. python字母大小写排序_Python中sorted()排序与字母大小写的问题
  6. Ubuntu 14.04 或者16.04开启root账户登录和图形界面登录root时候的报错解决方法
  7. 为什么别人学python比你快?那是因为你没掌握这几点,多注意哦~
  8. git pull keeping local changes
  9. 一体机硬盘被格式化了的资料恢复法子
  10. 不那么SQL的SQL代码(一)if not exists(...) insert
  11. 微软 smtp 服务器,配置 SMTP 服务器
  12. 微信小程序——案例:收货信息表单
  13. python实现isprime函数_Python语言的isPrime函数
  14. Python 【趣头条】短视频的自动上传与发布实例演示,同时支持抖音、快手、哔哩哔哩、小红书、微视、西瓜视频、微信视频号等平台的视频自动化同步发布
  15. openwrt 软件安装依赖冲突
  16. 看院线电影就用移动电影院V2.0App
  17. Volumes 数据卷管理
  18. java元数据的概念_元数据 概念及分类
  19. Mentor_丝印检查——手工绘制丝印线条(标注)到丝印位号距离的检查
  20. dumpbin是什么意思_Boost 连接库的命名含义

热门文章

  1. mysql之desc 与asc
  2. C#之获取网卡IP地址
  3. 如何搭建MySQL数据库,常用的数据库命令
  4. svn回退到上一个版本_Git汇总--对象及版本库存储
  5. springmvc04跳转
  6. Linux下静态库.a与.so库文件的生成与使用
  7. python测试代码运行时间_在Python中准确地测量代码执行时间
  8. 小甲鱼python课后题简书_MOOC_Python语言程序设计(嵩天)课后练习_第二周
  9. 如何远程linux服务器桌面,LINUX操作系统如何远程登录桌面
  10. c语言.h和.c连接错误,conio.h链接错误问题