OceanBase Connector/J 打开与数据库的连接
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);