(课程笔记来源于跟着老师敲,老师是黑马程序b站白嫖课程~)

#数据库连接池:

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

      当容器初始化好后,容器会被创建,容器中会申请一些连接对象,当用户来访问数据库是,从容器中获取连接对象,用户访问结束之后,会将连接对象放回到容器中。

2、好处:

  *节约资源

  *用户访问高效

3、实现:

  1、接口:DataSourse javax.sql包下

    1、方法:

      *获取连接:getConnection()

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

    2、一般我们不去实现,而是由数据库厂商来实现

      1、c3p0(比较老的数据库连接池技术

      2、Druid:阿里提供的数据库连接池技术

4、c3p0

  步骤:

    1、导入jar 包 c3p0-0.9.5.2   mchange-commons-java-0.2.12

    2、定义配置文件:

    *名称:c3p0.properties 或者 c3p0-config.xml

    *路径:直接将文件放在src目录下即可。

    3、创建核心对象 数据库连接池对象 ComboPoolDataSource

    4、获取连接:getConnection

demo:

 1 package cn.it.c3p0;
2
3 import com.mchange.v2.c3p0.ComboPooledDataSource;
4 import com.mchange.v2.c3p0.DataSources;
5
6 import javax.sql.DataSource;
7 import java.sql.Connection;
8 import java.sql.SQLException;
9
10 //c3p0demo
11 public class c3p0_demo {
12 public static void main(String[] args) throws SQLException {
13 //1 creat
14 DataSource ds = new ComboPooledDataSource();
15 //get
16 Connection conn = ds.getConnection();
17 //pr
18 System.out.println(conn);
19 }
20 }

运行时报错了

看了弹幕才知道 自己用错了方法,这个DataSource不是用c3p0包里的

而是用java自带的才可以~!!!

    改正后打印日志信息 finish~~

5、Druid:
*步骤:

  1、导入jar包 druid-1.0.9.jar

  2、定义配置文件:

    *是properties形式的

    *可以叫任意名称,可以放在任意目录下,而c3p0是名称定的情况下,系统会自动访问

  +:加载配置文件 properties

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

  4、获取连接:getConnection

package cn.it.Duird;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory; import javax.naming.spi.DirStateFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.util.Properties; public class DiudDemo {
public static void main(String[] args) throws Exception {
//加载配置文件
Properties pro = new Properties();
InputStream is = DiudDemo.class.getClassLoader().getResourceAsStream("druid.properties");
pro.load(is);
//获取连接池对象
DataSource ds = DruidDataSourceFactory.createDataSource(pro);
//获取连接
Connection conn = ds.getConnection();
System.out.println(conn);
}
}

2、定义工具类

  1、 定义一个工具类JDBCUtils

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

  3、提供方法

    1、获取连接方法:通过数据库连接池获取连接

    2、释放资源

    3、获取连接池方法

JDBCUtils
Demo

如果需要jar包 还有什么安装包啥的 dd我 我找找发一下~~嘿嘿!相互学习

java数据库连接池笔记的更多相关文章

  1. Java数据库连接池封装与用法

    Java数据库连接池封装与用法 修改于抄袭版本,那货写的有点BUG,两个类,一个用法 ConnectionPool类: package com.vl.sql; import java.sql.Conn ...

  2. Java数据库连接池

    转载过来的,最近在做一个小网站,准备使用这种方法.     Java jdbc数据库连接池总结! 1. 引言 近年来,随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及, ...

  3. 一个JAVA数据库连接池实现源码

    原文链接:http://www.open-open.com/lib/view/open1410875608164.html // // 一个效果非常不错的JAVA数据库连接池. // from:htt ...

  4. Java数据库连接池的几种配置方法(以MySQL数据库为例)

    Java数据库连接池的几种配置方法(以MySQL数据库为例) 一.Tomcat配置数据源: 前提:需要将连接MySQL数据库驱动jar包放进Tomcat安装目录中common文件夹下的lib目录中 1 ...

  5. Java数据库连接池详解

    http://www.javaweb1024.com/java/JavaWebzhongji/2015/06/01/736.html 对于共享资源,有一个很著名的设计模式:资源池(Resource P ...

  6. 主流Java数据库连接池分析(C3P0,DBCP,TomcatPool,BoneCP,Druid)

    主流数据库连接池 常用的主流开源数据库连接池有C3P0.DBCP.Tomcat Jdbc Pool.BoneCP.Druid等 C3p0: 开源的JDBC连接池,实现了数据源和JNDI绑定,支持JDB ...

  7. [转帖]为什么HikariCP被号称为性能最好的Java数据库连接池,如何配置使用

    为什么HikariCP被号称为性能最好的Java数据库连接池,如何配置使用 原创Clement-Xu 发布于2015-07-17 15:53:14 阅读数 57066  收藏 展开 HiKariCP是 ...

  8. 从零开始学 Java - 数据库连接池的选择 Druid

    我先说说数据库连接 数据库大家都不陌生,从名字就能看出来它是「存放数据的仓库」,那我们怎么去「仓库」取东西呢?当然需要钥匙啦!这就是我们的数据库用户名.密码了,然后我们就可以打开门去任意的存取东西了. ...

  9. java数据库连接池技术原理(浅析)

    在执行数据库SQL语句时,我们先要进行数据连接:而每次创建新的数据库的连接要消耗大量的资源,这样,大家就想出了数据库连接池技术.它的原理是,在运行过程中,同时打开着一定数量的数据库连接,形成数据连接池 ...

  10. [数据库连接池二]Java数据库连接池--C3P0和JDNI.

    前言:上一篇文章中讲了DBCP的用法以及实现原理, 这一篇再来说下C3P0和JDNI的用法. 1.1.C3P0数据源 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规 ...

随机推荐

  1. mindxdl--common--log_record.go

    // Copyright (c) 2021. Huawei Technologies Co., Ltd. All rights reserved.// Package common define co ...

  2. 一行shell实现tree

    一.命令详解 在不方便编译或安装tree命令时,可以使用以下的find命令来替代,语句如下: find . -print | sort | sed 's;[^/]*/;|---;g;s;---|;|; ...

  3. Linux下用rm误删除文件的三种恢复方法

    Linux下用rm误删除文件的三种恢复方法 对于rm,很多人都有惨痛的教训.我也遇到一次,一下午写的程序就被rm掉了,幸好只是一个文件,第二天很快又重新写了一遍.但是很多人可能就不像我这么幸运了.本文 ...

  4. 【Day02】Spring Cloud组件的使用--Nacos配置中心、sentinel流量控制、服务网关Gateway、RocketMQ、服务调用链路(Sleuth、zipkin)

    今日内容 一.配置中心 1.遗留问题 yml配置,每一次都需要重启项目 需要不重启项目拿到更新的结果 引出:配置中心 选择:Spring Cloud Config组件 / Alibaba的Nacos( ...

  5. Guava LoadingCache本地缓存的正确使用姿势——异步加载

    1. [背景]AB实验SDK耗时过高 同事在使用我写的实验平台sdk之后,吐槽耗时太高,获取实验数据分流耗时达到700ms,严重影响了主业务流程的执行 2. [分析]缓存为何不管用 我记得之前在sdk ...

  6. 《HTTP权威指南》– 1.HTTP概述

    HTTP的概念 HTTP : Hypertext Transfer Protocol 超文本传输协议 因特网上有数千种不同的数据类型,HTTP仔细地给每种要通过Web传输的对象都打上了名为MIME类型 ...

  7. Django聚合函数与分组查询

    目录 一:聚合查询 1.聚合函数作用 2.聚合函数查询关键字: 3.聚合函数 4.聚合函数使用 二:分组查询 1.分组查询 2.返回值 3.分组查询关键字 4.分组查询特点 5总结: 三:分组使用 1 ...

  8. frp内网穿透(已验证)

    # 云服务器frp内网穿透教程 软件源码在https://github.com/fatedier/frp/releases上,根据系统类型,按需下载 教程术语描述 > A 是有固定IP的云服务器 ...

  9. 【世界杯黑技术专题】「原理探索专题」一文解读一下“卡塔尔世界杯”的先进技术之半自动越位技术SAOT+比赛用球Al Rihla

    盘点卡塔尔世界杯的先进黑科技 归纳总结一下目前世界杯的先进的黑科技有哪些?大致可以划分为以下几点. 半自动化越位技术 比赛用球Al Rihla 球场智能空调 可持续利用的体育场 便利的数字设施和App ...

  10. Linux 环境中使用 LVGL

    之前有记录过在 esp32 中使用 LVGL 的笔记,需要的小伙伴可以了解一下,esp-idf 移植 lvgl8.3.3 我之前整理的学习资料:https://www.cnblogs.com/jzcn ...