JDBC在Linux终端直接编译运行JAVA程序连接PG🆚OG数据库
看腻了就来听听视频演示吧:https://www.bilibili.com/video/BV1CH4y1N7xL/
前置准备
安装JDK:
详细安装步骤请问度娘,输入能正常返回即已安装
[root@db06 ~]# java -version
openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)
[root@db06 ~]# javac -version
javac 1.8.0_262
复制
下载PostgreSQL驱动jar包:https://jdbc.postgresql.org/
下载openGuass驱动jar包:https://opengauss.org/zh/download/
Hello World
纯java代码,不涉及数据库层
编辑java文件代码,注意文件名需与类名同名
vi HelloWorld.java public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World . . . "); } }
复制
编译运行:
javac HelloWorld.java java HelloWorld
复制
连接数据库(PostgreSQL)
需要用到驱动jar包,测试PG版本是16.2
创建Demo文件,文件名与类名同名
vi DBConnectDemo.java
import java.sql.*;
public class DBConnectDemo {
public static void main(String[] args){
// 相关ip,port,database,user,password需进行替换
String url = "jdbc:postgresql://172.16.107.156:54321/testdb";
String username = "muser";
String password = "Test@123";
try {
// 加载驱动
Class.forName("org.postgresql.Driver");
// 打印数据库版本
Connection conn = DriverManager.getConnection(url, username, password);
Statement stmt = conn.createStatement();
ResultSet result = stmt.executeQuery("select version();");
while (result.next()){
System.out.println("DB version : " + result.getString("version"));
}
long avgtime = 0;
int n = 10; // 循环次数
// 循环打印连接建立时间
for(int i=0;i<n;i++){
long start = System.nanoTime();
Connection connection = DriverManager.getConnection(url, username, password);
long end = System.nanoTime() - start;
System.out.println("connect success: " + end + " 纳秒");
connection.close();
avgtime += end;
}
System.out.println("avg time: " + avgtime/n + " 纳秒");
} catch (Exception e){
e.printStackTrace();
}
}
}
复制
编译运行:需要在路径前面加上 .: 来指定路径
javac编译时在同目录下可以不指定驱动jar包
java运行时则需要指定
javac -cp "/tmp/postgresql-42.5.2.jar" DBConnectDemo.java
java -cp "/tmp/postgresql-42.5.2.jar" DBConnectDemo (有问题)
java -cp ".:/tmp/postgresql-42.5.2.jar" DBConnectDemo
java -cp ".:./*" DBConnectDemo
复制
连接数据库(openGauss)
openGauss出6.0了,下载个极简版来试试
opengauss连接需要调整驱动和数据库信息
String url = "jdbc:opengauss://172.16.107.156:15400/testdb"; Class.forName("org.opengauss.Driver");
复制
完整代码:
vi OGConnectDemo.java
import java.sql.*;
public class OGConnectDemo {
public static void main(String[] args){
// 相关ip,port,database,user,password需进行替换
String url = "jdbc:opengauss://172.16.107.156:6543/testdb";
String username = "muser";
String password = "Test@1234";
try {
// 加载驱动
Class.forName("org.opengauss.Driver");
// 打印数据库版本
Connection conn = DriverManager.getConnection(url, username, password);
Statement stmt = conn.createStatement();
ResultSet result = stmt.executeQuery("select version();");
while (result.next()){
System.out.println("DB version : " + result.getString("version"));
}
long avgtime = 0;
int n = 10; // 循环次数
// 循环打印连接建立时间
for(int i=0;i<n;i++){
long start = System.nanoTime();
Connection connection = DriverManager.getConnection(url, username, password);
long end = System.nanoTime() - start;
System.out.println("connect success: " + end + " 纳秒");
connection.close();
avgtime += end;
}
System.out.println("avg time: " + avgtime/n + " 纳秒");
} catch (Exception e){
e.printStackTrace();
}
}
}
复制
编译运行:OG会打印其他日志信息,这里我们把输出结果写到文件里
javac -cp ".:/tmp/opengauss-jdbc-6.0.0-RC1.jar" OGConnectDemo.java java -cp .:/tmp/opengauss-jdbc-6.0.0-RC1.jar OGConnectDemo > OGConnectDemo.log cat OGConnectDemo.log
复制
PG 🆚 OG 总结
数据库 | 版本 | 连接调用次数 | 平均响应时间 |
---|---|---|---|
PostgreSQL | 16.2 | 100 | 25ms |
openGauss | 6.0 | 100 | 95ms |
- PostgreSQL 16.2 对比 openGauss 6.0 在连接创建上大概有3~4倍左右的性能优势,当然都是在毫秒级别
- 针对高并发场景建议使用连接池来减少连接的频繁创建和关闭所带来的耗时
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
👍
11月前

评论
相关阅读
王炸!OGG 23ai 终于支持从PostgreSQL备库抽取数据了
曹海峰
410次阅读
2025-03-09 12:54:06
玩一玩系列——玩玩login_hook(一款即将停止维护的PostgreSQL登录插件)
小满未满、
377次阅读
2025-03-08 18:19:28
明明想执行的SQL是DELETE、UPDATE,但为什么看到的是SELECT(FDW的实现原理解析)
小满未满、
357次阅读
2025-03-19 23:11:26
PostgreSQL初/中/高级认证考试(3.15)通过考生公示
开源软件联盟PostgreSQL分会
310次阅读
2025-03-20 09:50:36
IvorySQL 4.4 发布 - 基于 PostgreSQL 17.4,增强平台支持
通讯员
200次阅读
2025-03-20 15:31:04
套壳论
梧桐
196次阅读
2025-03-09 10:58:17
内蒙古公司成功完成新一代BOSS云原生系统割接上线
openGauss
186次阅读
2025-03-24 09:40:40
命名不规范,事后泪两行
xiongcc
185次阅读
2025-03-13 14:26:08
第4期 openGauss 中级认证OGCP直播班招生中!3月30日开课
墨天轮小教习
152次阅读
2025-03-17 15:48:40
PG vs MySQL 执行计划解读的异同点
进击的CJR
125次阅读
2025-03-21 10:50:08