1.添加pom.xml依賴
如果是SpringBoot2.0,那么默認的連接池就是Hikaricp,不需要配置
其他的,如果繼承
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
</parent>
直接添加Hikaricp包就可以
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.1.0</version>
</dependency>
反之使用jdbc包的要去除掉tomcat的連接配置
<!-- JDBC連接數據庫,因為要用HikariCP,所以需要將SpringBoot中的tomcat-jdbc排除 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- HikariCP 連接池依賴,從父依賴獲取額版本 -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<!-- <scope>runtime</scope> -->
</dependency>
2.添加配置:
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test1?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull spring.datasource.username=root spring.datasource.password=hongda$123456 spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datasource.max-idle=10 spring.datasource.max-active=15 spring.datasource.max-lifetime=86430000 spring.datasource.log-abandoned=true spring.datasource.remove-abandoned=true spring.datasource.remove-abandoned-timeout=60 spring.datasource.initialize=false spring.datasource.sqlScriptEncoding=UTF-8
DataSourceConfig:
import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.sql.DataSource; /** * HikariCP連接池配置 */ @Configuration public class DataSourceConfig { @Value("${spring.datasource.url}") private String dataSourceUrl; @Value("${spring.datasource.username}") private String user; @Value("${spring.datasource.password}") private String password; @Bean public DataSource dataSource() { HikariConfig config = new HikariConfig(); config.setJdbcUrl(dataSourceUrl); //數據源 config.setUsername(user); //用戶名 config.setPassword(password); //密碼 config.addDataSourceProperty("cachePrepStmts", "true"); //是否自定義配置,為true時下面兩個參數才生效 config.addDataSourceProperty("prepStmtCacheSize", "250"); //連接池大小默認25,官方推薦250-500 config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048"); //單條語句最大長度默認256,官方推薦2048 config.addDataSourceProperty("useServerPrepStmts", "true"); //新版本MySQL支持服務器端准備,開啟能夠得到顯著性能提升 config.addDataSourceProperty("useLocalSessionState", "true"); config.addDataSourceProperty("useLocalTransactionState", "true"); config.addDataSourceProperty("rewriteBatchedStatements", "true"); config.addDataSourceProperty("cacheResultSetMetadata", "true"); config.addDataSourceProperty("cacheServerConfiguration", "true"); config.addDataSourceProperty("elideSetAutoCommits", "true"); config.addDataSourceProperty("maintainTimeStats", "false"); HikariDataSource ds = new HikariDataSource(config); return ds; } }
參考:
https://gitee.com/mirrors/hikaricp
http://fanlychie.github.io/post/spring-boot-tomcat-pool-hikaricp-dbcp-dbcp2.html
https://www.jianshu.com/p/f728e8c131a9
https://blog.csdn.net/chen15369337607/article/details/78142751
http://blog.didispace.com/Springboot-2-0-HikariCP-default-reason/
