数据库连接池和JDBCTemplate介绍

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 数据库连接池和JDBCTemplate介绍

1.数据库连接池

(1)概念:其实就是一个容器(集合),存放在数据库连接的容器    

当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器

(2)好处:

节约资源用户访问高效

(3)实现:

1.标准的接口:DataSource       javax.sql包下的

方法:获取连接:getConnection()
归还连接:Connection.close()如果连接对象Connection是从连接池中获取的,那么调用Connection.close()方法,则不会再关闭连接了,而是归还连接

2.一般我们不去实现他,有数据库厂商来实现

a.C3P0:数据库连接池技术b.Druid:数据库连接池实现技术,由阿里巴巴提供的

4)C3P0:数据库连接池技术

步骤:

1.倒入jar包(两个)   c3p0-0.9.1.2.jar     machange-commons-java-0.2.15.jar(不要忘记导入数据库驱动jar包)

2.定义配置文件

a.名称:c3p0.properties或者c3p0-config.xmlb.路径:直接将配置文件放在src目录下即可c.创建核心对象(数据库连接池对象;ComboPooledDataSource)d.获取连接:getConnection

配置文件书写方式

<?xmlversion="1.0"encoding="utf-8"?><c3p0-config><!--命名的配置--><default-config><!--连接数据库的4项基本参数--><propertyname="driverClass">com.mysql.cj.jdbc.Driver</property><!--&amp;表示的意思--><propertyname="jdbcUrl">jdbc:mysql://localhost:3306/news?serverTimezone=UTC&amp;useSSL=false</property><propertyname="user">root</property><propertyname="password">root</property><!--如果池中数据连接不够时一次增长多少个--><propertyname="acquireIncrement">5</property><!--初始化连接数--><propertyname="initialPoolSize">5</property><!--最小连接数--><propertyname="minPoolSize">5</property><!--最大连接数--><propertyname="maxPoolSize">40</property><!--JDBC的标准参数,用以控制数据源内加载的PrepareStatements数量--><propertyname="maxStatements">200</property><!--连接池内单个连接所拥有的最大缓存statements数--><propertyname="maxStatementsPerConnection">5</property></default-config><!--自定义配置(指定名称配置)--><named-configname="test1"><!--连接数据库的4项基本参数--><propertyname="driverClass">com.mysql.jdbc.Driver</property><propertyname="jdbcUrl">jdbc:mysql://localhost:3306/news?serverTimezone=UTC&amp;useSSL=false</property><propertyname="user">root</property><propertyname="password">123456</property><!--如果池中数据连接不够时一次增长多少个--><propertyname="acquireIncrement">5</property><!--初始化连接数--><propertyname="initialPoolSize">5</property><!--最小连接数--><propertyname="minPoolSize">5</property><!--最大连接数--><propertyname="maxPoolSize">40</property><!--JDBC的标准参数,用以控制数据源内加载的PrepareStatements数量--><propertyname="maxStatements">200</property><!--连接池内单个连接所拥有的最大缓存statements数--><propertyname="maxStatementsPerConnection">5</property></named-config></c3p0-config>

c3p0连接池测试代码

packagedatasource.c3p0;
importjava.sql.Connection;
importjava.sql.SQLException;
importjavax.sql.DataSource;
importcom.mchange.v2.c3p0.ComboPooledDataSource;
publicclassC3P0Demo1 {
publicstaticvoidmain(String[] args) throwsException {
//1.创建数据库连接池对象  括号里什么都不传,使用c3p0.config.xml中的默认配置DataSourceds=newComboPooledDataSource();
//2.获取连接对象Connectionconn=ds.getConnection();
//3.打印  注意:数据库连接jar包一定要导包System.out.println(conn);
    }
}

(5)Druid:数据库连接池实现技术,有阿里巴巴提供的

步骤:

1.导入jar包  druid-1.2.8.jar

2.定义配置文件;

后缀名为.properties形式的

可以自定义名称,可以放在任意目录下

3.加载配置文件 。properties

3.获取数据库连接池对象:通过工厂来获取   DruidDataSourceFactory

4.获取连接:getConnection

定义工具类

1.定义一个JDBCUtils

2.提供静态代码快加载配置文件,初始化连接池对象

3.提供方法

a.获取连接方法:通过数据库连接池获取连接

b.释放资源

c.获取连接池的方法

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
Java 关系型数据库 MySQL
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
这篇文章是关于如何使用Spring Boot框架通过JdbcTemplate操作MySQL数据库的教程。
71 0
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
|
4月前
|
SQL 数据库
Spring5入门到实战------13、使用JdbcTemplate操作数据库(批量增删改)。具体代码+讲解 【下篇】
这篇文章是Spring5框架的实战教程,深入讲解了如何使用JdbcTemplate进行数据库的批量操作,包括批量添加、批量修改和批量删除的具体代码实现和测试过程,并通过完整的项目案例展示了如何在实际开发中应用这些技术。
Spring5入门到实战------13、使用JdbcTemplate操作数据库(批量增删改)。具体代码+讲解 【下篇】
|
4月前
|
XML 数据库 数据格式
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
这篇文章是Spring5框架的实战教程的终结篇,介绍了如何使用注解而非XML配置文件来实现JdbcTemplate的数据库操作,包括增删改查和批量操作,通过创建配置类来注入数据库连接池和JdbcTemplate对象,并展示了完全注解开发形式的项目结构和代码实现。
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
|
4月前
|
SQL XML Java
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】
这篇文章是Spring5框架的实战教程,详细讲解了如何使用JdbcTemplate进行数据库的增删改查操作,包括在项目中引入依赖、配置数据库连接池、创建实体类、定义DAO接口及其实现,并提供了具体的代码示例和测试结果,最后还提供了完整的XML配置文件和测试代码。
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】
|
6月前
|
SQL druid Java
传统后端SQL数据层替代解决方案: 内置数据源+JdbcTemplate+H2数据库 详解
传统后端SQL数据层替代解决方案: 内置数据源+JdbcTemplate+H2数据库 详解
66 1
|
7月前
|
Java 关系型数据库 MySQL
Spring Boot使用JdbcTemplate操作mysql数据库实战(附源码 超详细)
Spring Boot使用JdbcTemplate操作mysql数据库实战(附源码 超详细)
256 0
|
Oracle NoSQL 关系型数据库
SpringBoot-13-使用JdbcTemplate链接Mysql数据库
在企业项目开发者,数据库的使用是必不可少的一部分,常用的数据库有mysql、oracle、sqlserver、redis等,我们接下来的几章会介绍SpringBoot中如何使用数据库,本章就介绍使用JdbcTemplate链接mysql。
126 0
|
JSON 前端开发 数据库
JdbcTemplate实操查询数据库表中所有记录信息(十六课)
JdbcTemplate实操查询数据库表中所有记录信息(十六课)
86 0
|
SQL Java 关系型数据库
Spring Boot常用数据库开发技术总结:JDBCTemplate、JPA、Mybatis
1.概述 数据库开发一直是JAVA开发的核心之一,作为现在JAVA EE的基石框架,Spring Boot自身携带了一个JDBCTemplate框架,其对JDBC进行了基础的封装,使得Spring Boot原生就支持据库开发。同时Spring Boot也不排斥其它优秀的持久层框架,允许他们以极低的代价平滑的接入。 本文主要介绍最常用到的三个持久层框架,JdbcTemplate、JPA、mybatis如何接入Spring Boot并在其上进行开发。
328 0
|
SQL Java 数据库连接
两种连接数据库的方法-----Jdbc连接数据库---------JdbcTemplate
两种连接数据库的方法-----Jdbc连接数据库---------JdbcTemplate