JDBC驱动连接MogDB/opengauss
JDBC 驱动连接 MogDB/opengauss
一、环境说明
[root@node1 ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@node1 ext]# java -version
java version "1.8.0_301"
Java(TM) SE Runtime Environment (build 1.8.0_301-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)
二、数据库配置
1.配置数据库参数,允许用户登录
数据库配置文件 postgresql.conf 和 pg_hba.conf 中加上如下内容
[omm@node1 data]$ tail -4 postgresql.conf
listen_addresses = '...'
password_encryption_type = 0
log_directory = 'pg_log'
remote_read_mode=non_authentication
[omm@node1 data]$ tail -1 pg_hba.conf
host all all .../0 md5
重启数据库
gs_om -t stop
gs_om -t start
2.创建连接用户及数据库
postgres=# create database jdbc_db;
CREATE DATABASE
postgres=# create user jdbc_usr password 'jdbc@123';
NOTICE: The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
postgres=# alter user jdbc_usr sysadmin;
ALTER ROLE
postgres=#
三、Java 程序编写
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class ConnTest {
//创建数据库连接。
public static Connection GetConnection(String username, String passwd) {
String driver = "org.postgresql.Driver";
String sourceURL = "jdbc:postgresql://8.131.53.xxx:26000/jdbc_db";
Connection conn = null;
try {
//加载数据库驱动。
Class.forName(driver).newInstance();
} catch (Exception e) {
e.printStackTrace();
return null;
}
try {
//创建数据库连接。
conn = DriverManager.getConnection(sourceURL,"jdbc_usr", "jdbc@123");
System.out.println("连接成功!");
} catch (Exception e) {
e.printStackTrace();
return null;
}
return conn;
}
;
/**
* 把查询到的结果放入ResultSet
* 通过迭代的方法去读取结果集中的查询结果
* 输出查询结果
*/
public static void Select(Connection conn) {
PreparedStatement ps = null;
ResultSet rs = null;
String sql = "SELECT version()";
try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery(); //将查询的结果放入ResultSet结果集中
/**
* 从结果集ResultSet中迭代取出查询结果并输出
*/
while(rs.next()) {
// String values = rs.getString("id");
String values = rs.getString("version");
System.out.println( "数据库版本:"+values);
}
} catch (SQLException e) {
System.out.println("操作失败o(╥﹏╥");
e.printStackTrace();
}
}
/**
* 主程序,逐步调用各静态方法。
* @param args
*/
public static void main(String[] args) {
//创建数据库连接。
Connection conn = GetConnection("jdbc_usr", "jdbc@123");
Select(conn);
//关闭数据库连接。
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
四、程序测试
1.放置 jDBC 驱动
将 jdbc 驱动放到 jdk 中的如下目录,让程序能找到驱动包
[root@node1 ext]# pwd
/usr/java/jdk1.8.0_301-amd64/jre/lib/ext
[root@node1 ext]# wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/2.0.1/x86/openGauss-2.0.0-JDBC.tar.gz
2021-12-01 17:30:52 (13.2 MB/s) - 已保存 “openGauss-2.0.0-JDBC.tar.gz” [4937896/4937896])
[root@node1 ext]# tar -zxvf openGauss-2.0.0-JDBC.tar.gz
postgresql.jar
2.运行程序
这里采用了俩种方式运行程序,一种是单个程序直接运行,另一个则是将 Java 程序打成 jar 在运行,这里简单介绍一下
(1)单个程序运行
[root@node1 hello]# ls
conn.jar ConnTest.java MANIFEST.MF postgresql.jar
[root@node1 hello]# pwd
/root/java_program/hello
[root@node1 hello]# javac ConnTest.java
[root@node1 hello]# java ConnTest
连接成功!
数据库版本:PostgreSQL 9.2.4 (MogDB 2.0.1 build f892ccb7) compiled at 2021-07-09 16:12:59 commit 0 last mr on x86_64-unknown-linux-gnu, compiled by g++ (GCC) 7.3.0, 64-bit
(2)jar 包运行
编译 ConnTest.java
[root@node1 hello]# javac ConnTest.java
编写 MANIFEST.MF 文件
MANIFEST.MF 文件介绍
META-INF 文件夹相当于一个信息包,目录中的文件和目录获得 Java 2 平台的认可与解释,用来配置应用程序、扩展程序、类加载器和服务。这个文件夹和其中的 MANIFEST.MF 文件,在用 jar 打包时自动生成。执行 jar 文件的时候,这个 jar 里是需要具备 META-INF/MANIFEST.MF 的,否则 java -jar 就找不到 main class。
[root@node1 hello]# cat MANIFEST.MF
Manifest-Version: 1.0
Main-Class: ConnTest
程序打包
[root@node1 hello]# jar -cvfm conn.jar MANIFEST.MF ConnTest.class
已添加清单
正在添加: ConnTest.class(输入 = 2126) (输出 = 1212)(压缩了 42%)
运行程序
[root@node1 hello]# java -jar conn.jar
连接成功!
数据库版本:PostgreSQL 9.2.4 (MogDB 2.0.1 build f892ccb7) compiledat 2021-07-09 16:12:59 commit 0 last mr onx86_64-unknown-linux-gnu, compiled by g++ (GCC) 7.3.0, 64-bit
五、总结
上述文章简单介绍了 JDBC 连接 MogDB 数据库,数据如何配置,以及 JDBC 驱动如何加载,如何配置,并运行在 Linux 上。更多细节参考官方文档https://docs.mogdb.io/zh/mogdb/v2.0.1/1-development-based-on-jdbc-overview
JDBC驱动连接MogDB/opengauss的更多相关文章
- IntelliJ IDEA+Mysql connecter/j JDBC驱动连接
在IntelliJ IDEA中用connecter/j jdbc驱动连接MYSQL 以下是解决过程,待整合...有点懒,有空再改 官方文档:https://www.cnblogs.com/cn-chy ...
- mysql 数据库8.0版本,jdbc驱动连接问题
前言 8.0版本的mysql数据的连接 与 5.0的有所不同,下面直接贴出 8.0版本应该有的 jdbc驱动连接,还有 mysql 的jdbc jar包要8.0以上的 内容如下 : jdbc.dri ...
- jmeter通过org.sqlite.JDBC驱动连接db数据库
最近遇到个项目,默认业务库为内置db数据库,在性能脚本编辑过程中要通过正则表达式提取器(关联)获取对应的id号,通过该id号到db数据库中查找对应的数据源name字段内容,为下一个post请求做par ...
- c3p0、dbcp、tomcat jdbc pool 连接池配置简介及常用数据库的driverClass和驱动包
[-] DBCP连接池配置 dbcp jar包 c3p0连接池配置 c3p0 jar包 jdbc-pool连接池配置 jdbc-pool jar包 常用数据库的driverClass和jdbcUrl ...
- 注意JDBC驱动的版本和JDK的版本是否匹配 JDBC连接Mariadb
Java利用JDBC连接Mariadb的过程和MySQL基本一致. 但是需要注意JDBC驱动的版本和JDK的版本是否匹配: JDBC和JDK版本对应关系 JDBC版本 JDK版本 2.x 1.8 1. ...
- IDEA用Maven连接MySQL的jdbc驱动,并操作数据库
1.在IDEA里创建Maven项目 1.1.点击Create New Project 1.2.选择Maven,JDK这里用的是1.8,点击Next 1.3.填入“组织名”.“项目名”,版本是默认 ...
- JDBC驱动自身问题引发的FullGC
公众号HelloJava刊出一篇<MySQL Statement cancellation timer 故障排查分享>,作者的某服务的线上机器报 502(502是 nginx 做后端健康检 ...
- maven添加sqlserver的jdbc驱动包
http://search.maven.org/中没有sqlserver的jdbc驱动,所以需要本地安装sqljdbc的jar包,然后再在pom里面引入 Step 1 在微软官网下载sqljdbc的j ...
- Java中通过JDBC远程连接Oracle数据库
通过jdbc连接数据库,拢共分三步: 第一步:下载一个JDBC的驱动,然后把jar包扔到项目里并add to build path: 第二步:去本地oracle文件夹下找到“TNSNAMES.ORA” ...
- JDBC驱动的四种类型
Java中的JDBC驱动可以分为四种类型,包括JDBC-ODBC桥.本地API驱动.网络协议驱动和本地协议驱动. JDBC驱动类型一.JDBC-ODBC桥 JDBC-ODBC 桥 是sun公司提供的, ...
随机推荐
- 【Azure K8S | AKS】在中国区AKS上遇见ImagePullBackOff时的替代方案
问题描述 在AKS集群中部署calico时候,遇见 ImagePullBackOff 问题. 在创建POD calico-typha-horizontal-autoscale 时候遇见拉取镜像失败问题 ...
- 【Azure 环境】AAD 注册应用获取AAD Group权限接口遇 403 : Attempted to perform an unauthorized operation 错误
问题描述 通过Azure AD的注册应用获取到Token后,访问AAD Group并查看日志信息时候,遇见了 {"error":{"code":"Un ...
- 使用beyond compare或kompare作为git的对比、合并工具
两种方法 方法1: 直接使用命令 # 执行下面命令,参看支持对比合并工具名称,比如bc就是指beyond compare(收费软件,推荐使用开源的kompare) $ git difftool --t ...
- C#多线程(8):线程完成数
目录 解决一个问题 CountdownEvent 类 构造函数和方法 示例 解决一个问题 假如,程序需要向一个 Web 发送 5 次请求,受网路波动影响,有一定几率请求失败.如果失败了,就需要重试. ...
- VC-MFC(1) 随笔笔记+连接数据库
1 数据库语句: 2 CREATE DATABASE---创建新数据库 3 ALTER DATABASE-----修改数据库 4 CREATE TABLE ---- -创建新表 5 ALTER TAB ...
- 线段树-多个懒标记pushdown
P3373 [模板]线段树 2 这里需要用到两个懒标记,一个懒标记为add,记录加,另一个懒标记为mul,记录乘. 我们需要规定一个优先级,然后考虑如何将懒标记下传. 这里无非有两种顺序,一种是先乘后 ...
- 继续总结Python中那些简单好用的用法
上一篇文章Python中那些简单又好用的特性和用法发出后,群里的小伙伴又给补充了几个好用的用法,结合生产实用经验汇总整理如下,各位看官如有需要请自取 反射,反射是一种机制,可以在运行时获取.检查和修改 ...
- wsl使用记录
# wsl使用记录 安装 直接参考微软官方文档使用 WSL 在 Windows 上安装 Linux ubuntu可用发行版安装 https://ubuntu.com/wsl 访问 方式一:在资源管理器 ...
- C#中的JSON序列化方法
在C#中的使用JSON序列化及反序列化时,推荐使用Json.NET--NET的流行高性能JSON框架,当然也可以使用.NET自带的 System.Text.Json(.NET5).DataContra ...
- 5分钟上手Python爬虫:从干饭开始,轻松掌握技巧
很多人都听说过爬虫,我也不例外.曾看到别人编写的爬虫代码,虽然没有深入研究,但感觉非常强大.因此,今天我决定从零开始,花费仅5分钟学习入门爬虫技术,以后只需轻轻一爬就能查看所有感兴趣的网站内容.广告? ...