`

分享一个简单易用的数据库连接池项目--Echeneidae

阅读更多
产生原因:
    由于现有的连接池实现都比较复杂,配置项也很多,导致使用的时候容易出问题,后来考虑了下,由于现在一般的服务都是用线程池的技术了,所以想充分利用下这个特点,给每个线程建立一个长连接,这样实现和理解起来都很简单,也做到了连接的复用(取名Echeneidae,也是因为和这种鱼的特点相似)

特点:
1.实现模式简单:一个线程对应一个数据库长连接,无需加锁
2.使用简单:几乎无外部依赖,几乎无需配置即可使用

使用要求:
jdk 1.6以上,jdbc4

实现方式:
    第一次建立连接之后,首先将连接保存到ThreadLocal中,之后代理连接的close方法,让close的时候不执行关闭连接的操作, 下次需要连接的时候,直接返回之前建立的连接,如果在执行sql语句的时候出现了异常,会检查一下连接是否正常,如果不正常了,会把连接 标记为无效,并在下次获取连接的时候关闭旧连接,并重新创建新的连接
使用方式:
使用方式和普通的数据源一样,以下是一个配合commons-dbutils的例子

String driverClassName = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost/test?connectTimeout=1000&socketTimeout=1000";
EcheneidaeDataSource ds = new EcheneidaeDataSource(driverClassName, url, "root", "");

QueryRunner queryer = new QueryRunner(ds);
List<Map<String, Object>> result = queryer.query("select * from tb_users", new MapListHandler());
System.out.println(result);
分享到:
评论

相关推荐

    C语言数据库连接池 libzdb-3.0

    总的来说,libzdb-3.0是C语言环境下实现数据库连接池的一个理想选择,它以其小巧、高效和易用的特性,为开发者提供了便利,降低了数据库管理的复杂性,提升了系统的整体性能。在实际项目中,结合良好的编程实践,...

    JAVA数据库连接池完整源码(简单易用带详细注释)

    数据库连接池是Java应用程序中非常重要的一个组件,它在处理...总之,这份源码提供了一个学习数据库连接池实现的实例,通过深入研究,可以加深对数据库连接池工作原理的理解,并有助于在实际项目中优化数据库访问性能。

    Apache-DBCP数据库连接池

    Apache DBCP(Database Connection Pool)是Apache软件基金会下的一个开源项目,主要提供数据库连接池服务。数据库连接池在Java应用程序中扮演着重要的角色,它能够有效地管理数据库连接,提高应用性能并降低资源...

    数据库连接池jar包.zip

    Druid是一个高效、强大且功能丰富的数据库连接池实现,由阿里巴巴开源并维护。标题提到的"数据库连接池jar包.zip"显然包含了Druid数据库连接池的jar文件,供开发者在项目中使用。 `druid-1.0.15.jar` 是Druid连接池...

    数据库连接池~~~数据库连接池

    - **Apache DBCP**:Apache提供的数据库连接池,简单易用,适合小型项目。 - **HikariCP**:被誉为最快的JDBC连接池,设计目标是极低的延迟和优秀的性能。 - **Druid**:阿里巴巴开源的数据库连接池,功能强大,...

    druid1.2.8 下载 数据库连接池

    Druid是阿里巴巴开源的一个高性能、多功能的数据库连接池组件,它在Java开发中广泛应用于各种项目的数据库管理。在1.2.8版本中,Druid提供了一系列优化和改进,旨在提高数据库访问性能,增强监控能力,并简化数据库...

    数据库连接池选型

    数据库连接池在初始化时会创建一定数量的数据库连接,并将这些连接保存在一个池中。当应用需要与数据库交互时,不再直接创建新的连接,而是从连接池中获取一个已经存在的连接。使用完毕后,连接不被关闭,而是归还给...

    数据库连接池包

    在这个"数据库连接池包"中,包含的是c3p0数据库连接池的组件,这是一个开源的Java连接池实现,广泛用于Java应用程序中。让我们深入探讨一下c3p0以及它的主要功能和优势。 c3p0是一个成熟的、完全开源的JDBC连接池,...

    数据库连接池包(proxool.jar)

    在实际使用中,开发者可以根据项目的具体需求选择合适的数据库连接池实现,而Proxool作为一个成熟且易用的解决方案,对于初学者来说,是一个很好的学习和实践的起点。通过深入理解Proxool的原理和使用方法,不仅可以...

    DBCP数据库连接池

    DBCP(Database Connection Pool)是由Apache软件基金会提供的一个开源的数据库连接池实现,它是Commons DBCP项目的一部分,依赖于Commons Pool库来管理连接对象。本篇文章将深入探讨DBCP的原理、配置与使用方法。 ...

    数据库连接池的工作原理

    数据库连接池是现代应用程序开发中不可或缺的一个组件,它在提高系统性能、节省资源以及优化数据库操作方面发挥着关键作用。数据库连接池的工作原理涉及到多个层面,包括连接的创建与复用、连接池的管理以及性能优化...

    数据库连接池的三种方式

    C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。C3P0的特点包括: - 连接池大小动态调整:可以根据应用程序的需求动态调整连接池的大小。 - 自动检测并恢复失效的连接:...

    DBCP数据库连接池包下载

    DBCP(Database Connection Pool)是Apache软件基金会的一个开源项目,全称为Apache Commons DBCP,它是一个基于Java的数据库连接池实现。在Java应用程序中,DBCP被广泛用于管理数据库连接,以提高性能和资源利用率...

    mysql 数据库连接池

    MySQL数据库连接池是数据库管理中的一个重要概念,它在Linux环境下被广泛应用。数据库连接池是一种管理数据库连接的技术,通过预先创建并维护一定数量的数据库连接,为应用程序提供高效、可靠的数据库访问服务。它...

    c3p0和DBCP数据库连接池jar包和源码

    DBCP(Apache Commons DBCP)是Apache软件基金会的一个项目,它基于Jakarta Pool(现在的Commons Pool)来实现数据库连接池。commons-dbcp2-2.1.1.jar是DBCP2的运行时库,而commons-dbcp2-2.1.1-src提供了源码。DBCP...

    一个Demo小例子让你了解数据库连接池实现的4种方式

    1. **JdbcPool**:这是一个简单的自定义数据库连接池实现,通常用于教学或小型项目。它通过维护一个连接池,每当需要数据库连接时,就从池中获取,用完后归还。JdbcPool的基本思路是初始化时创建一定数量的数据库...

    dbcp.rar数据库连接池工具包

    数据库连接池是现代应用程序开发中不可或缺的一个组件,它在提高数据库访问效率、节省系统资源方面起着关键作用。本资源“dbcp.rar”提供了一个完整的数据库连接池工具包,适用于那些需要频繁与数据库交互的应用程序...

Global site tag (gtag.js) - Google Analytics