BoneCP 简介

BoneCP 是一个快速、免费而且开源的 java 数据库连接池 (JDBC Pool) 管理工具库。如果你曾经使用过 C3P0 或者 DBCP,那你肯定知道上面这句话的意思;如果你没用过这些,那简单的解释一下,它是一个能为你的应用管理数据库连接的工具。

官网:http://jolbox.com

项目主页:https://github.com/wwadge/bonecp

为什么要学习 BoneCP?

本着不重复发明轮子的原则,不应该在有了 C3P0 这种成熟的数据库连接池管理工具后再搞个新的出来,但是传说中 BoneCP 在快速这个特点上做到了极致,官方数据是 C3P0 等的 25 倍左右。

作为一个程序猿,还是有必要一探究竟。

BoneCP 特性(Features )

  • 高度可扩展, 快速的连接池。注意:

    1) 不用 synchronized 关键字来处理多线程对资源的争用,而是使用 java.util.concurrent 包中的锁机制;

    2) 首次使用分区机制来分开管理数据库连接;

  • Callback (hook interceptor) mechanisms on a change of connection state.

  • 利用分区技术提高性能

  • 允许直接访问一个连接或者语句

  • 智能调整连接池大小

  • SQL语句缓存支持

  • 支持异步获取数据库连接 (通过返回 Future<Connection> 的形式)

  • 通过释放连接助理进程来释放数据库连接,提高性能

  • 通过 initSQL 参数在每次获取连接的时候执行 SQL

  • 支持数据库热切换

  • 自动重试失败的数据库操作(当数据库或者网络挂掉的时候)

  • JMX support

  • 延迟初始化能力 (Lazy initialization capable)

  • 自动检测连接可用性 (keep-alives 等)

  • 允许直接通过数据源而不是通过驱动来获取一个新的数据库连接(Allow obtaining of new connections via a datasource rather than via a Driver)

  • Datasource/Hibernate support capable

  • Debug支持准确地高亮那些已经得到但是还没有关闭的链接 (Debugging hooks to highlight the exact place where a connection was obtained but not closed)

  • Debug支持展示那些被关闭两次的链接地址堆栈信息 (Debugging support to show stack locations of connections that were closed twice. )

  • 支持自定义连接池名称

  • 干净的代码结构,TestCase 代码覆盖率达到 100% (over 125 JUnit tests).

  • 免费的,开源的而且都是用 java 干的,最重要的是有很完整的 javadocs 支持。(Free, open source and written in 100% pure Java with complete Javadocs).

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号