Java连接OceanBase数据库
pom.xml中
<dependencies> <!-- 加入下面两项 --> <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.28</version> <!-- 推荐 8.0+ 版本 --> </dependency> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>3.4.5</version> </dependency> </dependencies>
创建dbOceanBase文件夹

创建 OcanBaseUtil.java
package com.JavaOceanBase.dbOceanBase; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; import java.sql.Connection; import java.sql.SQLException; /** * OceanBase 数据库连接工具类(基于 HikariCP 连接池) */ public class OceanBaseUtil { private static volatile HikariDataSource dataSource; // 私有构造方法(禁止外部实例化) private OceanBaseUtil() {} /** * 初始化连接池(线程安全) */ private static void initDataSource() { if (dataSource == null) { synchronized (OceanBaseUtil.class) { if (dataSource == null) { HikariConfig config = new HikariConfig(); config.setJdbcUrl("jdbc:mysql://192.168.1.145:2881/callcenter2_db_joincallcc"); config.setUsername("root"); config.setPassword("YourStrong@Password123"); // 优化配置 config.setMaximumPoolSize(10); // 最大连接数 config.setConnectionTimeout(5000); // 连接超时(毫秒) config.setIdleTimeout(60000); // 空闲超时 config.addDataSourceProperty("useSSL", "false"); config.addDataSourceProperty("serverTimezone", "UTC"); dataSource = new HikariDataSource(config); } } } } /** * 获取数据库连接 */ public static Connection getConnection() throws SQLException { if (dataSource == null) { initDataSource(); } return dataSource.getConnection(); } /** * 关闭连接池(应用退出时调用) */ public static void closeDataSource() { if (dataSource != null && !dataSource.isClosed()) { dataSource.close(); System.out.println("OceanBase 连接池已关闭"); } } }
App.java
package com.JavaOceanBase; import com.JavaOceanBase.dbOceanBase.*; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; /** * Hello world! */ public class App { public static void main(String[] args) { System.out.println("Hello World!"); try (Connection conn = OceanBaseUtil.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SHOW DATABASES")) { System.out.println("连接 OceanBase 成功!"); while (rs.next()) { System.out.println("数据库: " + rs.getString("Database")); } } catch (Exception e) { System.err.println("操作失败: " + e.getMessage()); e.printStackTrace(); } finally { OceanBaseUtil.closeDataSource(); // 应用结束时调用 } } }
运行结果:


浙公网安备 33010602011771号