简介

4.1 数据库连接池简介

  • 数据库连接池是个容器,负责分配、管理数据库连接(Connection)
  • 它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;
  • 释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏
  • 好处

    • 资源重用
    • 提升系统响应速度
    • 避免数据库连接遗漏

数据库使用了数据库连接池后,就能达到Connection对象的复用,如下图
用户-数据库连接池-数据库
连接池是在一开始就创建好了一些连接(Connection)对象存储起来。用户需要连接数据库时,不需要自己创建连接,而只需要从连接池中获取一个连接进行使用,使用完毕后再将连接对象归还给连接池;这样就可以起到资源重用,也节省了频繁创建连接销毁连接所花费的时间,从而提升了系统响应的速度。

实现

  • 标准接口:DataSource

官方(SUN) 提供的数据库连接池标准接口,由第三方组织实现此接口。该接口提供了获取连接的功能:

Connection getConnection()

那么以后就不需要通过 DriverManager 对象获取 Connection 对象,而是通过连接池(DataSource)获取 Connection 对象。

  • Druid(德鲁伊)
  • Druid连接池是阿里巴巴开源的数据库连接池项目
  • 功能强大,性能优秀,是Java语言最好的数据库连接池之一

Druid使用

  • 导入jar包 druid-1.1.12.jar
  • 定义配置文件
  • 加载配置文件
  • 获取数据库连接池对象
  • 获取连接
  • 首先需要先将druid的jar包放到项目下的lib目录(需手动创建,命名随意)下并添加为库文件
  • 右击驱动包,在Add as Library(添加为库文件)的地方,有如下三个选项
  • Global Library : 全局有效
  • Project Library : 项目有效
  • Module Library : 模块有效

在本例中,我们只需在该模块下有效即可,选择:Module Library

  • 编写配置文件druid.properties
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///`数据库名`?useSSL=false&useServerPrepStmts=true
username=root
password=****
# 初始化连接数量
initialSize=5
# 最大连接数
maxActive=10
# 最大等待时间
maxWait=3000

保存放在模块的 src 下。

  • 使用druid的代码
import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.FileInputStream;
import java.sql.Connection;
import java.util.Properties;

/**
 * Druid数据库连接池演示
 */
public class DruidDemo {
    public static void main(String[] args) throws Exception {
        // 导入 jar 包

        // 定义配置文件

        // 加载配置文件
        Properties prop = new Properties();
        System.out.println(System.getProperty("user.dir"));     // 打印当前路径

        prop.load(new FileInputStream("jdbc-demo/src/druid.properties"));
        // 获取连接池对象
        DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);

        // 获取数据库连接 Connection
        Connection connection = dataSource.getConnection();
        System.out.println(connection);
    }
}

idea快捷键:自动生成返回值

Windows:ctrl+alt+v

MAC:command+alt+v

资源druid-1.1.12

相关练习参照文章:

最后修改:2022 年 01 月 04 日 05 : 30 PM
如果我的文章对你有用,请随意赞赏