是什么是数据库连接池?
    数据库连接池就是一个容器,负责分配,管理数据库连接(Connerction)
    它允许应用程序重复使用一个现有的数据库连接,而不是重新建立
    释放空闲时间超过最大空闲时间的数据库连接来避免因为,没有释放数据库连接
    而引起的数据库连接遗漏
    好处:
    资源重用
    提升系统响应时间
    避免数据库连接遗漏:—>
    你比如说现在这个连接池里面有四个数据库连接池
    那么现在已经有四个用户全部连接了,那么第五个人来了
    就会在哪里等待,如果那个人一直在等待数据连接还没归还
    那么这个用户就被遗漏了,这个时候连接池就会去检查怎么
    还没有归还连接,他就回去看那个人在浪费资源,他就会强制
    拿回连接
    标准接口DataSource
    官方(SUN)提供的数据库连接池标准接口,由第三组织实现此接口
    功能获取连接
    Connection getConnection():获取连接对象
    常见的数据库连接池:
    DBCP
    C3P0
    Druid
    Druid(德鲁伊)
    德鲁伊连接池是阿里巴巴开源的数据库连接池项目
    功能强大 性能优秀
    在系统启动之前初始化一个容器,就是一个集合,在集合里边提前申请许多数据库的连接
    使用Druid连接池:
    步骤:

    1. 导入jar包
    2. 定义配置文件
    3. 加载配置文件
    4. 获取数据库连接池对象
    5. 获取连接
    1. datasource:
    2. druid:
    3. driver-class-name: com.mysql.cj.jdbc.Driver
    4. url: jdbc:mysql://localhost:3306/reggie?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
    5. username: root
    6. password: 1234

    Classname:驱动类名
    URL:数据库的地址

    1. driverClassName=com.mysql.jdbc.Driver
    2. url=jdbc:mysql:///db1?useSSL=false&useServerPrepStmts=true
    3. username=root
    4. password=1234
    5. # 初始化连接数量
    6. initialSize=5
    7. # 最大连接数
    8. maxActive=10
    9. # 最大等待时间
    10. maxWait=3000

    加载配置;

    1. /**
    2. * Druid数据库连接池演示
    3. */
    4. public class DruidDemo {
    5. public static void main(String[] args) throws Exception {
    6. //1.导入jar包
    7. //2.定义配置文件
    8. //3. 加载配置文件
    9. Properties prop = new Properties();
    10. prop.load(new FileInputStream("jdbc-demo/src/druid.properties"));
    11. //4. 获取连接池对象
    12. DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
    13. //5. 获取数据库连接 Connection
    14. Connection connection = dataSource.getConnection();
    15. System.out.println(connection); //获取到了连接后就可以继续做其他操作了
    16. //System.out.println(System.getProperty("user.dir"));
    17. }
    18. }

    DruidDataSourceFactory:连接池工厂对象获取连接对象