数据库连接池和软件设计分层模式
数据库连接池
1.什么是连接池 (connection pool)连接池
在没有接触到连接池的时候,我们都是重复的去和数据库进行连接,打开资源,关闭资源,这样特别的繁琐。性能特别低,特别是在多用户访问的情况下。
连接池负责与数据库进行连接不用重复进行打开资源和关闭资源,大大提高了程序的性能。连接池的最小连接数是由最小的数据库数量来定的。当应用程序
连接数量超过了连接池的最大数量,则被加入等待队列。
用户是怎么拿连接的?
当用户去连接池拿连接的时候,连接池会向一个空闲池放入连接,如果空闲池有连接,用户直接拿空闲池中的连接,如果没有,则连接池看有没有超过连接池连接的
最大数量,如果没有超过则创建一条连接给用户,如果超过则用户连接处于等待队列。。
2.数据源与连接池
数据源一组特性用于确定和描述他所表示的现实存在的数据源,数据源可以创建一些数据保存到连接池中,java程序直接可以在连接池中拿空闲的连接。
数据源其实现负责建立与数据库的连接。
软件设计分层模式
1.三层架构 (分层用的最多的是三层架构,如果项目复杂也可以增加层!)
表示层:使用户可以直接访问,可以接受用户的数据,和显示数据。一般表示层都是jsp文件、html文件。
数据访问层:Dao层,用于对数据库的访问、连接。实现对数据的保存和读取操作。
业务逻辑层:提供对业务逻辑处理的封装,表示层可以调用业务逻辑层的一些接口实现各种操作。
2.层与层之间的关系
三层之间互相依赖,表示层依赖业务逻辑层去实现各种操作,业务逻辑层依赖于数据访问层,一些功能代码基本都写在数据访问层(DAO层)。
3.分层原则 如上图:
01.上一层依赖下一层,依赖关系不夸层
表示层依赖业务逻辑层,业务逻辑层依赖于数据访问层。
02.下一层不能调用上一层
业务逻辑层不能调用表示层,数据访问层不能调用业务逻辑层。
03.下一层不依赖上一层
数据访问层不依赖与业务逻辑层。
04.在上一层中不能出现下一层的概念
在表示层不会出现业务逻辑层的概念,在业务逻辑层也不会出现数据访问层的概念。
4.分层实现
我们将业务逻辑处理的代码提取出来并进行了封装,在JSP页面找不到与数据库访问有关的信息。各层发挥出了不同的功能。页面展示、业务处理、数据访问。有了分层写代码更加的明确清晰。