JDBC 中需要用 DriverManager 来提供链接对象,通过使用 DriverManager.getConnection() 来创建连接,在连接内才能进行数据库操作。

Mybatis 中使用 SqlSesionFactory 来提供 SqlSession 会话,并在会话内进行数据库操作。而在Mybatis中,并非通过 DriverManager 来获取连接,而是使用 DataSource 实现类来获取,因为数据库建立和关闭很耗费系统资源。

数据库链接的建立和关闭是极其耗费系统资源的操作,通过DriverManager获取的数据库连接,一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完后立即关闭连接,频繁的打开、关闭连接会持续消耗网络资源,造成整个系统性能的低下。

常见的 DataSource 实现类都采用池化技术,即一开始就创建好N个连接,这样之后使用就无需再次进行连接,而是直接使用现成的Connection对象进行数据库操作。

我们也可以设置切换为其他数据源实现:配置Mybatis数据源实现

HikariCP 连接池

前面我们提到了数据源还有其他实现,比如C3P0、Druid等,它们都是非常优秀的数据源实现(可以自行了解),不过我们这里要介绍的,是之后在SpringBoot中还会遇到的HikariCP连接池

HikariCP是由日本程序员开源的一个数据库连接池组件,代码非常轻量,并且速度非常的快。根据官方提供的数据,在酷睿i7开启32个线程32个连接的情况下,进行随机数据库读写操作,HikariCP的速度是现在常用的C3P0数据库连接池的数百倍。在SpringBoot 3.0中,官方也是推荐使用HikariCP。