我想开发数据库连接池。
有人可以告诉我需要使用哪种数据结构来维护池吗?
答案 0 :(得分:9)
应使用对象池设计模式来实现。你可以阅读它
Kircher, Michael; Prashant Jain; (2002-07-04). "Pooling Pattern". EuroPLoP 2002. Retrieved on 2007-06-09.或Object Pool Design Pattern。可以找到ObjectPool
和JDBCConnectionPool
类的Java实现here。
对象池通常是一个 singleton ,其中包含两个对象集合(例如数据库连接):
此收藏集可以Lists
或HashTables
或其他方式实施,具体取决于您的需求。对于简单的ObjectPool - LinkedList
结构就足够了。
答案 1 :(得分:4)
不是开发自己的,而是使用广泛使用且经过充分测试的Commons DBCP库。
答案 2 :(得分:3)
答案 3 :(得分:3)
您通常需要:
除此之外,您还可以构建所需的任何日志记录/监控。
还有倡导现成的连接池框架。我知道有些人不同意,但我个人不会走这条路 - 连接池(a)真的不难写,(b)构成你可能需要理解的系统的关键部分并自定义。
答案 4 :(得分:0)
您正在寻找一个开源解决方案吗?
答案 5 :(得分:0)
请参阅此Sun开发人员教程:Connection Pooling:
在每个JDBC 2.0之前的版本中 数据库会话需要一个新的 即使连接和登录 以前的连接和登录使用了 相同的表和用户帐户。如果你 正在使用2.0之前的JDBC版本 并且想要提高性能,你 可以缓存JDBC连接。
答案 6 :(得分:-1)