MySQL连接池、C3P0、Druid德鲁伊连接池技术

news2024/11/18 15:36:03

MySQL连接池

        • 连接池
          • C3P0
          • Druid

连接池
  1. 概念:其实就是一个容器(集合),存放数据库连接的容器。当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。
  2. 好处:
    1. 节约资源
    2. 用户访问高效

导包,在总项目名下创建lib用于存放jar包(这一步C3P0和Druid都相同)具体的jar包名各自中查看:

在这里插入图片描述

C3P0

c3p0两个jar包

在这里插入图片描述

将配置文件复制到src目录下,必须在src下:

在这里插入图片描述

xml文件内容:

<c3p0-config>
  <!-- 使用默认的配置读取连接池对象 -->
  <default-config>
  	<!--  连接参数 -->
    <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/库名?serverTimeZone=GMT</property>
    <property name="user">root</property>
    <property name="password">123456</property>
    
    <!-- 连接池参数 -->
    <property name="initialPoolSize">5</property>
    <property name="maxPoolSize">10</property>
    <property name="checkoutTimeout">3000</property>
  </default-config>

  <named-config name="otherc3p0"> 
    <!--  连接参数 -->
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/day25</property>
    <property name="user">root</property>
    <property name="password">root</property>
    
    <!-- 连接池参数 -->
    <property name="initialPoolSize">5</property>
    <property name="maxPoolSize">8</property>
    <property name="checkoutTimeout">1000</property>
  </named-config>
  
</c3p0-config>

java代码:

package com.li.test;

import java.sql.Connection;
import java.sql.SQLException;

import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class Test_c3p0 {
	public static void main(String[] args) throws SQLException {
    //1.创建数据库连接池对象
		DataSource ds = new ComboPooledDataSource();
        //2. 获取连接对象
		Connection conn = ds.getConnection();	
        
        //...使用
        
        //关闭连接归还线程池中
		conn.close();
	}
}
Druid

druid的一个jar包

在这里插入图片描述

导入配置文件(案例来说是自己通过流来读,一次放在什么地方都可以,但是建议放在src下):

在这里插入图片描述

配置文件中的内容:

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/myschool?serverTimezone=GMT
username=root
password=123456
initialSize=5
maxActive=10
maxWait=3000
validationQuery=SELECT 1
testWhileIdle=true
testOnBorrow=false
testOnReturn=false
poolPreparedStatements=false

java代码:

public static void main(String[] args) throws Exception {
		
    	//加载配置文件
		FileInputStream stream = new FileInputStream("./src/druid.properties");
		Properties pro = new Properties();
		pro.load(stream);
		//获取连接池对象
		DataSource ds = DruidDataSourceFactory.createDataSource(pro);
		//获取连接
		Connection conn = ds.getConnection();
		System.out.println(conn);
		//关闭资源
		conn.close();
	}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1371620.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

怎么样检查自己系统上的Python环境中是否有某个包(扩展库)?

比如我们这里想看下有没有库pytz 很简单&#xff0c;进入Python的命令行&#xff0c;然后输入下面的命令&#xff1a; import pytz如果有这个库&#xff0c;则不会报错&#xff0c;否则会报错。 Windows的测试结果如下&#xff1a; Centos的测试结果如下&#xff1a;

Linux中vim查看文件某内容

一、编辑文件命令 [rootyinheqilin ~]# vim test.txt 1&#xff0c;在编辑的文件中连续按2次键盘的【g】键&#xff0c;光标会移动到文档开头第一行 2&#xff0c;输入一个大写 G&#xff0c;光标会跳转到文件的最后一行第一列&#xff08;末行) 二、查看文件内容命令 gre…

改善制造业客户体验的实用技巧与策略

制造业是一个关键行业&#xff0c;在经济中发挥着至关重要的作用。它负责为我们的日常生活生产必需品和服务。然而近年来&#xff0c;该行业发生了重大变化&#xff0c;企业现在面临着日益激烈的竞争和满足消费者需求的压力。为了保持竞争力&#xff0c;制造商必须专注于打造更…

算法通关村番外篇-LeetCode编程从0到1系列二

大家好我是苏麟 , 今天来说LeetCode编程从0到1系列二 . 内置函数 最后一个单词的长度 描述 : 给你一个字符串 s&#xff0c;由若干单词组成&#xff0c;单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子…

PHP大型企业人才招聘网站源码带文字安装教程

PHP大型企业人才招聘网站源码带文字安装教程 运行环境 服务器宝塔面板 PHP 5.6 Mysql 5.5及以上版本 Linux Centos7以上 功能说明&#xff1a; 会员模块包括企业管理、职位管理、名企管理、企业认证审核、 企业设置。内容模块包括新闻管理、新闻类别、新闻属性、添加新闻。 运营…

海外云手机:一机多用,引领跨境电商新潮流

如今&#xff0c;跨境卖家除了经营跨境平台外&#xff0c;还需抓住短视频和社交媒体的机遇。在社交媒体上实现引流&#xff0c;将流量导向自己的跨境平台或独立站&#xff0c;吸引用户购买&#xff0c;完成流量变现&#xff0c;已成为跨境电商的一项关键策略。本文将介绍如何用…

获取深层次字段报错TypeError: Cannot read properties of undefined (reading ‘title‘)

动态生成菜单时报错,不能多层获取路由meta下面的title字段 <template><p>{{ meneList }}</p><template v-for"item in meneList" :key"item.path"><el-menu-item v-if"!item.children"><template #title>{…

【Tomcat】在一台计算机上运行两个Tomcat服务

首先把Tomcat整个文件复制一份放在其他文件夹路径中 1.修改环境变量 添加环境变量在系统变量里面 “CATALINA_HOME” 指向一个Tomcat文件夹路径 “CATALINA_HOME1” 指另一个Tomcat文件夹路径 2.修改startup里面的环境变量&#xff0c;全部修改 分别修改两个apache-tomcat…

教你用SadTalker一键整合包轻松制作专属数字人

数字人的效果&#xff1a; &#x1f3b5;我用SadTalker制作了专属虚拟数字人&#xff0c;还会唱歌哦&#xff0c;多多点赞关注就出教程呦&#x1f497; SadTalker有独立离线版Ai数字人&#xff0c;也可以在Stable Diffusion以插件的形式使用&#xff0c;但是如果显卡小的话还是…

水经微图安卓版APP正式上线!

在水经微图APP&#xff08;简称“微图APP”&#xff09;安卓版已正式上线&#xff01; 在随着IOS版上线约一周之后&#xff0c;安卓版终于紧随其后发布了。 微图安卓版APP下载安装 自从IOS版发布之后&#xff0c;就有用户一直在问安卓版什么时候发布&#xff0c;这里非常感谢…

PHP Web应用程序中常见漏洞

一淘模板&#xff08;56admin.com)发现PHP 是一种流行的服务器端脚本语言&#xff0c;用于开发动态 Web 应用程序。但是&#xff0c;与任何其他软件一样&#xff0c;PHP Web 应用程序也可能遭受安全攻击。 在本文中&#xff0c;我们将讨论 PHP Web 应用程序中一些最常见的漏洞…

计算机网络——应用层(2)

计算机网络——应用层&#xff08;2&#xff09; 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) Web和HTTP概念解读HTTPHTTP请求和响应包含内容常见的请求方法Web缓存优点缺点 总结 DNS提供的服务 小程一言 我的计算机网络专栏&#xff0c;是自己在计算机网络学习过程…

std::numeric_limits::max()编译错误问题解决

在使用numeric_limits的max最大值时&#xff0c;报 替换成下面就可以了 (numeric_limits::max)()

IPv6路由协议---IPv6动态路由(OSPFv3-6)

OSPFv3链路状态通告类型 Link-LSA(8类LSA) Link-LSA每个连接的链路都产生一条Link LSA,该LSA的泛洪范围只在链路范围内。 Link-LSA的作用: 向该链路上其他路由器通知本地的link-local地址,即到本地的下一跳地址。 收集本路由器在该链路上配置的所有的IPv6前缀,并通知该…

element的Table表格组件树形数据与懒加载简单使用

目录 1. 代码实现2. 效果图3. 解决新增、删除、修改之后树节点不刷新问题。&#xff08;[参考文章](https://blog.csdn.net/weixin_41549971/article/details/135504471)&#xff09; 1. 代码实现 <template><div><!-- lazy 是否懒加载子节点数据 --><!-…

anaconda创建虚拟环境启动jupyter notebook

1.进入虚拟环境 &#xff08;以环境名为py37_pytorch1.9为例&#xff09; 创建虚拟环境: conda create -n py37_pytorch1.9 python3.7 查看已经创建的虚拟环境&#xff1a; ​​​​​​​conda env list 切换/进入环境&#xff1a; conda activate py37_pytorch1.9 删除环…

Verifiable Credentials可验证证书 2023 终极指南

1. 引言 Dock公司为去中心化数字身份领域的先驱者&#xff0c;其自2017年以来&#xff0c;已知专注于构建前沿的可验证证书&#xff08;Verifiable Credentials&#xff09;技术。本文将阐述何为电子证书、电子证书工作原理、以及其对组合和个人的重要性。 伪造实物证书和数字…

思迈特2023 年度回顾:这一年,在不确定的时代里做好正确的事

2023年&#xff0c;思迈特的成长离不开您的相伴❤️2024年&#xff0c;思迈特愿与君携手&#xff0c;让数据创造更大的价值&#xff0c;让经营决策更智能&#xff01;

c语言:输入成绩,统计不及格人数|练习题

一、题目 输入学生成绩&#xff0c;统计不及格的学生人数 二、代码截图【带注释】 三、源代码【带注释】 #include <stdio.h> //题目&#xff1a;输入成绩&#xff0c;统计不及格人数 //思考分析 //1、由于学生人数是未知数&#xff0c;所以可以在输入时&#xff0c;以0…

浙大恩特客户资源管理系统 CrmBasicAction.entcrm任意文件上传

产品介绍 浙大恩特客户资源管理系统是一款针对企业客户资源管理的软件产品。该系统旨在帮助企业高效地管理和利用客户资源&#xff0c;提升销售和市场营销的效果。 漏洞描述 浙大恩特客户资源管理系统 fcrmbasicaction接口存在任意文件上传漏洞。攻击者可通过该漏洞在服务器…