我需要在我的网络应用中管理与多个数据库的连接。以下是有关当前实施的事实:
1-我使用Tomcat
在运行时动态创建2-数据库(我正在使用mysql)
毫无疑问,拥有一个连接池来管理数据库连接是最佳选择。 由于数据库在应用程序启动时是未知的,因此我无法设置数据源并建立连接池。 (我在Tomcat中找不到建立动态连接池的方法:在运行时创建的连接池。)我的问题是:我有什么其他选择可以有效地与多个数据库连接? (我没有自己实现连接池的经验) 是否有任何可以与tomcat一起使用的库,并允许我在运行时建立到不同数据库的多个连接池?如果不是,你建议我做什么而不是连接池? 我对这个问题相当新,所以如果我弄乱了概念,请纠正并指导我。
提前谢谢。
答案 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绝对是最好的。它非常灵活且易于使用。