java数据库连接池的特点及步骤

目录
  • 连接池概念
  • 传统连接的缺点
  • 数据库连接池的优点
  • 实现方法
  • 演示Druid连接
  • QueryRunner插入操作
  • QueryRunner查询操作

连接池概念

数据库连接池的基本思想:就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。

数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个

数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。

传统连接的缺点

        1.普通的JDBC数据库连接使用DriverManager来获取,每次向数据库建立连接的时候都要将Connection加载到内存中,再验证用户名和密码(得花费0.05s~1s的时间)。需要数据库连接的时候,就向数据库要求一个,执行完成后再断开连接。这样的方式将会消耗大量的资源和时间。数据库的连接资源并没有得到很好的重复利用。若同时有几百人甚至几千人在线,频繁的进行数据库连接操作将占用很多的系统资源,严重的甚至会造成服务器的崩溃。

        2.对于每一次数据库连接,使用完后都得断开。否则,如果程序出现异常而未能关闭,将会导致数据库系统中的内存泄漏,最终将导致重启数据库。(回忆∶何为Java的内存泄漏?)

       3.这种开发不能控制被创建的连接对象数,系统资源会被毫无顾及的分配出去,如连接过多,中可能导致空存泄漏,服务器崩溃。

数据库连接池的优点

提高程序的响应速度(减少创建连接相应的时间)减低资源的消耗(可以重复使用以及提供好的连接)便于连接的管理

实现方法

DBCP 是Apache提供的数据库连接池。tomcat 服务器自带dbcp数据库连接池。速度相对c3p0较快,但因自身存在BUG,Hibernate3已不再提供支持。

C3P0 是一个开源组织提供的一个数据库连接池,速度相对较慢,稳定性还可以。hibernate官方推荐使用

Proxool 是sourceforge下的一个开源项目数据库连接池,有监控连接池状态的功能,稳定性较c3p0差一点

BoneCP 是一个开源组织提供的数据库连接池,速度快

Druid 是阿里提供的数据库连接池,据说是集DBCP 、C3P0 、Proxool 优点于一身的数据库连接池,但是速度不确定是否有BoneCP快

演示Druid连接

连接步骤:①导入jar包,②测试连接代码,③写配置文件

        Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、Proxool等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池,**可以说是目前最好的连接池之一。

DRUID

①导包

②测试连接代码

③写配置文件

QueryRunner插入操作

public static void testInsert() {
        Connection conn = null;
        try {
            QueryRunner runner = new QueryRunner();
            conn = JDBCUtils.getConnection3();
            String sql = "insert into customers(name,email,bitrh)values(?,?,?)";
            int insertCount = runner.update(conn, sql, "陈子宏", "chenzihong@123", "1994-09-09");
            System.out.println("添加了" + insertCount + "条记录");
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.colseResource(conn, null);
        }

    }

QueryRunner查询操作

 //测试查询:BeanHander:是ResultSetHandler接口的实现类,用于封装表中的一条记录
    public static void testQuery1() {
        Connection conn = null;
        try {
            QueryRunner runner = new QueryRunner();
            conn = JDBCUtils.getConnection3();
            String sql = "select id,name,email,birth from customers where id =?";

            BeanHandler<Customer> handler = new BeanHandler<>(Customer.class);
            Customer customer = runner.query(conn, sql, handler, 21);
            System.out.println(customer);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.colseResource(conn, null);
        }
    }

到此这篇关于数据库连接池的特点及步骤的文章就介绍到这了,更多相关数据库连接池内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解Java数据库连接池

    一.什么是数据库连接池 就是一个容器持有多个数据库连接,当程序需要操作数据库的时候直接从池中取出连接,使用完之后再还回去,和线程池一个道理. 二.为什么需要连接池,好处是什么? 1.节省资源,如果每次访问数据库都创建新的连接,创建和销毁都浪费系统资源 2.响应性更好,省去了创建的时间,响应性更好. 3.统一管理数据库连接,避免因为业务的膨胀导致数据库连接的无限增多. 4.便于监控. 三.都有哪些连接池方案 数据库连接池的方案有不少,我接触过的连接池方案有: 1.C3p0 这个连接池我很久之前看到

  • Java 数据库连接池 Tomcat介绍

    目录 1.配置参数 1.1.基础配置 1.2.系统属性 1.3.一般参数 1.4.增强参数 2.使用 2.1.直接使用 2.1.1.引入依赖 2.1.2.使用例子 2.2.作为资源配置在 Tomcat 中 3.2.在 SpringBoot 中使用 3.1.1.引入依赖 3.1.2.单数据源 3.1.3.多数据源 前言: Tomcat 连接池是从 Tomcat 7 开始重新编写的高并发连接池,用以取代以前 Tomcat 中使用的 DBCP 1 连接池,它可以配置在 Tomcat 中使用,也可以单独

  • java数据库连接池的特点及步骤

    目录 连接池概念 传统连接的缺点 数据库连接池的优点 实现方法 演示Druid连接 QueryRunner插入操作 QueryRunner查询操作 连接池概念 数据库连接池的基本思想:就是为数据库连接建立一个"缓冲池".预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从"缓冲池"中取出一个,使用完毕之后再放回去. 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个. 数据库连接池在初始化时将创建一

  • Java数据库连接池技术的入门教程

    池(Pool)技术在一定程度上可以明显优化服务器应用程序的性能,提高程序执行效率和降低系统资源开销.数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个: 数据库连接池技术 基本概念: 数据库连接池:其实就是一个容器(集合),存放数据库连接的容器. 当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器. 使用池化技术的好处: 1. 节约资源 2. 用户访问

  • Java 数据库连接池详解及简单实例

    Java 数据库连接池详解 数据库连接池的原理是: 连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象.使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用.而连接的建立.断开都由连接池自身来管理.同时,还可以通过设置连接池的参数来控制连接池中的初始连接数.连接的上下限数以及每个连接的最大使用次数.最大空闲时间等等.也可以通过其自身的管理机制来监视数据库连接的

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

    一.Tomcat配置数据源: 前提:需要将连接MySQL数据库驱动jar包放进Tomcat安装目录中common文件夹下的lib目录中 1.方法一:在WebRoot下面建文件夹META-INF,里面建一个文件context.xml,如下: <?xml version="1.0" encoding="UTF-8"?> <Context> <Resource name="jdbc/chaoshi" auth="

  • Java数据库连接池之proxool_动力节点Java学院整理

    Proxool是一种Java数据库连接池技术.sourceforge下的一个开源项目,这个项目提供一个健壮.易用的连接池,最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况. 目前是和DBCP以及C3P0一起,最为常见的三种JDBC连接池技术. 日前,Hibernate官方宣布由于Bug太多不再支持DBCP,而推荐使用 Proxool或C3P0. 下面通过一个Demo说明一下如何使用: 项目结构如下: DBLink.Java文件中的代码: package com.bjpowe

  • Java 数据库连接池Druid 的介绍

    目录 1.配置参数 2.使用 2.1.直接使用 2.1.1.引入依赖 2.1.2.使用例子 2.2.在 SpringBoot 中使用 2.1.1.引入依赖 2.1.2.单数据源 2.1.3.多数据源 2.1.4.开启监控功能 前言: Druid 连接池是阿里巴巴开源的数据库连接池项目,Druid 为监控而生,内置强大的监控功能,监控特性不影响性能,官网地址为:https://github.com/alibaba/druid/wiki/,本文主要介绍 Druid 的基本使用,文中使用到的软件版本:

  • Java 数据库连接池DBPool 介绍

    目录 1.配置参数 2.使用 2.1.直接使用 2.1.1.引入依赖 2.1.2.使用例子 2.2.在 SpringBoot 中使用 2.1.1.引入依赖 2.1.2.单数据源 2.1.3.多数据源 前言: DBPool 是一个高效易配置的数据库连接池,支持 JDBC 4.2,但目前已经不维护了:本文简单介绍下 DBPool 的使用,文中使用到的软件版本:Java 1.8.0_191.DBPool 7.0.1.Spring Boot 2.3.12.RELEASE. 1.配置参数 参数 描述 na

  • Java 数据库连接池c3p0 介绍

    目录 1.配置参数 1.1.基础配置 1.2.连接池大小 1.3.连接池大小和连接存活时间 1.4.连接测试 1.5.预编译池 1.6.数据库中断的恢复 1.7.自定义连接生命周期管理 1.8.处理未提交的事务 1.9.调试 1.10.避免热部署内存泄露 1.11.其它配置 2.原始连接操作 3.使用 3.1.直接使用 3.1.1.引入依赖 3.1.2.使用例子 3.2.在 SpringBoot 中使用 3.1.1.引入依赖 3.1.2.单数据源 3.1.3.多数据源 前言: c3p0 是一个开

随机推荐