Java 数据库连接池数据结构

Java 数据库连接池数据结构,java,database,algorithm,data-structures,Java,Database,Algorithm,Data Structures,我想开发数据库连接池 有人能告诉我需要使用哪种数据结构来维护池吗?您正在寻找的是开源解决方案吗 请参见本Sun开发者教程: 在JDBC 2.0之前的版本中 数据库会话需要一个新的 连接和登录,即使 以前的连接和登录使用了 相同的表和用户帐户。如果你 正在使用JDBC 2.0之前的版本 想要提高性能,您可以 可以缓存JDBC连接 不确定创建自己的是否明智 我在许多项目中使用了连接池(with),取得了巨大成功请参见。祝你好运 应该使用对象池设计模式来实现。你可以在报纸上读到 或者在。可以找到Obj

我想开发数据库连接池


有人能告诉我需要使用哪种数据结构来维护池吗?

您正在寻找的是开源解决方案吗


请参见本Sun开发者教程:

在JDBC 2.0之前的版本中 数据库会话需要一个新的 连接和登录,即使 以前的连接和登录使用了 相同的表和用户帐户。如果你 正在使用JDBC 2.0之前的版本 想要提高性能,您可以 可以缓存JDBC连接


不确定创建自己的是否明智


我在许多项目中使用了连接池(with),取得了巨大成功

请参见。祝你好运

应该使用对象池设计模式来实现。你可以在报纸上读到 或者在。可以找到
ObjectPool
JDBCConnectionPool
类的Java实现

对象池通常是一个单例,其中包含两个对象集合(例如数据库连接):

  • 解锁-用于免费对象,可根据请求提供给客户端
  • 已锁定-用于现在正在使用的锁定对象
  • 这些集合可以实现为
    列表
    哈希表
    或其他形式,具体取决于您的需要。对于简单的对象池-
    链接列表
    结构就足够了。

    您通常需要:

    • 围绕“原始”连接对象的某种包装器,用于管理诸如上次发出连接的时间、诊断信息、可能是为该连接准备的语句的缓存等——您可以定义它以包含所需内容
    • 用于放置连接包装器的集合支持并发添加/删除—任何正确同步的列表都可以,但ConcurrentLinkedQueue是一个合理的选择
    • 一种管理池中分配的方法——考虑使用类
    • 可能的情况是,将各种池组合到某个“池管理类”(例如,您可以只调用“getConnection(databaseName,readOnly)”并将其转到相关池)
    在此基础上,您可以构建所需的任何日志记录/监视


    也有支持现成连接池框架的人。我知道有些人不同意,但我个人不会走这条路——连接池(a)真的不难写,(b)构成您可能需要了解和定制的系统的关键部分。

    我认为在对象池设计模式中没有使用特定的数据结构:对象池的备份存储可能像数组一样简单—它是您如何通过未定义数量的对象来管理对有限数量资源的访问定义对象池方面的资源用户。@diciu-提到的链接已断开。。。你能更新它吗?与其开发你自己的库,为什么不使用这样一个被广泛使用并经过良好测试的库呢?而且,apache许可几乎可以为所有类型的项目创造奇迹。