资源池(Resource Pool)
针对共享资源,为了解决资源的频繁分配和释放所产生的问题。
连接池基本思想
是为数据库连接建立一个缓存池。预先在缓冲池放入一定数量的连接,当需要建立数据库连接时,只需从缓存池从取出一个连接,使用完毕之后放回去。
连接池关键问题
1. 并发问题
2. 多数据库服务器和多用户
建立单例模式的连接池管理类,用Map<连接池名称, 连接池对象>管理。
3. 事务处理
ALL-ALL-NOTHING 原则,即对一组sql要么全做,要么全不做。
4. 连接池的分配和释放
空闲池,提供连接给需要连接的程序,存放未被使用的连接,回收被使用完的连接。
超过最大连接数要等待一定时间timeout.
5. 连接池的配置和维护
最小连接数是系统启动时所创建的连接数。如果创建过多,则系统启动就慢,但创建后系统的响应速度会很快;
如果创建过少,则系统启动的很快,响应起来就慢。最小连接数在开发时设小一点,服务器启动比较快。
连接池实现模型
连接池类(DBConnectionPool)
1. 从连接池获取或创建可用连接
2. 使用完毕后,把连接返还给连接池
3. 在系统关闭前,断开所有连接并释放连接占用的系统资源
4. 处理无效连接(原来标记为可用,由于某种原因不可用,如超时、通讯等)
5. 限制连接池的连接总数不低于预置的最低连接数和不高于最高连接数
连接池管理类(DBConnectionPoolManager)
1. 是连接池的包装类(wrapper)符合单例模式,即一个系统只有一个连接池管理类实例
2. 装载并注册特定数据库的JDBC驱动程序
3. 根据配置文件信息创建连接池对象
4. 为方便管理多个连接池对象,为每个连接池对象取一个名字,建立<名称,对象>Map映射
5. 跟踪客户的使用连接情况,以便需要时关闭连接释放资源
分享到:
相关推荐
** BoneCP 连接池学习笔记 ** BoneCP 是一个高效、轻量级的 Java 数据库连接池(JDBC Connection Pool)实现。它在性能上优于其他同类连接池,如 C3P0 和 DBCP,尤其适用于高并发场景。在深入理解 BoneCP 之前,...
这篇“DBCP 数据库连接池JNDI连接 学习笔记”主要探讨了如何结合JNDI(Java Naming and Directory Interface)来使用DBCP进行数据库连接管理。JNDI提供了一种标准的方式来查找和绑定资源,如数据源,在企业级应用中...
通过这份"Tomcat5.5连接池配置案例",新手可以系统学习并掌握如何在Tomcat环境中配置和使用连接池,提升应用的数据库访问效率。同时,案例笔记将帮助理解每个步骤背后的原理和最佳实践,从而更好地应对实际开发中的...
JDBC学习笔记 JDBC(Java DataBase Connectivity)是一种Java程序语言访问数据库的标准接口。它使得Java程序可以连接到各种不同的数据库管理系统,例如Oracle、SQL Server、MySQL、DB2、Sybase等。 JDBC的概念 ...
【JAVA WEB学习笔记】——Tomcat中数据源的配置与使用 在Java Web开发中,数据源(DataSource)是管理数据库连接的关键组件。它提供了一种高效、灵活的方式来获取和管理数据库连接,尤其是在大型企业级应用中。...
“很好的Jabc学习笔记”这个资料主要涵盖了JDBC的基础知识,包括如何连接数据库、使用连接池以及基本的异常处理。对于初学者来说,这是了解和掌握Java与数据库交互的一个良好起点。通过深入学习和实践,你可以更好地...
6. **Java Database Connectivity (JDBC)**:JDBC 4.0引入了一些新特性,如自动连接池管理、统一的异常处理和增强的驱动程序元数据。 7. **Web服务支持**:Java API for RESTful Web Services (JAX-RS) 1.0的引入,...
C++学习笔记和实践项目,实践项目包括Json工具类、设计模式的C++实现、消息队列、智能指针,linux下的并发控制工具、线程池,epoll管理器和Mysql连接池、STL容器的快捷输出工具和页面置换算法(FIFO, LRU, LFU)的...
这篇学习笔记将深入探讨Druid的核心特性、优势以及实际应用。 一、Druid的特性 1. 高效的连接池:Druid设计了一系列优化策略,如连接池的预分配、空闲连接检测、连接有效性检查等,确保了在高并发场景下的稳定性和...
### JSP 二期学习笔记(北大青鸟二期学习) #### JSP 二期学习概述 本学习笔记主要记录了在北大青鸟进行的JSP二期培训过程中所学到的关键知识点和技术细节。JSP(JavaServer Pages)是一种基于Java的技术,用于...
**JDBC学习笔记** 在Java开发中,JDBC(Java Database Connectivity)是连接数据库的关键技术。它是Java API,允许Java程序与各种类型的数据库进行交互。本笔记将深入探讨JDBC的核心概念、工作原理以及实际应用。 ...
通过JDBC,开发者可以控制事务处理,实现数据库连接池,提升应用性能。 **Hibernate**是一个优秀的对象关系映射(ORM)框架,它简化了Java应用与数据库之间的交互。Hibernate通过映射XML文件或注解,将Java类与...
- 数据库连接池的配置和使用 - 事务管理的实现 - Spring Boot的快速开发特性 - Spring Security的基本配置和权限控制 - Spring Batch的批处理操作 配合源码,你可以更直观地了解这些概念如何在实际项目中运用,加深...
【张龙S2SH学习笔记(经典)】是基于圣思园张龙的视频教程整理出的学习资料,主要涵盖了Struts2、Spring和Hibernate这三大框架的整合使用,也就是我们常说的SSH(Spring、Struts2、Hibernate)框架集成。SSH框架在...
它常用于控制资源的共享,如数据库连接池。 2. **工厂模式**:提供一个接口来创建一系列相关或相互依赖的对象,而无需指定它们的具体类。这提高了代码的灵活性和可扩展性。 3. **抽象工厂模式**:它是工厂模式的...
### Spring Boot 学习笔记概览 #### 一、Spring 的发展历程 1. **Spring 1.x 时代:** - 在Spring框架发展的初期(即Spring 1.x时代),主要采用XML作为配置文件来管理Bean的声明周期。这种方式在项目规模较小的...
### 传智播客JDBC学习笔记精要 #### JDBC简述与连接 ...综上所述,传智播客的JDBC学习笔记涵盖了从基础的数据库连接到高级的事务管理、连接池优化等多个层面的内容,是Java开发者学习和掌握JDBC技术的重要参考资料。
5. 性能优化:包括减少网络开销、缓存策略、连接池等。 六、RPC测试 在实际开发中,对RPC服务的测试至关重要,包括功能测试、性能测试和压力测试。例如,模拟高并发场景,验证服务的稳定性和吞吐量。 总结,RPC是...
### 虚拟化的学习笔记 #### 虚拟化概述与重要性 虚拟化是一种技术,它允许在单一物理机器上运行多个独立的操作系统实例(即虚拟机),从而提高资源利用率并降低总体拥有成本。虚拟化技术已经成为现代数据中心的...