大数据学习
bigdata learning
Toggle navigation
大数据学习
主页
openGauss数据库
Flume
MongoDB
Hadoop
数据库实验
Kafka
Zookeeper
Hbase
Manual
Spark
Neo4j
InfluxDB
RabbitMQ
Flink
About Me
归档
标签
05 openGauss使用JDBC连接数据库指导手册
openGauss数据库
2022-10-15 14:23:10
119
0
0
bigdata
openGauss数据库
# **1 openGauss使用JDBC连接数据库** ## 1.1 新用户的创建 切换到omm用户,以操作系统用户omm登录数据库主节点。 > **su - omm** 启动服务: > **gs_om -t start** 使用gsql工具登陆数据库: > **gsql -d postgres -p 26000 -r** 连接数据库后,进入SQL命令界面。创建用户dbuser,密码为Gauss#3demo。 > **CREATE USER dbuser IDENTIFIED BY 'Gauss#3demo';** 退出数据库: > postgres=#**\q** ## 1.2 使用JDBC连接数据库 ### 1.2.1 准备连接环境 **步骤 1** 修改数据库的pg_hba.conf文件。 在GS_HOME中查找pg_hba.conf文件,本实验中数据库GS_HOME设置的为/gaussdb/data/db1,实际操作中GS_HOME地址可以查看安装时的配置文件(openGauss软件的安装目录/opt/software/openGauss下的clusterconfig.xml,可参见:“在虚拟机+CentOS上安装部署openGauss数据库指导手册”):<PARAM name="dataNode1" value="**/gaussdb/data/db1**"/>。 > **cd /gaussdb/data/db1** > **vi pg_hba.conf** 将以下内容添加进pg_hba.conf文件:输入”i”切换到编辑模式,复制内容黏贴到文档中,然后按下ECS键退出编辑模式,然后输入”:wq”退出并进行保存。 > **host all all 0.0.0.0/0 sha256** 使用omm用户登陆,使用gs_ctl将策略生效。 > **su - omm** > > **gs_ctl reload -D /gaussdb/data/db1/** 返回结果为: > [2020-07-23 15:39:55.398][71828][][gs_ctl]: gs_ctl reload ,datadir is -D "/gaussdb/data/db1" > > server signaled **步骤 2** 使用omm用户登陆数据库给dbuser用户授权,并退出数据库。 > **gsql -d postgres -p 26000 -r** > > > > postgres=# **alter role dbuser createrole createdb;** > > ALTER ROLE > postgres=# **\q** **步骤 3** 修改数据库监听地址。 在GS_HOME中,本实验中数据库GS_HOME设置的为/gaussdb/data/db1。 > **cd /gaussdb/data/db1** > > *vi postgresql.conf** 将listen_addresses的值修改成为*:输入”i”切换到编辑模式,将listen_addresses的值修改成为*,然后按下ECS键退出编辑模式,然后输入”:wq”退出并进行保存。 > **listen_addresses = '\*'** 修改完成后重启数据库生效(-D后面的数据库默认路径,需要根据实际情况进行修改)。 > **gs_ctl restart -D /gaussdb/data/db1/** **步骤 4** 下载Java连接openGauss的驱动包,并将其导入对应的使用工具。 通过链接,[下载驱动包](https://opengauss.obs.cn-south-1.myhuaweicloud.com/1.0.0/arm/openGauss-1.0.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;** > > **\connect demo;** **步骤 6** 创建名为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** ### 1.2.2 确定26000端口是否放开(若不是在华为云做,不需要1.2.2步骤) **步骤 1** 打开华为云首页,登录后进入“控制台”,点击“弹性云服务器ECS”进入ECS列表。   **步骤 2** 在云服务器控制台找到安装数据库主机的ECS,点击查看基本信息,找到安全组。   **步骤 3** 点击进入安全组,选择“入方向规则”并“添加规则”,进行26000端口设置。   确定后,可以看到入网规则多了“TCP:26000”,如下图:  ### 1.2.3 下载并安装JDK **步骤 1** [下载JDK](https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html)。   **步骤 2** 点击jdk-8u261-windows-x64.exe进行安装。 默认设置即可,出现安装进度。  如下显示表示安装成功:  **步骤 3** 查看安装目录。  ### 1.2.4 配置JDK环境变量 **步骤 1** 右击“此电脑”选择“属性”,点击“高级系统设置”。   **步骤 2** 点击**“环境变量”**,新建(或编辑)系统变量“JAVA_HOME”,输入JDK安装目录。   “C:\Program Files\Java\jdk1.8.0_261”为JDK安装目录。 **步骤 3** 编辑系统变量“path”。  在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;**(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)。** **步骤 4** 新建系统变量“CLASSPATH”变量,输入“.” 即可。  **步骤 5** 系统变量配置完毕,查询检验是否配置成功,运行cmd 输入java -version(java和 -version之间有空格)。 > C:\Users\xxxxx>**java -version** 如下所示,显示版本信息,则说明安装和配置成功。 > java version "1.8.0_261" > > Java(TM) SE Runtime Environment (build 1.8.0_261-b12) > > Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode) ### 1.2.5 连接openGauss并执行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"; > > // 数据库的用户名与密码,需要根据自己的设置 > > 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程序的目录)。 > **C:\Users\username >****D:** > > **D:\>****cd download** > > **D:\Download>** **javac -encoding utf-8 -cp d:\Download\postgresql.jar openGaussDemo.java** 再执行以下命令。 > **D:\Download>** **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! ## 1.3 实验小结 本实验通过使用JDBC连接openGauss数据库,实现在java应用程序中访问和使用openGauss数据库。 # **2** 附录一:openGauss数据库基本操作 ## 2.1 查看数据库对象 * 查看帮助信息: > postgres=# \? * 切换数据库: > *postgres*=# \c dbname * 列举数据库: 使用\l元命令查看数据库系统的数据库列表。 > postgres=# \l 使用如下命令通过系统表pg_database查询数据库列表。 > *postgres*=# SELECT datname FROM pg_database; * 列举表: > postgres=# \dt * 列举所有表、视图和索引: > postgres=# \d+ * 使用gsql的\d+命令查询表的属性。 > *postgres*=# \d+ tablename * 查看表结构: > *postgres*=# \d tablename * 列举schema: > postgres=# \dn * 查看索引: > postgres=# \di * 查询表空间: 使用gsql程序的元命令查询表空间。 > postgres=# \db 检查pg_tablespace系统表。如下命令可查到系统和用户定义的全部表空间。 > *postgres*=# SELECT spcname FROM pg_tablespace; * 查看数据库用户列表: > *postgres*=# SELECT * FROM pg_user; * 要查看用户属性: > *postgres*=# SELECT * FROM pg_authid; * 查看所有角色: > *postgres*=# SELECT * FROM PG_ROLES; ## 2.2 其他操作 * 查看openGauss支持的所有SQL语句。 > postgres=#\h * 切换数据库: > *postgres*=# \c dbname * 切换用户: > *postgres*=# \c – username * 退出数据库: > postgres=# \q
上一篇:
04-Zookeeper-Java客户端搭建
下一篇:
05-Flume案例-实时监控目录下的多个追加文件
文档导航