文章目录

  • 一、连接池
    • 1、什么是连接池
    • 2、为什么要用连接池
  • 二、德鲁伊连接池(druid)
    • 1.介绍
    • 2.代码实操

一、连接池

1、什么是连接池

简单来说就是一组连接组成的一个池子(集合),称为连接池。
连接池是创建和管理一个连接的缓冲池技术。

2、为什么要用连接池

我们原先在连接数据库时都是用到一次,创建一次连接,不用就关闭,再用的时候再连接。但是一旦访问数据库的请求多了起来,就会很容易占用服务器资源,还耗时。
使用连接池就能很好的解决这种问题。
连接池技术是在服务启动的时候就事先在连接池中放入一定数量的连接对象,当你需要的时候,直接从连接池中拿已经创建好的对象而不是临时去创建一个连接,这样就能提高效率。

二、德鲁伊连接池(druid)

1.介绍

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

2.代码实操

(1)maven引入jar包

    <dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.6</version></dependency>//jdbc要和自己数据库版本匹配<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.27</version></dependency>

(2)在src下新建 .properties配置文件

编写基本配置参数

url=jdbc:mysql://localhost:3306/login
username=root
password=2020051034
driverClassName=com.mysql.jdbc.Driver
//初始化时建立物理连接的个数
initialSize=5
//连接池能维持的最大连接数
maxActive=10
//获取连接时最大等待时间,单位毫秒
maxWait=2000

点击了解更多配置文件的参数详情

(3)编写DBUtils工具类,通过druid连接池连接数据库并封装查询操做

import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;public class DBUtils {static Connection conn;static PreparedStatement presql;static ResultSet rs;static String selectsql="SELECT * FROM student where name=? ";static String n;//namepublic static void getconnection() {//1.从类路径下加载配置文件,获取一个输入流。如果不指定路径,默认是读取同一个包下资源文件InputStream inputStream = DBUtils.class.getResourceAsStream("/druid.properties");//2.使用Properties对象的方法将配置文件中属性加载到Properties对象中Properties properties = new Properties();//加载了配置文件中所有的属性try {properties.load(inputStream);} catch (IOException e) {e.printStackTrace();}//3.通过druid的工厂类创建连接池DataSource dataSource = null;try {dataSource = DruidDataSourceFactory.createDataSource(properties);} catch (Exception e) {e.printStackTrace();}//4.从连接池中获取连接对象try {conn=dataSource.getConnection();} catch (SQLException e) {e.printStackTrace();}}//编写select操作方法public static ResultSet select(String a){//调用上面自己封装的getconnection方法连接数据库getconnection();//将测试类中传入的name参数赋值给nn=a;//通过预处理对象处理sql语句try {presql=conn.prepareStatement(selectsql);presql.setString(1,n);} catch (SQLException e) {e.printStackTrace();}//获取结果集对象try {rs=presql.executeQuery();} catch (SQLException e) {e.printStackTrace();}//返回结果集对象return rs;}}

(4)编写测试类

import org.junit.Test;
import java.sql.ResultSet;
import java.sql.SQLException;public class test {@Testpublic void test2() throws SQLException {//通过工具类得到结果集对象ResultSet res=DBUtils.select("dwd");//输出当前连接池中我们所用的连接对象System.out.println(DBUtils.conn);while (res.next()){//打印我们从数据库中得到的数据System.out.println("名字:"+res.getString("name"));System.out.println("密码:"+res.getString("password"));System.out.println("成绩:"+res.getString("score"));}//关闭连接,连接对象回到连接池DBUtils.conn.close();}
}

(5)运行结果


德鲁伊连接池(druid)相关推荐

  1. java 的德鲁伊连接池_德鲁伊连接池-Druid

    利用Druid连接池获得数据库连接(得到一个连接对象): package com.hk.utils; import com.alibaba.druid.pool.DruidDataSource; im ...

  2. Druid 德鲁伊连接池技术

    Druid 德鲁伊连接池技术 步骤: 去官网去下载一个德鲁伊的jar -> druid-1.0.9.jar 定义配置文件:使用properties文件类型的,名字随便起 手动加载配置文件信息: ...

  3. Druid(德鲁伊)连接池

    Druid(德鲁伊)连接池是阿里提供的数据库连接池,集DBCP,C3P0,Proxool的优点于一身的数据库连接池,功能强大,速度快,稳定性好,具有强大的监控功能,也可以防止SQL的注入. 1.在使用 ...

  4. 满汉楼(德鲁伊连接池+DBUtils+DAO+Mysql)保姆级别分析+代码实现

    一:需求 1.完成一个酒店后台管理系统,当然只是模拟,在控制台就行模拟 2.实现管理人员的登录和酒店成本账单的查看,以及正常的点餐,结账和查看账单等等功能 二:实现的功能展示 1.用户登录(这里输入的 ...

  5. JDBC——通过德鲁伊连接池连接Mysql

    步骤一:在java项目中导入jar包 德鲁伊连接池jar包https://download.csdn.net/download/m0_62642719/85360784步骤二:在src下创建配置文件: ...

  6. springboot 配置德鲁伊连接池

    一.数据库连接池 1.1什么是数据库连接池 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个:释放空闲时间超过最大空闲时间的数据库连接来避免 ...

  7. 德鲁伊连接池学习笔记

    德鲁伊连接池目前来看是最好的连接池,稳定,而且速度要比C3P0要快 使用方法: 1.导入jar包 2.加入配置文件druid.properties,并进行配置 3.创建properties对象,并读取 ...

  8. [JAVA]使用德鲁伊连接池和DAO方法完成对goods表的crud

    目录 1.配置德鲁伊连接池的properties文件. 2.创建goods表,并插入数据[MySQL]. 3.创建德鲁伊数据库连接池的工具类. 4.创建Goods的domain层 5.创建BasicD ...

  9. JDBCC3P0连接池Druid连接池

    typora-root-url: img typora-copy-images-to: img JDBC&连接池 回顾 会使用mysql字符串函数 CONCAT: 连接字符串 CHAR_LEN ...

最新文章

  1. java文件上传下载服务并发超时,先收藏了
  2. 电商系统的积分(即金币)的设计方案
  3. 经验3-5年的测试人,如果还是长期加班、薪资涨幅不大,建议认真看看
  4. 13. PHP 数组
  5. Hadoop在业界的使用情况
  6. plantuml如何导出大图片
  7. 连点器安卓手机版_万代奥特曼变身器安卓版下载_万代奥特曼dx变身器安卓手机版下载 v1.0.0...
  8. 2008服务器系统开启ftp,2008服务器开启ftp服务
  9. 测试用例设计——错误猜测法
  10. Linux valgrind java_linux下valgrind的使用概述
  11. 大数据治理——《华为数据之道》
  12. Font Awesome、ionic icon图标库的超详细使用方法
  13. 无线广告屏]无线模块
  14. 基于Netty的UDP服务端开发
  15. 过滤器,监听器,拦截器的区别
  16. js截取某个字符的前、后面所有字符串
  17. 解决:Plug-in org.eclipse.wst.jsdt.ui was unable to instantiate class org.eclipse.wst.jsdt.inte
  18. MATLAB如何绘制折线图和美化折线图
  19. C应用 -BMP图片存储格式及生成
  20. 南京邮电大学C语言实验报告一

热门文章

  1. Springer Latex 引用参考文献在overleaf上显示问号[?]
  2. Integer和int区别
  3. 【CSDN每日一练 编程题 C语言】严查枪火
  4. Striving For Simplicity: The All Convolution Net 简析
  5. 相关性分析(清风建模学习笔记)
  6. Foxyproxy和autoproxy哪个效率更高?
  7. 解决从自建的私服nexus中下载不下来需要的jar包的问题
  8. 将eclipse里面控制台日志存储在指定文件
  9. 协方差基本概念及公式
  10. 南师大计算机学院老师有哪些,南京师范大学计算机与电子信息学院导师教师师资介绍简介-叶永红...