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的更多相关文章

  1. IntelliJ IDEA+Mysql connecter/j JDBC驱动连接

    在IntelliJ IDEA中用connecter/j jdbc驱动连接MYSQL 以下是解决过程,待整合...有点懒,有空再改 官方文档:https://www.cnblogs.com/cn-chy ...

  2. mysql 数据库8.0版本,jdbc驱动连接问题

    前言 8.0版本的mysql数据的连接 与 5.0的有所不同,下面直接贴出  8.0版本应该有的 jdbc驱动连接,还有 mysql 的jdbc jar包要8.0以上的 内容如下 : jdbc.dri ...

  3. jmeter通过org.sqlite.JDBC驱动连接db数据库

    最近遇到个项目,默认业务库为内置db数据库,在性能脚本编辑过程中要通过正则表达式提取器(关联)获取对应的id号,通过该id号到db数据库中查找对应的数据源name字段内容,为下一个post请求做par ...

  4. c3p0、dbcp、tomcat jdbc pool 连接池配置简介及常用数据库的driverClass和驱动包

    [-] DBCP连接池配置 dbcp jar包 c3p0连接池配置 c3p0 jar包 jdbc-pool连接池配置 jdbc-pool jar包 常用数据库的driverClass和jdbcUrl ...

  5. 注意JDBC驱动的版本和JDK的版本是否匹配 JDBC连接Mariadb

    Java利用JDBC连接Mariadb的过程和MySQL基本一致. 但是需要注意JDBC驱动的版本和JDK的版本是否匹配: JDBC和JDK版本对应关系 JDBC版本 JDK版本 2.x 1.8 1. ...

  6. IDEA用Maven连接MySQL的jdbc驱动,并操作数据库

    1.在IDEA里创建Maven项目 1.1.点击Create New Project   1.2.选择Maven,JDK这里用的是1.8,点击Next  1.3.填入“组织名”.“项目名”,版本是默认 ...

  7. JDBC驱动自身问题引发的FullGC

    公众号HelloJava刊出一篇<MySQL Statement cancellation timer 故障排查分享>,作者的某服务的线上机器报 502(502是 nginx 做后端健康检 ...

  8. maven添加sqlserver的jdbc驱动包

    http://search.maven.org/中没有sqlserver的jdbc驱动,所以需要本地安装sqljdbc的jar包,然后再在pom里面引入 Step 1 在微软官网下载sqljdbc的j ...

  9. Java中通过JDBC远程连接Oracle数据库

    通过jdbc连接数据库,拢共分三步: 第一步:下载一个JDBC的驱动,然后把jar包扔到项目里并add to build path: 第二步:去本地oracle文件夹下找到“TNSNAMES.ORA” ...

  10. JDBC驱动的四种类型

    Java中的JDBC驱动可以分为四种类型,包括JDBC-ODBC桥.本地API驱动.网络协议驱动和本地协议驱动. JDBC驱动类型一.JDBC-ODBC桥 JDBC-ODBC 桥 是sun公司提供的, ...

随机推荐

  1. C#多线程(11):线程等待

    目录 前言 volatile 关键字 三种常用等待 再说自旋和阻塞 SpinWait 结构 属性和方法 自旋示例 新的实现 SpinLock 结构 属性和方法 示例 等待性能对比 前面我们学习了很多用 ...

  2. 在.NET程序中整合微软的Playwright,使用 Playwright 的最佳实践和技巧

    Playwright 是一个由 Microsoft 开发的开源工具,用于自动化 Web 浏览器的测试和操作.它提供了一种跨浏览器.跨平台的自动化解决方案,可以在 Chromium.Firefox 和 ...

  3. Advanced .Net Debugging 3:基本调试任务(对象检查:内存、值类型、引用类型、数组和异常的转储)

    一.介绍 这是我的<Advanced .Net Debugging>这个系列的第四篇文章.今天这篇文章的标题虽然叫做"基本调试任务",但是这章的内容还是挺多的.由于内容 ...

  4. SpringMVC快速复习(超详细)

    目录 一.SpringMVC简介 1.什么是MVC 2.什么是SpringMVC 3.SpringMVC的特点 二.HelloWorld 1.开发环境 2.创建maven工程 a>添加web模块 ...

  5. Spring整合mybatis使用xml配置事务

    自己准备开始教授Java相关的技术,Spring框架是必须让学生学习的框架之一.里面有一个事务相关的 配置,以前刚学习Spring框架的时候有接触过,只是过了很多年,很多东西都已经淡忘.再来回忆一下 ...

  6. 接入移动手机号一键登录类的封装,app应用,php服务端类的封装与调用

    需求:实现手机号一键登录,由于官方只有java的demo和jar包,没有php的sdk及demo <?php/* * 手机号一键登录加解密 */class Autophone{ const A_ ...

  7. 整数输入框 InputNumberIntZen.vue 只能输入整数 不能输入.等其他字符

    这版的输入限制堪称完美 perfect! 20230712 更新 加入 onBlurHandle 如果输入的02 失焦的时候 变成2 <!--数字输入框 只能输入数字 整型 InputNumbe ...

  8. react 中 动态添加 class,防止图片 重复加载, 主要是 background-image的二次加载会有新请求,和图片的闪烁

    react 中 动态添加 class,防止图片 重复加载, 主要是 background-image的二次加载会有新请求,和图片的闪烁 let imageTopBg if (imgSrcBg) { c ...

  9. C#实现软件开机自启动(不需要管理员权限)

    目录 原理简介 使用方法 完整代码 原理简介 本文参考C#/WPF/WinForm/程序实现软件开机自动启动的两种常用方法,将里面中的第一种方法做了封装成AutoStart类,使用时直接两三行代码就可 ...

  10. nginx和tomcat 反向代理 部署实例 直接运行

    1 前言 1.1 目的 为了正确的部署"ngix+memcached"特编写此部署手册,使安装人员可以通过部署手册知道如何部署系统,也为需要安装该系统的安装人员正确.快速的部署本系 ...