jdbc和数据库连接池_常用的数据库连接池

jdbc和数据库连接池_常用的数据库连接池数据库连接池JDBC数据库连接池的必要性在使用开发基于数据库的web程序时,传统的模式基本是按照以下步骤:在主程序(如servlet beans)中建立数据库连接进行sql操作断开数据库连接这种模式开发,存在的问题:普通的JDBC数据库连接使用DriverManager来获取,每次向数据库建立连接的时候都要将Connection加载到内存中,再验证用户名和密码(大概花费0.05s-1s),需要数据库连接的时候,就向数据库要求一个,执行完成后再断开。这样的方式将会消耗大量的时间。数据库的

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

数据库连接池


JDBC数据库连接池的必要性
在使用开发基于数据库的web程序时,传统的模式基本是按照以下步骤:

  1. 在主程序(如servlet beans)中建立数据库连接
  2. 进行sql操作
  3. 断开数据库连接

这种模式开发,存在的问题:

  • 普通的JDBC数据库连接使用DriverManager来获取,每次向数据库建立连接的时候都要将Connection加载到内存中,再验证用户名和密码(大概花费0.05s-1s),需要数据库连接的时候,就向数据库要求一个,执行完成后再断开。这样的方式将会消耗大量的时间。数据库的连接资源并没有得到很好地利用。
  • 对于每一次数据库连接,使用完后都得断开。否则,如果程序出现异常而未能关闭,将会导致数据库系统中的内存泄露,最终将导致重启数据库。
  • 这种开发不能控制被创建的连接对象数,系统资源会被毫不顾忌的分配出去,如连接过多,也可能导致内存泄露,服务器崩溃。

数据库 连接池技术
基本思想:为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕后再放回去。
数据库连接池负责分配,管理和释放数据库连接。它允许应用程序使用一个现有的数据库连接,而不是重新建立一个。

JDBC的数据库连接池使用DataSource来表示,DataSource只是一个接口。该接口通常由服务器提供实现,也有一些开源组织提供实现。

数据库连接池的优点
在这里插入图片描述


DBCP C3P0 Druid是主要的三个数据库连接池技术


c3p0

package com.atguigu4.connection;

import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.mchange.v2.c3p0.DataSources;
import org.junit.Test;

import java.sql.Connection;

public class C3P0Test { 
   
    @Test
    public void testGetConnection() throws Exception{ 
   
        //获取c3p0数据库连接池
        ComboPooledDataSource cpds = new ComboPooledDataSource();
        cpds.setDriverClass("com.mysql.jdbc.Driver");
        cpds.setJdbcUrl("jdbc:mysql://localhost:3306/test");
        cpds.setUser("root");
        cpds.setPassword("924930871111");
        //设置初始时数据库连接池中的连接数
        cpds.setInitialPoolSize(10);

        Connection connection = cpds.getConnection();
        System.out.println(connection);
        //销毁c3p0连接池
        DataSources.destroy(cpds);
    }
}

配置文件


    <!-- 配置c3p0的基本信息 -->
    <named-config name="helloc3p0">
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/mydb1</property>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="user">root</property>
        <property name="password">123</property>
        <!--当数据库连接池中的连接数不够时,c3p0一次性向数据库服务器申请的连接数-->
        <property name="acquireIncrement">3</property>
        <!--c3p0初始化时的连接数-->
        <property name="initialPoolSize">10</property>
        <property name="minPoolSize">2</property>
        <property name="maxPoolSize">10</property>
        <!--连接池最多维护的Statement个数-->
        <property name="maxStatements">50</property>
        <!--每个连接中最多可以使用的Statement的个数-->
        <property name="maxStatementsPerConnection">2</property>
    </named-config>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/168820.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Linux系统如何解压rar文件

    Linux系统如何解压rar文件1、下载linux版本的rar软件访问官方地址下载最新版本的linux版本rar软件2、解压下载好的安装文件tar-xzpvfrarlinux-x64-610b2.tar.gz3、编译安装进入解压后的rar文件夹,执行make命令cdrarmake4、使用rar命令解压压缩文件rarxdist.rar或者使用unrar命令unraredist.rar5、压缩文件命令raraetc.ra…

  • 在关系数据库设计理论中_数据库关系理论

    在关系数据库设计理论中_数据库关系理论一、关系模式    1、关系模式:是对一个关系的描述    2、关系模式的一般形式:R(U,D,DOM,F)       R ==>关系名     

    2022年10月10日
  • 常用电平转换电路的方法有_双击电平转换单级电路

    常用电平转换电路的方法有_双击电平转换单级电路电平转换在电路应用中屡见不鲜,方案设计也是五花八门,本文中整理了一些常见的电平转换电路,区别于成本功耗等因素的不同适用于不同的应用场景,读者可以用作参考,根据实际项目需求加以更改。1、上拉电阻加二极管方案(低成本)本方案适用于输入信号电平大于输出信号电平的转换电路上2、适用于输入信号大于输出信号的电平转换电路上,三极管选型要求:PNP三极管的饱和压降尽可能小,否则可能导致转换异常3、适用于大部分应用场景。属于典型应用。很多模块设计上都会采用这样的方案,成本低,而且转换的可靠性好4、2级反相

  • pycharm如何修改背景颜色_如何设置幻灯片背景颜色为自定义

    pycharm如何修改背景颜色_如何设置幻灯片背景颜色为自定义Pycharm可以通过设置主题来设定背景颜色,但主题的背景颜色也仅仅局限特定的几种,通过如下的方式可以自定义背景颜色。File——Settings——Editor——General——(右侧上方的框框)Text——Defaulttext——选右侧的Background就可以设置背景色了。图中的灰色背景RGB是192,192,192。 …

  • JDK安装与配置详细图文教程

    JDK安装与配置详细图文教程JDK安装与配置详细图文教程   目的:本人健忘,以后难免会重装系统啥的,软件卸了装是常有的事,特此写此详细教程,一是方便自己以后重装的时候可以看看;二是如果有某位初学者有幸光临,也可以给一点参照。下面我会从JDK的下载、安装、环境变量的配置和其中的一些问题进行详细说明,Letgo!一、下载JDK是个免费的东东,所以大家不要去百度啥激活成功教程版了,直接去官网下载最新版本吧,比较安全,官网

  • 一个空间主机安装多个网站的方法

    一个空间主机安装多个网站的方法

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号