当前位置: 首页 > news >正文

数据库连接池和软件设计分层模式

数据库连接池

1.什么是连接池 (connection pool)连接池


在没有接触到连接池的时候,我们都是重复的去和数据库进行连接,打开资源,关闭资源,这样特别的繁琐。性能特别低,特别是在多用户访问的情况下。
连接池负责与数据库进行连接不用重复进行打开资源和关闭资源,大大提高了程序的性能。连接池的最小连接数是由最小的数据库数量来定的。当应用程序
连接数量超过了连接池的最大数量,则被加入等待队列。
用户是怎么拿连接的?
当用户去连接池拿连接的时候,连接池会向一个空闲池放入连接,如果空闲池有连接,用户直接拿空闲池中的连接,如果没有,则连接池看有没有超过连接池连接的
最大数量,如果没有超过则创建一条连接给用户,如果超过则用户连接处于等待队列。。
2.数据源与连接池
数据源一组特性用于确定和描述他所表示的现实存在的数据源,数据源可以创建一些数据保存到连接池中,java程序直接可以在连接池中拿空闲的连接。
数据源其实现负责建立与数据库的连接。

软件设计分层模式
1.三层架构 (分层用的最多的是三层架构,如果项目复杂也可以增加层!)
表示层:使用户可以直接访问,可以接受用户的数据,和显示数据。一般表示层都是jsp文件、html文件。
数据访问层:Dao层,用于对数据库的访问、连接。实现对数据的保存和读取操作。
业务逻辑层:提供对业务逻辑处理的封装,表示层可以调用业务逻辑层的一些接口实现各种操作。
2.层与层之间的关系
三层之间互相依赖,表示层依赖业务逻辑层去实现各种操作,业务逻辑层依赖于数据访问层,一些功能代码基本都写在数据访问层(DAO层)。

 


3.分层原则 如上图:
01.上一层依赖下一层,依赖关系不夸层
表示层依赖业务逻辑层,业务逻辑层依赖于数据访问层。
02.下一层不能调用上一层
业务逻辑层不能调用表示层,数据访问层不能调用业务逻辑层。
03.下一层不依赖上一层
数据访问层不依赖与业务逻辑层。
04.在上一层中不能出现下一层的概念
在表示层不会出现业务逻辑层的概念,在业务逻辑层也不会出现数据访问层的概念。
4.分层实现
我们将业务逻辑处理的代码提取出来并进行了封装,在JSP页面找不到与数据库访问有关的信息。各层发挥出了不同的功能。页面展示、业务处理、数据访问。有了分层写代码更加的明确清晰。

 

转载于:https://www.cnblogs.com/java-263/p/9836147.html

相关文章:

  • 英语
  • 蓝牙的Baseband说明
  • 摩斯码编解码器
  • 四则运算“软件”之升级版
  • DOM & BOM
  • Javascript中局部变量和全局变量还有闭包的概念
  • 10.25 饮食
  • sticky
  • python面向对象的双下滑线方法
  • cf1000C Covered Points Count (差分+map)
  • 调试ucosii_pendsv中断函数有感
  • android-音量管理
  • python进阶之函数和类内建魔法属性
  • 10-28质量监控平台图形化
  • Linux下卸载安装jdk
  • 0基础学习移动端适配
  • 2017-09-12 前端日报
  • Apache的80端口被占用以及访问时报错403
  • JavaScript创建对象的四种方式
  • jquery ajax学习笔记
  • k个最大的数及变种小结
  • Node 版本管理
  • SpriteKit 技巧之添加背景图片
  • Twitter赢在开放,三年创造奇迹
  • 产品三维模型在线预览
  • 程序员最讨厌的9句话,你可有补充?
  • 二维平面内的碰撞检测【一】
  • 什么软件可以剪辑音乐?
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 使用权重正则化较少模型过拟合
  • 在Mac OS X上安装 Ruby运行环境
  • 在weex里面使用chart图表
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • 国内开源镜像站点
  • 数据库巡检项
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • $.ajax()
  • (Java数据结构)ArrayList
  • (二)linux使用docker容器运行mysql
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (算法)Game
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转)http协议
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)jQuery 基础
  • (转)shell调试方法
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET Core 中插件式开发实现
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)