【数据库原理实验(openGauss)】 使用JDBC连接数据库
使用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连接数据库相关推荐
- 【数据库原理实验(openGauss)】金融场景化实验
金融场景化实验 文章目录 金融场景化实验 一.金融数据模型 1.E-R图 2.关系模式 3.物理模型 Client(客户)表 bank_card(银行卡)表 finances_product(理财产品 ...
- 【数据库原理实验(openGauss)】实验报告
<数据库系统原理实验>报告 文章目录 <数据库系统原理实验>报告 一.实验课程性质和教学目标 二.实验课程教学基本要求 三.实验教学内容 实验一 认识DBMS系统 (一)实验目 ...
- 【数据库原理实验(openGauss)】交互式SQL语句
交互式SQL语句 文章目录 交互式SQL语句 一.数据准备 (1)向Departments中写入数据 (2)向Teachers中写入数据 (3)向Students中写入数据 (4)向Courses中写 ...
- 【数据库原理实验(openGauss)】数据库的备份与恢复
数据库的备份与恢复 文章目录 数据库的备份与恢复 一.物理备份和恢复 实验准备: (1)物理备份 (2)物理备份恢复 二.逻辑备份和恢复 实验准备: (1)gs_dump备份 1.gs_dump备份示 ...
- 【数据库原理实验(openGauss)】认识DBMS系统
认识DBMS系统(openGauss) 文章目录 认识DBMS系统(openGauss) 一.openGauss安装目录 (1)集群openGauss安装目录 (2)集群openGauss数据目录 ( ...
- 【数据库原理实验(openGauss)】事务与并发控制
事务与并发控制 文章目录 事务与并发控制 一.事务 (1)事务的ACID特性 (2)事务管理 (3)事务实例 1.未提交的事务 2.已提交的事务 二.并发控制 (1)加锁语法 (2)加锁实例 一.事务 ...
- 【数据库原理实验(openGauss)】视图
视图 文章目录 视图 一.创建视图 二.基于视图的查询 三.基于视图的更新 四.删除视图 五.对视图的理解 一.创建视图 CREATE VIEW CS_Students AS SELECT Sno, ...
- 【数据库原理实验(openGauss)】 安全性控制
安全性控制 文章目录 安全性控制 一.用户及角色 (1)用户 (2)角色 二.权限设置及回收 1.将系统权限授权给用户或者角色 2.将数据库对象授权给角色或用户 3.将用户或者角色的权限授权给其他用户 ...
- 【数据库原理实验(openGauss)】创建数据库、表和索引
创建数据库.表和索引 文章目录 创建数据库.表和索引 一.创建数据库 二.创建与删除模式 三.创建与修改表 (1)创建表 (2)修改表 四.创建与删除索引 (1)创建索引 (2)删除索引 一.创建数据 ...
最新文章
- 对话找钢网创始人王东:电竞少年凭什么革了钢贸行业的命?
- RxJava2 源码解析(一)
- 从运维的角度理解Iaas、Paas、Saas云计算
- redis服务器防止入侵,加ip,密码限制
- python字母大小写排序_Python中sorted()排序与字母大小写的问题
- Ubuntu 14.04 或者16.04开启root账户登录和图形界面登录root时候的报错解决方法
- 为什么别人学python比你快?那是因为你没掌握这几点,多注意哦~
- git pull keeping local changes
- 一体机硬盘被格式化了的资料恢复法子
- 不那么SQL的SQL代码(一)if not exists(...) insert
- 微软 smtp 服务器,配置 SMTP 服务器
- 微信小程序——案例:收货信息表单
- python实现isprime函数_Python语言的isPrime函数
- Python 【趣头条】短视频的自动上传与发布实例演示,同时支持抖音、快手、哔哩哔哩、小红书、微视、西瓜视频、微信视频号等平台的视频自动化同步发布
- openwrt 软件安装依赖冲突
- 看院线电影就用移动电影院V2.0App
- Volumes 数据卷管理
- java元数据的概念_元数据 概念及分类
- Mentor_丝印检查——手工绘制丝印线条(标注)到丝印位号距离的检查
- dumpbin是什么意思_Boost 连接库的命名含义
热门文章
- mysql之desc 与asc
- C#之获取网卡IP地址
- 如何搭建MySQL数据库,常用的数据库命令
- svn回退到上一个版本_Git汇总--对象及版本库存储
- springmvc04跳转
- Linux下静态库.a与.so库文件的生成与使用
- python测试代码运行时间_在Python中准确地测量代码执行时间
- 小甲鱼python课后题简书_MOOC_Python语言程序设计(嵩天)课后练习_第二周
- 如何远程linux服务器桌面,LINUX操作系统如何远程登录桌面
- c语言.h和.c连接错误,conio.h链接错误问题