没有JNDI管理数据库连接的最佳方法

时间:2010-09-28 09:29:19

标签: java jdbc connection-pooling jndi

我有一个网站,目前我获得了1000个网页浏览量。我预计将来它每天将达到30k左右。现在问题是我管理数据库连接。 目前我只是直接从java程序连接到DB。我知道这是世界上最糟糕的设计。但就目前而言,我已经这样写过了。 我计划使用JNDI管理连接池。但问题是我的托管服务提供商不支持JNDI。

有人可以建议我如何在没有jndi的情况下管理数据库连接吗?

1 个答案:

答案 0 :(得分:3)

连接池本身不需要JNDI获取连接。您也可以独立于JNDI设置和使用连接池。假设您想使用C3P0,这是更好的连接池之一,那么您可以在this tutorial中找到“原始”无JNDI设置详细信息。

以下是本教程的摘录:

ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setDriverClass( "org.postgresql.Driver" ); //loads the jdbc driver
cpds.setJdbcUrl( "jdbc:postgresql://localhost/testdb" );
cpds.setUser("swaldman");
cpds.setPassword("test-password"); 

在应用程序启动期间创建一次数据源,并将其存储在上下文中的某个位置。然后可以获取连接并按如下方式使用:

Connection connection = null;
// ...

try {
    connection = cpds.getConnection();
    // ...
} finally {
    // ...
    if (connection != null) try { connection.close(); } catch (SQLException ignore) {}
}

是的,最后关闭仍然是强制性的,否则连接池将无法将连接重新带回池中以供将来重用,并且它将用完连接。