我希望开发数据库连接池。
请问有人能告诉我维护连接池需要使用哪种数据结构吗?
我希望开发数据库连接池。
请问有人能告诉我维护连接池需要使用哪种数据结构吗?
应该使用对象池设计模式(Object Pool Design Pattern)来实现。您可以在Kircher, Michael; Prashant Jain; (2002-07-04). "Pooling Pattern". EuroPLoP 2002. Retrieved on 2007-06-09. 或 Object Pool Design Pattern中了解更多信息。Java的ObjectPool
和JDBCConnectionPool
类的实现可以在这里找到。
对象池通常是一个单例(Singleton),其中包含两个对象(e.g.数据库连接)集合:
这些集合可以根据需要实现为Lists
或HashTables
或其他结构。对于简单的对象池,LinkedList
结构就足够了。
在此基础上,您可以构建所需的任何日志记录/监视。
也有人支持现成的连接池框架。我知道有些人不同意,但我个人不会选择这条路--连接池(a)真的不难编写,(b)是您系统的关键部分,您可能需要了解和自定义。
您是否正在寻找开源解决方案?
请查看Apache数据库连接池API。
在JDBC 2.0之前的版本中,即使上一个连接和登录使用相同的表和用户帐户,每个数据库会话都需要一个新连接和登录。如果您正在使用早于2.0的JDBC并且想要提高性能,则可以缓存JDBC连接。