关于数据源(DataSource)的详解

 关于DataSource的测试类

package com.jt.dao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
@SpringBootTest
public class DataSourceTests {
    /*
     * 这里的DataSource是一个数据源标准或者说规范,Java所有连接池需要基于
     * 这个规范进行实现。我们项目中添加了spring-boot-starter-jdbc依赖后,
     * 系统中会自动帮我们引入一个HikariCP连接池,这个连接中有一个HikariDataSource
     * 对象就是基于javax.sql.DataSource规范做了落地实现,这个对象在springboot
     * 工程启动时,进行自动配置(DataSourceAutoConfiguration)。
     */
    @Autowired
    private DataSource dataSource;//HikariDataSource
   /* JDBC2.0 提供了javax.sql.DataSource接口,它负责建立与数据库的连接,当在应用程序中访问数据库时
    不必编写连接数据库的代码,直接引用DataSource获取数据库的连接对象即可。用于获取操作数据Connection对象。
    数据源建立多个数据库连接,这些数据库连接会保存在数据库连接池中,当需要访问数据库时,只需要从数据库连接池中
    获取空闲的数据库连接,当程序访问数据库结束时,数据库连接会放回数据库连接池中。
    DataSource可以看作数据源,它封装了数据库参数,连接数据库,程序中操作DataSource对象即可对数据库进行增删改查操作。*/
    @Test
    void testGetConnection() throws SQLException {
        /* 传统的JDBC访问数据库技术,每次访问数据库都需要通过数据库驱动器Driver和数据库名称以及密码等等资源建立数据库连接。
        这样的连接存在两大问题:
        1. 频繁的建立数据库连接与断开数据库,这样会消耗大量的资源和时间,降低性能。
        2. 数据库的连接需要用户名和密码等等,这些需要一定的内存和CPU一定开销。*/
        //通过dataSource获取链接时,首先要获取的是连接池(HikariPool),然后从池获取连接。
        //这里有三个设计模式:单例模式,享元模式,桥接模式
        Connection connection = dataSource.getConnection();
        System.out.println(connection);
    }

}

了解

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值