Druid 数据库连接池 详解
推荐阅读:JDBC详解
文章目录
- 概述
- 数据库连接池实现
- Driud使用流程
- 代码示例
概述
1.数据库连接池是个容器,负责分配、管理数据库连接(Connection);
2.它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;
3.释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏;
可以类比线程池去理解。
优点
1.资源重用
2.提升系统响应速度
3.避免数据库连接遗漏
连接池是在一开始就创建好了一些连接(Connection)对象存储起来。用户需要连接数据库时,不需要自己创建连接,而只需要从连接池中获取一个连接进行使用,使用完毕后再将连接对象归还给连接池;这样就可以起到资源重用,也节省了频繁创建连接销毁连接所花费的时间,从而提升了系统响应的速度。
常见的数据库连接池: DBCP、C3P0、Druid
我们现在使用更多的是Druid,它的性能比其他两个会好一些。
Druid连接池是阿里巴巴开源的数据库连接池项目,功能强大,性能优秀,是Java语言最好的数据库连接池之一。
数据库连接池实现
标准接口:DataSource
官方(SUN) 提供的数据库连接池标准接口,由第三方组织实现此接口。该接口提供了获取连接的功能:Connection getConnection()
那么以后就不需要通过 DriverManager
对象获取 Connection
对象,而是通过连接池(DataSource)获取 Connection
对象。
Driud使用流程
1.导入jar包 druid-1.1.12.jar
2.定义配置文件 druid.properties
3.加载配置文件
4.获取数据库连接池对象
5.获取连接
代码示例
配置文件
druid.properties
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/sd?useSSL=false&useServerPrepStmts=true
username=root
password=root
# 初始连接数
initialSize=5
# 最大连接数
maxActive=10
# 最大等待时间
maxWait=3000
Java代码
public static void main(String[] args) throws Exception {//1.导入jar包//2.定义配置文件//3. 加载配置文件Properties prop=new Properties();prop.load(new FileInputStream("C:\\Users\\斯文\\Desktop\\Java\\demo\\index\\src\\druid.properties"));//4. 获取连接池对象DataSource dataSource= DruidDataSourceFactory.createDataSource(prop);//5. 获取数据库连接 ConnectionConnection conn=dataSource.getConnection();//6.操作数据库String sql = "select * from st";Statement stmt=conn.createStatement();ResultSet rs = stmt.executeQuery(sql);while (rs.next()) {int id = rs.getInt("id");String name = rs.getString("name");int age = rs.getInt("age");System.out.println(id + " " + name + " " + age);}}
推荐阅读:JDBC详解
Druid 数据库连接池 详解相关推荐
- Spring Boot 使用 Druid 连接池详解
Spring Boot 使用 Druid 连接池详解 Alibaba Druid 是一个 JDBC 组件库,包含数据库连接池.SQL Parser 等组件,被大量业务和技术产品使用或集成,经历过严苛的 ...
- JDBC中C3PO数据库连接池详解
-----------------------------------------------------JDBC中C3PO数据库连接池详解------------------------------ ...
- Spring Boot使用hikari、druid、c3p0等数据库连接池详解
文章目录 前言 Hikari连接池 Druid连接池 Druid(新版starter)连接池 C3P0连接池(1 C3P0连接池(2 扩展 前言 截至Spring Boot V2.0为止,官方仅为下列 ...
- spring boot、mybatis集成druid数据库连接池,实现mysql cluster HA负载均衡访问
spring boot.mybatis集成druid数据库连接池,实现mysql cluster HA负载均衡访问 1.原理实现介绍 本质来说使用连接池是为了节省创建.关闭数据库连接的资源消耗,从而提 ...
- MS SQL Server 数据库连接字符串详解
MS SQL Server 数据库连接字符串详解 问题 : 超时时间已到.在从池中获取连接之前超时时间已过.出现这种情况可能是因为所有池连接都已被使用并已达到最大池大小. 解决办法 1. 在代码里面 ...
- Druid数据库连接池超时问题com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 1000, active 10
问题描述: com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 1000, active 10at com.alibab ...
- Druid数据库连接池使用参考
一:添加相应依赖 druid-1.0.9.jar: mysql-connector-java-5.1.48-bin.jar 二:编写properties文件 放置位置在src中: driverClas ...
- Java线程池详解学习:ThreadPoolExecutor
Java线程池详解学习:ThreadPoolExecutor Java的源码下载参考这篇文章:Java源码下载和阅读(JDK1.8) - zhangpeterx的博客 在源码的目录java/util/ ...
- Java 线程池详解学习:FixedThreadPool,CachedThreadPool,ScheduledThreadPool...
Java常用的线程池有FixedThreadPool和CachedThreadPool,我们可以通过查看他们的源码来进行学习. Java的源码下载参考这篇文章:Java源码下载和阅读(JDK1.8) ...
最新文章
- 不改文件名的情况下上传突破
- 图解Hbase--大数据平台技术栈07
- 单引号、双引号 转义符
- [HNOI2013]切糕
- 寒假每日一题2022【week2 未完结】
- 交换机端口镜像(锐捷)
- Vue.js-Day09【项目实战(附带 完整项目源码)-day04:用户个人中心页面、用户登录页面、将项目打包部署到服务器上、项目汇报、实训心得】
- 教你如何使用Redis:[7]redis常用命令
- SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一)
- 如何“神还原”数据中心? 阿里联合NTU打造了工业级精度的仿真沙盘!
- 【Python】Numpy包的安装使用
- 【Python数据分析-8】:Numpy常用操作-arange函数、linspace函数与运算
- 初始化audio失败是什么意思_DirectXAudio初始化失败,高手看 – 手机爱问
- JS实现一个打点计时器
- SLG游戏中绘制六边形网格地形
- 6岁就获吉尼斯世界纪录!这届10后程序员「小鬼当家」
- 【USACO3-4-2】电网 皮克定理
- 【早期笔记】java 开发环境搭建
- 淘宝、拼多多、京东等购物平台的优惠券公众号免费搭建持续更新
- mysql中的/、div的区别
热门文章
- java毕业设计BS景区票务管理系统设计与实现源码+系统+数据库+lw文档+调试运行
- 互联网业务被打回原形,小米的高端路注定没戏!
- [转载].关注电子工程师的身体健康与职业规划
- 外贸行业进销存系统-分享
- *** glibc detected *** ./Simple_Sound_Recording: free(): corrupted unsorted chunks: 0x0001c8a0 ***
- 建模1----2017年国赛D题
- Android4开发入门经典 之 第十二部分:最佳实践
- 年后玩玩php,顺便发发牢骚
- python os.environ windows_Python基于os.environ从windows获取环境变量
- u盘插电脑上无法显示、文件损坏怎么恢复数据,驱动人生解决方案