Mybatis 如何整合 Druid 数据连接池呢?首先打开创建的 Maven 工程,找到 pom.xml 文件,添加 Druid 依赖。
<!--druid连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.14</version>
</dependency>
由于 Mybatis 默认情况下是不支持 Druid 的,需要对 Mybatis 进行如下扩展:
-
在工程目录下,创建一个名为 datasource 的子包,然后再在这个数据源包下创建一个名为 DruidDataSourceFactory 的类,这是我们自定义的 Druid 连接池工厂,用于构建 Druid 数据连接池,但注意必须继承 自 UnpooledDataSourceFactory(由Mybatis 提供的用于自定义数据工厂的扩展),工程目录结构如下:
代码如下:
public class DruidDataSourceFactory extends UnpooledDataSourceFactory {//mybatis提供用于提供自定义数据工厂的扩展 @Override public DataSource getDataSource() { try { ((DruidDataSource)this.dataSource).init();//获取数据源的时候需要额外进行一次数据初始化 } catch (SQLException e) { throw new RuntimeException(e); } return this.dataSource; } //实例化 public DruidDataSourceFactory() { this.dataSource = new DruidDataSource(); } }
-
作为这个工厂类,如何让 Mybatis 知晓呢?下面要回到 mybatis-config.xml 这个配置文件中对 datasource标签里的内容进行改造(对数据源进行设置),设置结果如下:
注意 :Mybatis 使用自带数据连接池时,数据库JDBC驱动的属性名为driver ,但是要在 Druid 里面需要改成 driverClassName。
经过上面的操作,Mybatis 整合Druid 连接池的操作就完成了,后面对数据库的一系列处理都是基于这个连接池来进行的。