(课程笔记来源于跟着老师敲,老师是黑马程序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. (工具) 性能测试基准软件 lmBench (待补充)

    1. lmBench 介绍 Lmbench是一套简易,可移植的,符合ANSI/C标准为UNIX/POSIX而制定的微型测评工具.一般来说,它衡量两个关键特征:反应时间和带宽.Lmbench旨在使系统开 ...

  2. 【Devexpress】Gridcontorl动态创建列不显示的问题

    通过代码创建列但是不显示,这个原因是因为代码创建的列Visible属性默认是false 所以需要设置为true就会显示了 gridColumn.Visible = true;

  3. ES文件浏览器局域网传输文件分析

    软件下载链接 1.前言 我之前从手机上传输到电脑上一些apk进行分析,都是使用es文件浏览器这款软件获取 app,传输方面使用QQ,这样很麻烦,走外网流量暂且不提,总是感觉浪费掉了局域网这个环境.简单 ...

  4. Springboot自动装配源码及启动原理理解

    Springboot自动装配源码及启动原理理解 springboot版本:2.2.2 传统的Spring框架实现一个Web服务,需要导入各种依赖JAR包,然后编写对应的XML配置文件 等,相较而言,S ...

  5. Java实现Excel批量导入数据库

    场景说明 在实际开发中,经常需要解析Excel数据来插入数据库,而且通常会有一些要求,比如:全部校验成功才入库.校验成功入库,校验失败返回提示(总数.成功数.失败数.失败每行明细.导出失败文件明细-) ...

  6. 3.4:使用Weka实现KNN分类的算法示例

    〇.概述 1.使用Weka平台,并在该平台使用数据导入.可视化等基本操作: 2.对KNN算法的不同k值进行比较,对比结果得出结论. 一.打开Weka3.8并导入数据 二.导入数据 三.KNN算法分类操 ...

  7. 干电池升压3.3V芯片

    PW5100适用于一节干电池升压到3.3V,两节干电池升压3.3V的升压电路,PW5100干电池升压IC. 干电池1.5V和两节干电池3V升压到3.3V的测试数据 两节干电池输出500MA测试: PW ...

  8. 填坑日志-云网络智慧课堂双网卡Mac地址读取错误的问题及解决

    云网络智慧课堂的双网卡问题记录及解决方案 教师端 其实这里双网卡的问题一直没有解决,分为了两部分,一部分是教师端,一部分是学生端.症状类似,问题也类似,都是在设计之初因为硬件限制可能没有考虑到双网卡的 ...

  9. 使用 BenchmarkDotNet 比较指定容量的 List 的性能

    我们之前提到 List 是 .NET 中常用的数据结构,其在存储大量数据时,如果能够指定它的初始化容量,就会有性能提升.这个优化的方法并不是很明显,因此本文将使用 BenchmarkDotNet 库, ...

  10. 基于.NetCore开发博客项目 StarBlog - (25) 图片接口与文件上传

    前言 上传文件的接口设计有两种风格,一种是整个项目只设置一个接口用来上传,然后其他需要用到文件的地方,都只存一个引用ID:另一种是每个需要文件的地方单独管理各自的文件.这俩各有优劣吧,本项目中选择的是 ...