首批通过分布式安全可靠测评,为关键业务系统打造
建立与数据库的连接
更新时间:2026-07-22 17:45:59
OceanBase Connector/J 支持两种数据库连接方式:DriverManager 和数据连接池。
使用 DriverManager
与 OceanBase Connector/J 建立连接时,推荐使用 DriverManager 类。
使用 DriverManager 类时,按照以下方法设置参数即可建立与 OceanBase 数据库的连接:
Connection connection = DriverManager.getConnection("jdbc:oceanbase://host:port/user=root&password=***");
使用 DriverManager 之前需要使用 Class.forName 加载类,然后使用 OceanBase 数据库的 IP 地址及端口号进行数据库连接,即将 String url 字段填入相应的 IP 地址、端口号和 Schema 名称。
完整的连接代码示例如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class HelloWorld {
public static void main(String[] args) {
try {
String url = "jdbc:oceanbase://ipaddress:port/shemaname?pool=false";
String user = "username";
String password = "***";
Class.forName("com.oceanbase.jdbc.Driver");
Connection connection = DriverManager.getConnection(url, user, password);
} catch (Throwable e) {
e.printStackTrace();
}
}
说明
对于专有云或独立部署的场景,username 的格式为:String user = "用户名@租户#集群";
数据库连接成功后,可以重新执行以下示例中的步骤进行加载类。
javac -cp target/oceanbase-client-{version}.jar HelloWorld.java
java -cp .:target/oceanbase-client-{version}.jar HelloWorld
使用数据连接池
与 OceanBase Connector/J 建立连接的另一种方法是使用连接池。
OceanBase Connector/J 支持 2 种不同的 Datasource Pool 实现:
OceanbaseDataSource:基本实现。每次调用getConnection()方法时都会创建一个新连接。OceanbasePoolDataSource:连接池实现。连接池用于集中维护连接资源,当收到新的连接请求时,会从该池中借用一个连接。
内部池
驱动程序的内部池配置提供了非常快速的池实现,并解决了以下大多数 Java 池具有的问题:
释放后出现两种不同的连接状态清理方式
处理非活跃连接(如果一段时间后不使用,则池中的连接将被释放,避免在达到
@wait_timeout阈值之后,由于服务器关闭连接而产生的问题)。
外部池
使用外部连接池时,必须配置 OceanBase 驱动程序类 com.oceanbase.jdbc.Driver。
示例:使用 hikariCP JDBC 连接池。
final HikariDataSource ds = new HikariDataSource();
ds.setMaximumPoolSize(10);
ds.setDriverClassName("com.oceanbase.jdbc.Driver");
ds.setJdbcUrl("jdbc:oceanbase://localhost:2883/db");
ds.addDataSourceProperty("user", "root");
ds.addDataSourceProperty("password", "OBClient");
ds.setAutoCommit(false);