【JDBC】使用连接池重写工具类

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 【JDBC】使用连接池重写工具类
  1. 连接池原理:

理解为存放多个连接的集合。

04855b8b09bf4b96988447bff967f590.png

目的:解决建立数据库连接耗费资源和时间很多的问题,提高性能

  1. 常见连接池

Java为数据库连接池提供了公共的接口:javax.sql.DataSource,各个厂商需要让自己的连接池实现这个接口。这样应用程序可以方便的切换不同厂商的连接池!


917e6230dff14f4aa3da9f18125fa0c8.png

连接池名称

描述

Druid

Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。

DBCP

java数据库连接池的一种,由Apache开发,通过数据库连接池,可以让程序自动管理数据库连接的释放和断开。

C3P0

一个开源的JDBC连接池,目前使用它的开源项目有Hibernate,Spring等。

  1. Druid连接池概述

Druid(德鲁伊)连接池是一个由alibaba开发的开源项目,源码托管在github上,如果需要下载jar包,需要从maven的中央仓库中下。


github地址:https://github.com/alibaba/druid/


maven仓库地址:http://www.mvnrepository.com/artifact/com.alibaba/druid

08705da2a8a94dc1ae1cdf6380850f1c.png


  1. Druid使用

使用Druid连接池优化工具类DruidUtil,工具类提供两个方法:

获取连接

public static Connection getConn ()  

关闭资源

public static void closeResource(ResultSet rs, PreparedStatement pst, Connection conn)

2569c5fd3c354e66a40e3e7b296ae18b.png

  1. 在src表创建properties文件

b4065ede70cf45f98a31c43ca150adbe.png

文件的内容如下:

driverClassName = com.mysql.jdbc.Driver
url = jdbc:mysql://localhost:3306/day05pre
username = root
password = root
initialSize = 5
maxActive = 10
minIdle = 3
maxWait = 60000

解释:


驱动的名字:com.mysql.jdbc.Driver


driverClassName = com.mysql.jdbc.Driver


数据库的地址:jdbc:mysql://localhost:3306/day05pre


url = jdbc:mysql://localhost:3306/day05pre


数据库管理账号和密码


username = root


password = root


初始链接数:5


initialSize = 5


最大并行链接数:10


maxActive = 10


最小空闲数 3


minIdle = 3


最大等待时间(毫秒):


maxWait = 60000


  1. 书写DruidUtil工具类

做三件事:

1.读取properties文件中的数据 创建连接池对象。

2.创建一个方法返回一个连接对象

3.创建一个方法关闭各种资源

import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
public class DruidUtil {
/**定义一个连接池*/
private static DataSource dataSource;
/**初始化连接池*/
static{
try {
InputStream is =
DruidUtil.class.getClassLoader().getResourceAsStream("druid.properties");
Properties prop = new Properties();
prop.load(is);
dataSource = DruidDataSourceFactory.createDataSource(prop);
} catch (Exception e) {
e.printStackTrace();
}
}
/**通过连接池获取连接*/
public static Connection getConnection() throws SQLException{
return dataSource.getConnection();
}
/**关闭连接,归还资源*/
public static void closeAll(Connection con,PreparedStatement ps,ResultSet rs) throws SQLException{
if(rs!=null){
rs.close();
}
if(ps!=null){
ps.close();
}
if(con!=null){
con.close();
}
}
  1. 使用工具类完成对数据表的查询
/*
 * 使用Druid连接池工具类 完成查询student表中所有的数据
 *
 * */
@Test
public void findAllDruid() throws SQLException{
// 1.获取链接
Connection conn = DruidUtil.getConnection();
// 2.书写SQL语句 获取发射器
String sql = "select * from student";
PreparedStatement pst = conn.prepareStatement(sql);
// 3.执行并处理结果集
ResultSet rs = pst.executeQuery();
while(rs.next()){
//分别获取各个字段的值
int sid = rs.getInt("sid");
int age = rs.getInt("age");
String name = rs.getString("name");
String sex = rs.getString("sex");
//显示结果
System.out.println("sid="+sid+" name="+name+" age="+age+" sex="+sex);
}
// 4.关闭资源
DruidUtil.closeAll(conn, pst, rs);
}


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
druid Java 数据库连接
Jdbc整合连接池
Jdbc整合连接池
|
5月前
|
Java 关系型数据库 MySQL
JDBC连接数据库工具类
JDBC连接数据库工具类
|
7月前
|
Java 数据库连接
JavaWeb用户信息管理系统-创建POJO以及JDBC工具类
JavaWeb用户信息管理系统-创建POJO以及JDBC工具类
50 0
|
3月前
|
SQL 存储 Java
JDBC技术【封装JDBC工具类、Statement的使用、PreparedStatement的使用(重点)、ResultSet的使用】(二)-全面详解(学习总结---从入门到深化)
JDBC技术【封装JDBC工具类、Statement的使用、PreparedStatement的使用(重点)、ResultSet的使用】(二)-全面详解(学习总结---从入门到深化)
38 0
|
8月前
|
Java 数据库连接
Java 中封装JDBC连接到JDBCUtils工具类的详解
Java 中封装JDBC连接到JDBCUtils工具类的详解
41 0
|
4月前
|
Java 数据库连接 数据库
JDBC连接池&JDBCTemplate课堂笔记
JDBC连接池&JDBCTemplate课堂笔记
36 1
|
9月前
|
监控 druid Java
JDBC 连接池 详解(通俗易懂)
JDBC 第五节 详解连接池 通俗易懂!
269 0
|
druid 前端开发 Java
Spring boot整合<Mybatis【对JDBC的封装】>,Druid连接池
目录 文件目录层次和等级: 第二依赖: 第三配置文件: 第四创建文件:
117 0
Spring boot整合<Mybatis【对JDBC的封装】>,Druid连接池
|
10月前
|
Java 数据库连接 数据库
高效掌握JDBC技术(三)| 三层架构理念 | 书写符合事务特性的工具类 | JUnit测试框架 | JDBC项目开发步骤(下)
高效掌握JDBC技术(三)| 三层架构理念 | 书写符合事务特性的工具类 | JUnit测试框架 | JDBC项目开发步骤
75 1
|
10月前
|
Java 数据库连接 数据库
高效掌握JDBC技术(三)| 三层架构理念 | 书写符合事务特性的工具类 | JUnit测试框架 | JDBC项目开发步骤(上)
高效掌握JDBC技术(三)| 三层架构理念 | 书写符合事务特性的工具类 | JUnit测试框架 | JDBC项目开发步骤
109 1