首页 > 其他分享 >JDBC驱动连接MogDB/opengauss

JDBC驱动连接MogDB/opengauss

时间:2024-04-09 11:12:27浏览次数:24  
标签:JDBC java jar MogDB jdbc node1 opengauss root conn

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,java,jar,MogDB,jdbc,node1,opengauss,root,conn
From: https://www.cnblogs.com/helloopenGauss/p/18123466

相关文章

  • 在ECS上安装部署openGauss数据库指导手册
    在ECS上安装部署openGauss数据库指导手册文档下载:在ECS上安装部署openGauss数据库指导手册.docx前言简介openGauss是关系型数据库,采用客户端/服务器,单进程多线程架构,支持单机和一主多备部署方式,备机可读,支持双机高可用和读扩展。本实验主要描述openGauss数据库在......
  • openGauss数据库的安装与使用
    VMware+CentOS7.6+OpenGauss2.0.1极简版安装环境准备Arch:x86-64OS:Win11VMware:16.1.2安装CentOS7.6CentOS镜像:CentOS-7.6.1810VMware中创建新的虚拟机时:1CPU2Core4GBNAT其他选择默认配置即可CentOS引导安装:语言选择英语打开网络设置时区安装位置和分区软件......
  • openGauss事务机制中MVCC技术的实现分析
    openGauss事务机制中MVCC技术的实现分析概述事务事务是为用户提供的最核心、最具吸引力的数据库功能之一。简单地说,事务是用户定义的一系列数据库操作(如查询、插入、修改或删除等)的集合,从数据库内部保证了该操作集合作为一个整体的原子性(Atomicity)、一致性(Consistency......
  • openGauss 主备高可用能力增强
    主备高可用能力增强可获得性本特性自openGauss5.1.0版本开始引入。特性简介针对备机异常的场景,优化主机的业务在最大可用模式下不阻塞,并且表的垃圾回收不受影响。客户价值当同步备机异常时,例如磁盘故障,导致备机长时间阻塞在写盘上,而主机的synchronous_commit设置为on以上,会......
  • openGauss 资源标签机制
    资源标签机制可获得性本特性自openGauss1.1.0版本开始引入。特性简介数据库资源是指数据库所记录的各类对象,包括数据库、模式、表、列、视图、触发器等,数据库对象越多,数据库资源的分类管理就越繁琐。资源标签机制是一种通过对具有某类相同“特征”的数据库资源进行分类标记而......
  • openGauss 主备机
    主备机可获得性本特性自openGauss1.0.0版本开始支持DN主备。特性简介为了保证故障的可恢复,需要将数据写多份,设置主备多个副本,通过日志进行数据同步,可以实现节点故障、停止后重启等情况下,openGauss能够保证故障之前的数据无丢失,满足ACID特性。客户价值主备机功能可以支持主......
  • openGauss 支持备机build备机
    支持备机build备机可获得性本特性自openGauss3.0.0版本开始引入。特性简介备机build备机加快备机故障的恢复。减小主机io和带宽压力。客户价值当业务压力过大时,从主机build备机会对主机的资源造成影响,导致主机性能下降、build变慢的情况。使用备机build备机不会对主机业务......
  • openGauss 支持OLTP场景数据压缩
    支持OLTP场景数据压缩可获得性本特性自openGauss3.0.0版本开始引入。在openGauss3.1.0版本中将pca文件和pcd文件整合为一个文件;pca独立进行加载淘汰管理,不再依赖mmap操作;新增chunk碎片整理操作。在openGauss5.1.0版本支持修改行存表的压缩相关参数。特性简介支持OLTP场景......
  • openGauss 支持PL-Java
    支持PL/Java可获得性本特性自openGauss1.0.0版本开始引入。特性简介支持javaUDF。客户价值提供多种函数的开发环境。特性描述使用openGauss数据库的PL/Java函数,用户可以使用自己喜欢的JavaIDE编写Java方法,并将包含这些方法的jar文件安装到openGauss数据库中,然后使用该......
  • openGauss 支持SQL-hint
    支持SQLhint可获得性本特性自openGauss1.1.0版本开始引入。特性简介支持SQLhint影响执行计划生成。客户价值提升SQL查询性能。特性描述PlanHint为用户提供了直接影响执行计划生成的手段,用户可以通过指定join顺序,join、stream、scan方法,指定结果行数,指定重分布过程中的......