OracleDataSourceFactory、OracleConnectionPoolDataSource 和 OracleDataSource 之间有什么区别?
What is the difference between OracleDataSourceFactory, OracleConnectionPoolDataSource and OracleDataSource?
OracleDataSourceFactory
、OracleConnectionPoolDataSource
和OracleDataSource
有什么区别?您会在哪些不同情况下使用它们?
之所以有OracleDataSource
and a OracleConnectionPoolDataSource
是因为JDBC标准定义了两种类型的连接:
java.sql.Connection
常用于 JDBC 应用程序
javax.sql.PooledConnection
未被连接池供应商的应用程序直接使用
OracleDataSource
是 java.sql.Connection
对象的工厂,这是应用程序广泛使用的数据源。另一方面 OracleConnectionPoolDataSource
用于 javax.sql.PooledConnection
并且仅用于连接缓存实现(例如 UCP)。
您可以安全地忽略 OracleDataSourceFactory
,这是构建 Oracle 不再推广的 DataSource 对象的工件。
使用 19c Oracle JDBC 驱动程序,您可以像这样实例化数据源:
oracle.jdbc.datasource.OracleDataSource ds = oracle.jdbc.pool.OracleDataSource();
或者,如果您使用的是回放驱动程序(对于 Application Continuity):
oracle.jdbc.datasource.OracleDataSource ds = oracle.jdbc.replay.OracleDataSourceImpl();
OracleDataSourceFactory
、OracleConnectionPoolDataSource
和OracleDataSource
有什么区别?您会在哪些不同情况下使用它们?
之所以有OracleDataSource
and a OracleConnectionPoolDataSource
是因为JDBC标准定义了两种类型的连接:
java.sql.Connection
常用于 JDBC 应用程序javax.sql.PooledConnection
未被连接池供应商的应用程序直接使用
OracleDataSource
是 java.sql.Connection
对象的工厂,这是应用程序广泛使用的数据源。另一方面 OracleConnectionPoolDataSource
用于 javax.sql.PooledConnection
并且仅用于连接缓存实现(例如 UCP)。
您可以安全地忽略 OracleDataSourceFactory
,这是构建 Oracle 不再推广的 DataSource 对象的工件。
使用 19c Oracle JDBC 驱动程序,您可以像这样实例化数据源:
oracle.jdbc.datasource.OracleDataSource ds = oracle.jdbc.pool.OracleDataSource();
或者,如果您使用的是回放驱动程序(对于 Application Continuity):
oracle.jdbc.datasource.OracleDataSource ds = oracle.jdbc.replay.OracleDataSourceImpl();