我正在开发一个程序,它从本地机器读取文件并将其数据上传到Oracle数据库服务器。该程序将通过调度程序每2-3分钟执行一次,每次运行平均有2-3个输入文件。 我想知道我应该采取什么方法来创建数据库连接,以便产生最小的性能影响。
谢谢,
最诚挚的问候, 库纳尔
答案 0 :(得分:0)
对于Oracle,您应该查看通用连接池,UCP。有关详细信息,请参阅https://docs.oracle.com/cd/E11882_01/java.112/e12265/toc.htm。
你基本上使用:
PoolDataSource pds = PoolDataSourceFactory.getPoolDataSource();
pds.setConnectionFactoryClassName("oracle.jdbc.pool.OracleDataSource");
pds.setURL("jdbc:oracle:thin:@//localhost:1521/XE");
pds.setUser("<user>");
pds.setPassword("<password>");
pds.setInitialPoolSize(5);
Connection conn = pds.getConnection();
答案 1 :(得分:-1)
使用连接池,它允许多个逻辑连接实例重用物理数据库连接,这些实例是物理连接的临时句柄。使用连接池数据源返回池连接,这是封装物理数据库连接的连接。然后使用池化连接返回每个充当临时句柄的JDBC连接实例(一次一个)。以下是Oracle连接池的示例。
...
OracleConnectionPoolDataSource ocpds = new OracleConnectionPoolDataSource();
ocpds.setDriverType("oci");
ocpds.setServerName("dlsun999");
ocpds.setNetworkProtocol("tcp");
ocpds.setDatabaseName("816");
ocpds.setPortNumber(1521);
ocpds.setUser("scott");
ocpds.setPassword("tiger");
PooledConnection pc = ocpds.getPooledConnection();
Connection conn = pc.getConnection();
...