当我们创建一个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 ,得到连接。