体验GaussDB数据库应用程序JDBC接口实验【华为云GaussDB:与数据库同行的日子】
实验背景
GaussDB作为华为自主研发的一款企业级分布式关系型数据库,具备PB级海量数据存储能力和企业级高可靠能力,也是国内首款纯软全密态数据库,支持国密算法、透明加密,并提供国内首个双集群强一致方案。
这么优秀的一款数据库服务,了解并熟悉如何使用其常用接口及基本配置操作就显得尤为重要了。
而用于连接数据库的接口,JDBC、ODBC和Psycopg就是其中最为常见的3种。本文用于体验GaussDB其中的一种:JDBC接口,并能够掌握使用程序通过支持的接口访问数据库。
JDBC接口
JDBC,全称是Java Database Connectivity,是一种用于执行SQL语句的Java API。它可以为PostgreSQL、openGauss、GaussDB等数据库提供统一访问接口,应用程序可以基于它进行数据操作。
JDBC的优势是可以跨平台使用,支持多种数据源,兼容性好,易于开发和维护。
介绍完JDBC接口,接下来就是本文重点:体验GaussDB数据库应用程序JDBC接口实验了。
准备环境
开始实验之前,在实验页面点击手册上方“预置实验环境”按钮(预置实验环境会花费几分钟,成功后将会创建本实验所需的云资源):
进入【实验操作桌面】,打开Chrome浏览器,选择“IAM 用户登录”,并在对话框中输入系统分配的华为云实验账号和密码进行登录:
实验配置
购买GaussDB实例
点击左侧的【服务列表】,选择其中【数据库】下的【云数据库GaussDB】:
进入云数据库GaussDB,点击页面右上角的【购买数据库实例】按钮;进入购买页后,根据实验推荐参数信息购买数据库:
点击购买,之后需要确认信息,确认无误之后,点击提交:
GaussDB数据库创建大概需要花费20分钟左右,当运行状态处于【正常】,表示数据库已创建完成。
登录DAS,点击新建数据库
登录DAS数据管理服务,进入实例,创建名为demo的数据库:
在新创建的数据库中,点击SQL查询,使用以下命令(create user db_dev sysadmin password 'Huawei123#$';
),在demo库下创建db_dev用户,并授予sysadmin的权限。
登录已预置好的ECS
进入ECS弹性云服务器服务,查看ECS绑定的EIP:
双击打开实验桌面的 Xfce 终端,并执行以下命令sh root@EIP
,登录ecs。 成功登录ECS之后如下图所示:
掌握JDBC的使用
1、加载驱动,连接数据库,配置负载均衡
执行以下命令(mkdir -p /opt/expt/db/libs
、cd /opt/expt/db/libs
、wget https://sandbox-expriment-files.obs.cn-north-1.myhuaweicloud.com/20220525/opengaussjdbc.jar
),下载GaussDB jdbc驱动,并存放于 libs目录下。
接着再执行以下命令(wget https://sandbox-expriment-files.obs.cn-north-1.myhuaweicloud.com:443/20220525/OpenJDK11U-jdk_x64_linux_openj9_linuxXL_11.0.10_9_openj9-0.24.0.tar.gz
、tar xzvf OpenJDK11U-jdk_x64_linux_openj9_linuxXL_11.0.10_9_openj9-0.24.0.tar.gz
、mv jdk-11.0.10+9 /usr/lib/
、ln -s /usr/lib/jdk-11.0.10+9/bin/java /usr/local/bin/java
、ln -s /usr/lib/jdk-11.0.10+9/bin/javac /usr/local/bin/javac
),下载JDK软件包,并配置环境。
之后,就需要验证实验环境是否准备就绪,包括:java运行命令、javac运行命令
然后,在指定目录(mkdir -p /opt/expt/db/basic
、cd /opt/expt/db/basic
)创建exptConnection.java文件。接着在exptConnection.java文件中,输入代码(内容包含:驱动注册-JDBC_DRIVER = “com.huawei.opengauss.jdbc.Driver”;连接数据库-static final String DB_URL = “jdbc:opengauss://192.168.0.72:8000/demo”;)。接着执行以下命令(javac -d . exptConnection.java
),进行编译。编译完成后,会在当前目录下编译生成class数据文件及对应目录结构:
接着,执行以下命令(java -cp /opt/expt/db/libs/opengaussjdbc.jar:. expt.db.basic.exptConnection
),运行对应代码文件:
之后,需要配置负载均衡。点击数据库实例,获取备机信息。配置负载均衡中的轮询策略,。由于增加了轮询策略,需要新增参数字符串;轮询策略可以修改为autoBalance=true或者autoBalance=roundrobin。重新编译后,再运行程序。
(注:摘取自实验中解释,设置autoBalance为priorityn表示开启JDBC优先级负载均衡功能,将应用程序的多个连接首先均衡到url上配置的前n个中可用的CN数据库节点,当url上配置前n个节点全部不可用时,连接会随机分配到数据库集群中其他可用CN数据库节点;设置为shuffle表示开启JDBC随机负载均衡功能,将应用程序的多个连接随机均衡到数据库集群中的各个可用CN;设置为false,不开启JDBC负载均衡功能和优先级负载均衡功能,默认为不开启负载均衡。)
设置完负载均衡,还需要对JDBC设置读写分离,将参数修改为targetServerType=master,则尝试连接到url连接串中的主节点,如果找不到主节点将抛出异常。重新编译后,再运行程序。
2、执行建表语句
执行以下命令(cd /opt/expt/db/basic
、touch exptCreateTable.java
),创建exptCreateTable.java文件。
使用vi命令,将实验提供的代码内容写入exptCreateTable.java文件中。(代码内容包括:驱动注册-static final String JDBC_DRIVER = "com.huawei.opengauss.jdbc.Driver
;连接数据库-static final String DB_URL = "jdbc:opengauss://192.168.0.72:8000,192.168.0.71:8000,192.168.0.108:8000/demo";;
;建表语句;执行SQL语句)。
编译后运行程序,回显显示execute successfully!表示创建表完成。
3、执行插入语句
执行命令,创建exptInsert.java文件。
使用vi命令,将实验提供的代码内容写入exptInsert.java文件中。(代码内容包括:驱动注册;连接数据库;建表语句;执行SQL语句)。
编译后运行程序,回显显示“Number of rows affected: 1”表示数据插入成功:
4、执行查询语句
执行命令,创建exptQuery.java文件。
使用vi命令,将实验提供的代码内容写入exptQuery.java文件中。(代码内容包括:驱动注册;连接数据库;关闭连接;打印所有记录;打印一条记录;执行SQL语句)。
编译后运行程序,回显显示“影响行数: 1”表示数据插入成功。
5、批量插入数据
执行命令,创建exptBatchInsert.java文件。
使用vi命令,将实验提供的代码内容写入exptBatchInsert.java文件中。输入结束后,使用”:wq”保存退出vim编辑。第一个进行单条插入,第二个进行批量插入。
编译后运行程序,从运行结果中看,批量插入只需20+ms,而单条插入单条提交插入需要约3000ms。
6、关闭自动提交
执行命令,创建exptBatchInsert2.java文件。
使用vi命令,将实验提供的代码内容写入exptBatchInsert2.java文件中。输入结束后,使用”:wq”保存退出vim编辑。第一个进行单条插入,第二个进行批量插入。
编译后运行程序,从运行结果中看,批量插入只需20+ms,而单条插入批量提交需要400+ms,比之前的单条插入单条提交的速度有所提升。
征文活动
我正在参加【有奖征文 第28期】华为云GaussDB:与数据库同行的日子!
链接:https://bbs.huaweicloud.com/blogs/415547
- 点赞
- 收藏
- 关注作者
评论(0)