如何管理与动态创建的数据库的连接

时间:2011-08-25 18:42:18

标签: java mysql tomcat jdbc

我需要在我的网络应用中管理与多个数据库的连接。以下是有关当前实施的事实:

1-我使用Tomcat

在运行时动态创建2-数据库(我正在使用mysql)

毫无疑问,拥有一个连接池来管理数据库连接是最佳选择。 由于数据库在应用程序启动时是未知的,因此我无法设置数据源并建立连接池。 (我在Tomcat中找不到建立动态连接池的方法:在运行时创建的连接池。)

我的问题是:我有什么其他选择可以有效地与多个数据库连接? (我没有自己实现连接池的经验) 是否有任何可以与tomcat一起使用的库,并允许我在运行时建立到不同数据库的多个连接池?如果不是,你建议我做什么而不是连接池? 我对这个问题相当新,所以如果我弄乱了概念,请纠正并指导我。

提前谢谢。

2 个答案:

答案 0 :(得分:12)

MySQL JDBC驱动程序允许从连接URL中省略数据库名称,如下所示:

jdbc:mysql://localhost:3306

您只需要按Connection#setCatalog()或直接在SQL查询中指定数据库。另请参见其reference documentation

  

如果未指定database,则将建立连接而不使用默认数据库。在这种情况下,您需要在setCatalog()实例上调用Connection方法,或者在SQL中使用数据库名称(即SELECT dbname.tablename.colname FROM dbname.tablename...)完全指定表名。不指定在连接时使用的数据库通常仅在构建使用多个数据库(例如GUI数据库管理器)的工具时才有用。

这允许您在Tomcat中创建单个且可重复使用的连接池数据源。您可能只需要重写连接管理器和/或SQL查询。

答案 1 :(得分:0)

开放时有足够的连接池框架。 Proxool绝对是最好的。它非常灵活且易于使用。