Java 在没有JNDI的情况下管理数据库连接的最佳方法
我有一个网站,目前有1000个页面浏览量。我预计在未来它将达到每天3万英镑左右。现在是我管理数据库连接的问题。 目前我只是直接从java程序连接到DB。我知道这是世界上最糟糕的设计。但目前我写的是这样的。 我计划使用JNDI管理连接池。但问题是我的主机提供商不支持JNDIJava 在没有JNDI的情况下管理数据库连接的最佳方法,java,jdbc,connection-pooling,jndi,Java,Jdbc,Connection Pooling,Jndi,我有一个网站,目前有1000个页面浏览量。我预计在未来它将达到每天3万英镑左右。现在是我管理数据库连接的问题。 目前我只是直接从java程序连接到DB。我知道这是世界上最糟糕的设计。但目前我写的是这样的。 我计划使用JNDI管理连接池。但问题是我的主机提供商不支持JNDI 有人能建议我如何在没有jndi的情况下管理DB连接吗?连接池本身并不要求jndi获得连接。您还可以独立于JNDI设置和使用连接池。让我们假设您希望使用更好的连接池之一,那么您可以在中找到“原始”JNDI较少的设置详细信息 以下
有人能建议我如何在没有jndi的情况下管理DB连接吗?连接池本身并不要求jndi获得连接。您还可以独立于JNDI设置和使用连接池。让我们假设您希望使用更好的连接池之一,那么您可以在中找到“原始”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) {}
}
是的,最终关闭仍然是必需的,否则连接池将无法将连接恢复到池中以供将来重用,它将耗尽连接