广告
返回顶部
首页 > 资讯 > 精选 >深入浅析Spring的数据库连接池
  • 915
分享到

深入浅析Spring的数据库连接池

spring数据库连接池 2023-05-31 15:05:40 915人浏览 八月长安
摘要

深入浅析spring的数据库连接池?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。数据库连接池对一个简单的数据库应用,由于对数据库的访问不是很频繁,这时可以简单地

深入浅析spring数据库连接池?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

数据库连接池

对一个简单的数据库应用,由于对数据库的访问不是很频繁,这时可以简单地在需要访问数据库时,就新创建一个连接,就完后就关闭它,这样做也不会带来什么性能上的开销。但是对于一个复杂的数据库应用,情况就完全不同而,频繁的建立、关闭连接,会极大地减低系统的性能,因为对于连接的使用成了系统性能的瓶颈。

通过建立一个数据库连接池以及一套连接使用管理策略,可以达到连接复用的效果,使得一个数据库连接可以得到安全、高效的复用,避免了数据库连接频繁建立、关闭的开销。

数据库连接池的基本原理是在内部对象池中维护一定数量的数据库连接,并对外暴露数据库连接获取和返回方法。如:外部使用者可通过getConnection方法获取连接,使用完毕后再通过releaseConnection方法将连接返回,注意此时连接并没有关闭,而是由连接池管理器回收,并为下一次使用做好准备。

数据库连接池技术带来的好处:

1、资源重用

由于数据库连接得到重用,避免了频繁创建、释放链接引起的大量性能开销。在减少系统消耗的基础上,另一方面也增进了系统运行环境的平稳性(减少内存碎片以及数据库临时进行/线程数量)

2、更快地系统响应速度

数据库连接池在初始化过程中,往往已经创建了若干数据库连接池置于池中备用。此时连接的初始化工作均已完成,对于业务请求处理而言,直接利用现有可用连接,避免了数据库连接初始化和释放过程的时间开销,从而缩减了系统整体响应时间

3、统一的连接管理,避免数据库连接泄露

在较为完备的数据库连接池实现中,可根据预先的连接占用超时设定,强制收回被占用连接,从而避免了常规数据库连接操作中可能出现的资源泄露。

目前数据库连接池产品是非常多的,主要有:

1、dbcp

dbcp,即DataBase Connection PoolApache出品,Spring开发组推荐使用的数据库连接池,开发较为活跃,是一个使用极为广泛的数据库连接池产品。不过从网上

2、c3p0

Hibernate开发组推荐使用的数据库连接池,它实现了数据源和JNDI的绑定

3、Proxool

Proxool的口碑较好,没什么负面评价(比如dbcp就是因为Hibernate认为它BUG太多Hibernate才不推荐使用的),也是Hibernate开发组推荐使用的数据库连接池,不过使用者不算多,开发不够活跃。这个连接池提供了连接池监控的功能,方便易用,便于发现连接池泄露的情况

基于Spring的JDBC基本框架搭建

先讲一下使用Spring实现JDBC,数据库连接池就用Spring开发组推荐的DBCP,DBCP需要三个jar包,先下载一下:

commons-dbcp-1.4.jar,官方网站上有,点我下载

commons.pool-1.6.jar,官方网站上有,点我下载

commons.collections4-4.0.jar,官方网站上有

下载了这三个jar包之后请导入自己的工程中(注意MySql的包别忘记导入了),虽然dbcp和pool都出了dbcp2和pool2的版本,Apache官网上都可以下载,但是这里提供的还是dbcp1和pool1的版本下载地址,一个原因是dbcp2和pool2都只可以在jdk1.7及JDK1.7以上的版本运行,而dbcp1和pool1则可以在JDK1.6的版本运行,考虑到MyEclipse10默认自带的JRE就是1.6版本的,所以这里下载、使用dbcp1和pool1。想要dbcp2和pool2的可以自己去Apache官网下载,不过要注意,dbcp2必须和pool2一组,dbcp1必须和pool1一组,不可以混着用。

JDBC,我之前写过一篇文章,数据库建立和实体类都是用的原文章里面的,这里只是把原生的JDBC搬到Spring JDBC下而已,看下最基础的写法,再添加功能,学生管理类为:

public class StudentManager{ private JdbcTemplate jdbcTemplate; private static StudentManager instance = new StudentManager(); public static StudentManager getInstance() { return instance; } public JdbcTemplate getJdbcTemplate() { return jdbcTemplate; } public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; }}

--结束END--

本文标题: 深入浅析Spring的数据库连接池

本文链接: https://www.lsjlt.com/news/226569.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 深入浅析Spring的数据库连接池
    深入浅析Spring的数据库连接池?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。数据库连接池对一个简单的数据库应用,由于对数据库的访问不是很频繁,这时可以简单地...
    99+
    2023-05-31
    spring 数据库连接池
  • JDBC获取数据库连接由浅入深
    添加MySQL驱动: 不同的数据库厂商都会有自己的实现java.sql.Driver接口的驱动程序,例如mysql的实现就是com.mysql.jdbc.Driver,将mysql-...
    99+
    2022-11-13
  • Spring数据库连接池实现原理实例分析
    这篇“Spring数据库连接池实现原理实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Spring数据库连接池实现原理...
    99+
    2023-07-04
  • 浅析node连接数据库(express+mysql)
    操作是在ubuntu系统的下环境,简单记录一下过程。 首先用apt-get安装数据库,键入命令 sudo apt-get install mysql-server , 一路回车,然后在一个界面设置一下数据库...
    99+
    2022-06-04
    连接数据库 node mysql
  • Express连接MySQL及数据库连接池的示例分析
    这篇文章主要介绍Express连接MySQL及数据库连接池的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Express连接MySQL准备工作打开webstorm新建项目选择express创建一个expres...
    99+
    2023-06-29
  • 浅谈一下数据库连接池Druid德鲁伊
    目录JDBC数据库连接池的必要性 数据库连接池技术工作原理: 数据库连接池技术的优点多种开源的数据库连接池Druid(德鲁伊)数据库连接池JDBC数据库连接池的必...
    99+
    2023-05-19
    数据库连接池 Druid 数据库连接池德鲁伊
  • 深入探究Python底层技术:如何实现数据库连接池
    深入探究Python底层技术:如何实现数据库连接池引言:在现代的应用程序开发中,数据库是不可或缺的一部分。而对于数据库的连接和管理,连接池是一种非常重要的技术。本文将深入探讨如何在Python中实现一个简单的数据库连接池,并提供具体的代码示...
    99+
    2023-11-08
    实现方法 数据库连接池 Python底层技术
  • Spring数据库连接池url参数踩坑及解决
    目录Spring数据库连接池url参数踩坑遇到的问题报错情况解决修改数据库连接池的url后,还是连接原先的url问题例如Spring数据库连接池url参数踩坑 遇到的问题 报错情况...
    99+
    2022-11-12
  • Java数据库连接池之DBCP浅析_动力节点Java学院整理
    一. 为何要使用数据库连接池假设网站一天有很大的访问量,数据库服务器就需要为每次连接创建一次数据库连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出、拓机。数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体...
    99+
    2023-05-31
    java 数据库连接池 dbcp
  • Java数据库连接池技术的入门教程
    池(Pool)技术在一定程度上可以明显优化服务器应用程序的性能,提高程序执行效率和降低系统资源开销。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库...
    99+
    2022-11-11
  • python数据库连接池中数据库连接池技术的优点是什么
    本篇文章给大家分享的是有关python数据库连接池中数据库连接池技术的优点是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。昨天测试了一下开500个线程去请求数据库,不过这个...
    99+
    2023-06-17
  • 数据库连接池的原理?连接池使用什么数据结构实现?实现连接池?
    早期我们怎么进行数据库操作呢? 1、原理:一般来说,Java应用程序访问数据库的过程是: 加载数据库驱动程序; 通过jdbc建立数据库连接; 访问数据库,执行SQL语句; 断开数据库连接。 2、代码 1 //查询所有用户 ...
    99+
    2015-09-26
    数据库连接池的原理?连接池使用什么数据结构实现?实现连接池?
  • golang中mysql数据库连接池的示例分析
    这篇文章主要介绍golang中mysql数据库连接池的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!golang的优点golang是一种编译语言,可以将代码编译为机器代码,编译后的二进制文件可以直接部署到目标...
    99+
    2023-06-15
  • Java操作数据库连接池实例分析
    这篇文章主要介绍“Java操作数据库连接池实例分析”,在日常操作中,相信很多人在Java操作数据库连接池实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java操作数据库连接池实例分析”的疑惑有所帮助!...
    99+
    2023-06-20
  • java 中数据库连接的JDBC和驱动程序的深入分析
    java 中数据库连接的JDBC和驱动程序的深入分析理解:java应用程序与数据库建立连接时,先通过jdbc(jdbc是属于jdk带有的)与数据库厂商提供的驱动程序通信,而驱动程序再与数据库通信。数据库厂商提供的驱动程序:数据库的种类有多种...
    99+
    2023-05-31
    java jdbc 驱动程序
  • 深入浅析Python数据分析的过程记录
    目录一、需求介绍二、以第1、个为例进行数据分析1、获取一天的数据2、开始一天的数据的分析3、循环日期进行多天的数据分析:4、将数据写入Excel表格中三、完整的代码展示:总结一、需求...
    99+
    2022-11-12
  • C#数据库连接池的创建
    本篇内容主要讲解“C#数据库连接池的创建”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#数据库连接池的创建”吧!使用C#数据库连接池连接到数据库服务器通常由几个需要软长时间的步骤组成。必须建立...
    99+
    2023-06-18
  • 深入浅析Java的数据结构中的图
    本篇文章为大家展示了深入浅析Java的数据结构中的图,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1,摘要:从数据的表示方法来说,有二种表示图的方式:一种是邻接矩阵,其实是一个二维数组;一种是邻接表...
    99+
    2023-05-31
    java 数据结构
  • Spring事务管理中关于数据库连接池详解
    目录Spring事务管理环境搭建标准配置声明式事务总结SqlSessionFactoryXML中构建SqlSessionFactory获得SqlSession的实例代码实现作用域(S...
    99+
    2022-12-09
    Spring数据库连接池 Spring事务管理
  • 深入浅析java中的数据处理机制
    这篇文章给大家介绍深入浅析java中的数据处理机制,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。MyFile .java:import java.io.BufferedReader;import java.io.Fil...
    99+
    2023-05-31
    java 数据处理机制 ava
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作