当我们创建一个SpringBoot项目时,如果需要与数据库进行连接,可以把连接放进连接池中,这样,从第二次开始,用这个连接,去连接数据库时,会非常省时省资源。

而java中的DataSource是一个接口,人家只提供的是连接池要遵循的标准与规范。所以我们要选市面上第三方做的连接池,去实现这个接口。

市面上第三方的连接池很多,性能方面的排行是:hikari>druid>tomcat-jdbc>dbcp>c3p0

hikariConnectionPool是哪家公司设计的,我没查到,但这并不妨碍我悄悄用它。不管这些了。

=======     分割线     =======

所用软件:SpringToolsSuit4    ,  有机会再研究idea上怎么配置

 

SpringBoot中配置HikariConnectionPool   大体上分为以下几步:

1:添加Hikari依赖

2:与数据库连接的配置

3:获取数据源对象,基于此对象获取连接

详细步骤:

1,创建SpringBoot项目时,添加JDBC API。

注意:在这里直接搜“Hikar”是搜不到它相关的依赖的,而通过添加JDBC API可以,添加上HikariCP的依赖。(同时也要添加上MySQL Driver依赖)。

      

 

第1步--完成!

 

2,编写 与数据库连接的配置文件,application.properties

#spring datasource
spring.datasource.url=jdbc:mysql://localhost:3306/dbgoods?serverTimezone=GMT%2B8&characterEncoding=utf8  #MySQL驱动8.0以后的版本 要求加上serverTimezone   #MySQL数据库默认的端口号是3306
spring.datasource.username=root
spring.datasource.password=root

第二步--完成!

 

3,获取数据源对象,基于此对象获取连接

创建一个test类,名字叫:DataSourceTests

@SpringBootTest
public class DataSourceTests {
    
   @Autowired
   private DataSource dataSource;

  //通过这个对象dataSource,调用.getConnection()方法,获取与数据库的连接   @Test void testGetConnection() throws SQLException { System.out.println(dataSource.getConnection()); } }

运行后,控制台中显示:

 

 

 说明,我们通过dataSource这个对象,获取到了与数据库的连接。

这个连接是HikariProxyConnection@2049121789

通过它 就可以去访问mysql数据库了。

 

==拓展:

1.dataSource这个对象的类型其实是HikariDataSource。(通过反射技术:dataSource.getClass().getName()  可得到答案)

因为DataSource是java提供的一个总的接口,它是java为各大厂商制定的标准与规范。

而HikariDataSource就是一个第三方厂商根据   标准与规范   制作出来的 一个实现类。

 

2.第一次连接数据库时,需要创建连接。那么是通过jdbc的哪个API去创建的呢?

我们知道,第一次连接时,需要注册数据库驱动,而注册驱动,用的是驱动程序中的API---Driver。

JAVA提供了一个总的Driver接口,它也是---标准与规范。

而MySQL数据库就提供了一组API,或者说一个实现类  也叫 Driver 去实现 标准与规范。

这样我们就可以通过MySQL提供的Driver ,得到连接。