JDBC连接池讲解 Druid技术

【数据库连接池】c3p0-druid-SpringJDBC 数据库连接池 概念: 其实就是一个容器(集合),存放数据库连接的容器。 当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。 好处: 1. 节约资源 2. 用户访问高效 实现: 标准接口:DataSource javax.sql包下的 方法: 获取连接:getConnection() 归还连接:Connection.close()。如果连接对象Connection是从连接池中获取的,那么调用Con 阅读详情
  • 为什么要有JDBC连接池呢?
  • JDBC连接池是什么?

1.说在前面

JDCB众所周知:就是java老大用来操作各种数据库(比如:Mysql,orale)小弟的一个规范。但是我每次要操作一下数据库就去创建一个数据库连接然后又将其close。我是不是疯了。
所以就有了JDBC连接池的概念:数据库连接池就是一个容器,里边放了多个数据库连接对象

2.这里介绍下我们国的龙头老大 阿里巴巴的数据库连接池Druid

第一步:还是我们熟悉的导入jar包
第二步:写配置文件:druid.properties

//驱动
driverClassName=com.mysql.jdbc.Driver
//操作哪个数据库固定写法:jdbc:数据库名://IP地址:端口号/数据库名
url=jdbc:mysql://127.0.0.1:3306/students(数据库名)
//用户账号
username=root
//用户密码
password=1234
//初始化的连接数量
initialSize=5
//最大的连接数量
maxActive=10
//最大超时时间
maxWait=3000

第三步:加载配置文件进内存

		//1.使用Properties集合中的load()方法,将配置文件加载进进内存*
        Properties pps=new Properties();
        
		//2.使用类加载器获取配置文件的绝对路径并装入字节入流中(硬盘==》内存)
        ClassLoader classLoader = druidDemo1(类对象).class.getClassLoader();
        InputStream is = classLoader.getResourceAsStream("druid.properties");
        
        //3.使用load()方法
        load(is);

第四步:通过DruidDataSourceFactory 工厂类的createDataSource()方法获取数据库连接池对象啦~

//Data是是数据的意思。Source是 来源[池子] 的意思。Factory是工厂的意思。
//DruidDataSourceFactory 一起就是:Druid数据池的工厂
DataSource ds = DruidDataSourceFactory.createDataSource();

第五步:通过DataSource数据库连接池对象 的 getConnection()方法获取数据库连接对象啦~

Conndection conn = ds.getConnection();
  • ps:注意:这里的数据库连接对象 和 前面的用DriverManager驱动管理类获取的数据库连接对象是不一样的。
  • 至少这里数据库连接对象调用close()方法不是将数据库连接对象关闭,而是将 数据库连接对象 归还给:数据库连接池。(有点绕口)

第六步:写sql

String sql = "insert into 表名 (字段名) values(?,?,?)"

第七步:获取PerpareStatement对象,并给 ? 赋值 (防止sql注入).

PerpareStatement pstate = conn.perpareStatement(sql);
pstate.setXxx("int类型,写给第几个问号赋值","赋Xxx类型的值")

第八步:执行sql

pastate.executeUpdate();//execute是 执行 的意思。

第九步:归还数据库连接对象
调用close()方法

下边来个整个过程的详细代码+分析

案例:给db3的employee表添加一条记录*/
public class druidCase {
   public static void main(String[] args) {
   	//为了防止下边对象创建时抛出异常所以这里要赋值为 null 
       Connection conn = null;
       PreparedStatement pstmt = null;

       try {
           //1.获取数据库连接对象
           conn = JDBCUtils.getConnection();

           //开启事务
           conn.setAutoCommit(false);

           //2.写sql
           String sql = "insert into employee values(?,?)";

           //3.获取执行sql的对象[PreparedStatement对象在执行sql时 是不传参的。传参在获取对象时传!]
           pstmt = conn.prepareStatement(sql);

           //4.1 给 ? 赋值
           pstmt.setString(1, "zero");
           pstmt.setInt(2, 2000);
           
           //4.2 执行sql
           pstmt.executeUpdate();

           //提交
           conn.commit();

       } catch (Exception e) {
           //有异常回滚
           try {
               conn.rollback();
           } catch (SQLException e1) {
               e1.printStackTrace();
           }
           e.printStackTrace();
       } finally {
           if (stmt != null) {
               try {
                   stmt.close();
               } catch (SQLException e) {
                   e.printStackTrace();
               }
           }
           if (conn != null) {
               try {
                   conn.close();
               } catch (SQLException e) {
                   e.printStackTrace();
               }
           }
       }
   }
}

最后能祝您能快乐的学好JDBC相关知识哦~~

druid&ojdbc jar包 druid-1.0.23&ojdbc6 jar包 立即下载

相关推荐

Vivado IP核:AXI Uartlite的使用经验分享

1. IP基本设置 在Vivado中,打开IP Catalog,搜索“uart”: 双击“AXI Uartlite”,进入IP配置界面: 这里可以配置IP的具体参数,设置时钟频率、波特率等,完成后,生成IP即可。 2. IP的时序特点 点击下面的链接可以下载该IP核的官方指导文档: https://china.xilinx.com/support/documentation/ip_docume...

weixin_43265132的博客 1万+

SpringBoot之Jdbc使用druid数据源连接Oracle数据库

参考文章:springboot使用druid连接池连接Oracle数据库的基本配置 springboot---整合druid连接池---连接oracle数据库---整合mybatis---整合thymeleaf---日志配置

justlpf的专栏 9736

Power Bi数据分析案例:在线零售平台销售数据分析

该数据集为,涵盖2023年1月至2024年3月,包含用户群体特征、购买行为、产品偏好以及参与度指标。用户维度:Customer_ID,Age,Gender,City产品维度:Product_Category,Unit_Price事实表:Order_ID,Quantity,Total_Amount,Discount_Amount,Rating,Delivery_Time在Power Query当中处理销售日期列,并新增年龄段、浏览页面分段列。

2301_79586168的博客 1278

关于使用druid数据源连接Oracle导致的SQLRecoverableException(socket read timeout,关闭的连接等)

背景 数据源初始化后,获取Oracle的连接进行查询操作,相隔 半个小时 左右,再次对同一数据库进行查询操作。 问题 第二次查询的时候,就会出现如下一些异常情况 2019-06-05 14:17:58.247 [CorePoolHandler-thread-6] ERROR [LOGID:] com.alibaba.druid.pool.DruidDataSource - discard conn...

u013347796的博客 2万+

车载测试面试题总结

首先确认是什么问题,如果是测试软件的问题就先确定自己的测试方法有没有问题,如果没有问题,那就是测试软件的问题,这时候就需要提bug 进行跟踪,(比如BCM测试的时候,先明确测试的输入,对输入)进行需求分析,然后设计测试用例,进行用例评审,评审完执行测试用例形成最终的版本,台架分为:hil(黑尔)台架,单个控制器的台架、整车台架、车身台架、动力系统台架等,主要验证其功能,或者实车无法满足的测试环境。这个人不可能一直,点击几千次或者多少次几个小时连续点击,人不可能一直在点。因为要模拟一下这个稳定性,

woaxiaoqing的博客 7817

遥感大模型之Prithvi的关键技术解读

Prithvi系列模型开创了遥感领域基础模型新范式,通过海量多源时空数据(HLS和SAR)与Vision Transformer架构的深度融合,采用掩码自编码器进行自监督预训练,实现了强大的地球观测表征能力。该技术体系突破传统方法在全局建模、多模态融合和时空分析上的局限,仅需少量标注数据即可在土地分类、灾害监测等任务上取得优异表现。从初代3亿参数到Prithvi-EO-2.0的10亿参数升级,展现了模型可扩展性,为构建地球数字孪生智能基座奠定基础。

panshengwu的博客 866

Springboot连接oracle数据库

目的导入 ojdbc14.jar 包: 在 PL/SQL 中查看需要 jar 包的版本: select * from v$version mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.1.0 -Dpackaging=jar -Dfile=ojdbc14.jar 方式...

分外蓝 2607

1位2路选择器设计

1位2路选择器设计

好好学习,天天向上 3577

JDBC常见的几种连接池使用(C3PO、Druid、HikariCP 、DBCP)

本篇作为主要在于介绍jdbc数据库连接池,以及多种连接池的用法

sjs52406的博客 3674

ProgLoss+STAL 技术详解:YOLO26 小目标检测增强方案

本文提出了一种基于ProgLoss渐进式损失函数和STAL小目标感知标签分配的YOLO26增强方案。针对小目标检测中特征信息少、正负样本不平衡等难题,STAL通过尺度感知的标签分配策略动态调整候选样本数量和IoU阈值,为小目标分配更多正样本;ProgLoss则根据训练阶段动态调整分类和回归损失的权重,早期侧重定位能力,后期加强分类精度。实验表明,该组合方案显著提升了小目标检测性能,在COCO数据集上小目标AP达到38.2%,比基线提升6.5个百分点。该方法为遥感、监控等场景的小目标检测提供了有效解决方案。

一键难忘的博客 1285

FM20S用户手册--Linux系统启动卡制作及系统固化

评估板出厂时,默认提供一张配套的Micro SD卡,此卡为可正常使用的Linux系统 启动卡。评估板断电,将Linux系统启动卡插入评估板Micro SD卡槽,根据评估底板丝印将 启动方式选择拨码开关拨为1010(1-4).此档位为Micro SD启动模式。使用Linux 系统启动卡启动系统时,将使用此目录的BOOTbn文件启动FSBL和U-Boot。Linux系统启动卡制作时,已将固化系统的脚本文件mkemmcboot.sh拷贝至Linux系 统启动卡文件系统的"/opt/tools/"目录下。

创龙,嵌入式一体化解决方案商 302

JDBC连接池

## 数据库链接池 1、概念:其实就是一个容器(集合),存放数据库链接的容器 当系统初始化好后,容器被创建,容器中会申请一些链接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器 2、好处:1.节约资源 2.用户访问高效 3、实现: 1.标准接口:DataSource javax.sql包下的 1.方法: *获取连接:getConnection() ...

xiaoyu5632的博客 455

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

JDBC连接池从0到1

数据库连接池: 概念:是一个存放数据库连接的容器,当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户去访问数据库是,直接从容器里获取连接对象,[不能再去建立连接],用户访问完之后,会将连接对象归还给对象,[不用去关闭连接] 优点:用户访问高效而且节约资源。 标准接口:DataSource,javax.sql包下的 方法: 获取连接:getConnection() 归还连接[不是关...

Backpace_的博客 391

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

数据库连接池:C3P0、Druid、Spring JDBC ----JDBC Template

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

weixin_45291606的博客 190

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

day02JDBC连接池&JDBCTemplate课堂笔记

该笔记是黑马JDBC课程笔记,仅为了方便学习上传,请勿商用。 文章目录1.今日内容2. 数据库连接池1. 概念:其实就是一个容器(集合),存放数据库连接的容器。2. 好处:3. 实现:4. C3P0:数据库连接池技术5. Druid:数据库连接池实现技术,由阿里巴巴提供的(目前性能最好)1. 步骤:2. 定义工具类3.Spring JDBC 数据库连接池 1.今日内容 1. 数据库连接池 2....

H.千面的博客 363

JDBCUtils 工具类(数据库连接池C3P0+Druid)

数据库连接池c3p0和druid

Fu_lucas的博客 933

数据库连接池技术

目录目录 JDBC 操作数据库 JDBC-ODBC 桥 JDBC 连接数据库 DBCP 连接池 TOMCAT 连接池 C3P0 连接池 Druid连接池JDBC 操作数据库<提示:JDBC -ODBC 桥连接已经不再广泛使用. 淘汰的技术>JDBC-ODBC 桥JDBC-ODBC桥是一个JDBC驱动程序。完成了从JDBC操作带ODBC操作之间的转换工作。允许JDBC驱动程序被用作ODBC的驱动程序。

吴杨的博客 4922

浅谈JDBC(二):数据库连接池以及Spring JDBC:JDBCTemplate

浅谈JDBC(二):数据库连接池以及Spring JDBC:JDBCTemplate一. 数据库连接池1. 概述2. 好处3. 实现4. C3P0:数据库连接池技术5.Druid:数据库连接池实现技术二. Spring JDBC1. 概述2. 步骤3. 练习 一. 数据库连接池 1. 概述 数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个...

来日浅谈的博客 793

数据库连接池技术C3P0和Druid使用

C3P0和Druid的使用,不讲原理

OneFine的技术博客 557

JDBC连接池及JDBC Template

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

lilililililydia的博客 267

JDBC数据库连接池技术运用与 Spring JDBC

** 1、 数据库连接池技术: ** 数据库连接池 01. 概念:其实就是一个容器(集合),存放数据库连接的内容 a) 当系统初始化好以后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。 02. 好处 a) 节约资源 b) 用户访问高效 03. 实现: a) 标准接口:DataSource java.sql包下的 i....

hanggehao的博客 177

MySql的JDBC技术的简单封装

什么是JDBC技术 Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。我们通常说的JDBC是面向关系型数据库的。这里要讲的是MySql数据库的连接技术. 步骤 添加jar包 添加MySql的驱动 添加连接池jar 这里用到的是阿里的连接池技术: druid 封装JDBC 这里主要是对增删查改的这些操作进行的封装 代码如下: import java.lang.r

cd13277946310的博客 573

Java学习笔记-JDBC数据库连接池(二)

当需要成批插入或者更新记录时,可以采用Java的批量更新机制,这一 机制允许多条语句一次性提交给数据库批量处理,通常情况下比单独提交处理更有效率。

m0_62107756的博客 692

5.JDBC连接池、JDBCTemplate

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

子衿 138
上一篇: 超通俗易懂的JDBC之入门使用步骤+解析
下一篇: Spring JDBC,Druid技术
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值