【发布时间】:2011-12-31 16:55:48
【问题描述】:
我想知道您对这种方法是否可以实际实施的看法。我对数据库池非常了解,所以请原谅我的任何误解。我有多个类调用 dbData 类(它连接到数据库并具有帮助函数,例如经常使用获取和更新等)。我需要在 dbData 类中保留所有 get 和 update 函数,但保留一个我可以重复使用的活动连接池。这意味着我将多次实例化 dbData 类,每次检查是否存在适当的连接,如果不存在,则创建一个新的并将其放入池中。
我的问题是您将如何以及在何处存储此池。如果 dbData 不会被多次实例化并保留一个持久池对象,我也许可以完成此操作。但就我而言,我有多个 dbData 实例,它们都应该连接到一个池。我想过序列化池对象,但这似乎很荒谬。这可能吗(如图所示)?看来我在这个设计的面向对象部分遇到了麻烦。
应用程序使用 Class1 和 Class2 的多线程。
如果可能,我不想使用任何外部库。
【问题讨论】:
-
您是在容器环境中运行它(例如在 Tomcat、JBoss、..上)还是作为独立的 Java 应用程序运行?
-
您为什么要避免使用现有的库/方法?这是一个通过库或容器从根本上解决的问题。如果您下定决心重新发明它,请查看基于commons-pool 的commons-dbcp,了解如何重新实现它的想法:/
-
独立 Java 应用程序。我不想使用现有的库来保持简单。我阅读了一些关于 Java DBCP 的 IBM 文档,它基本上看起来只是一个带有连接的 HashSet。我不认为我需要全力以赴去获得一个巨大的图书馆。
-
我好像忘记了静态变量。即使有多个 dbData 实例,我也会将此池设为静态并继续查询连接。
-
保持简单是使用其他库,而不是自己编写。
标签: java database jdbc database-connection connection-pooling