云数据库OceanBase入门教程 OceanBase Connector/J 打开与数据库的连接

2024-02-26 开发教程 云数据库OceanBase入门教程 匿名 4

OceanBase Connector/J 支持两种数据库连接方式:DriverManager 和数据连接池。

使用 DriverManager

与 OceanBase Connector/J 建立连接时,推荐使用 DriverManager 类。使用 DriverManager 类时,无需配置,就可以自动加载 OceanBase Connector/J,示例如下:

Connection connection = DriverManager.getConnection("jdbc:oceanbase://lt:2883/user=root&password=***");

使用数据连接池

与 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);