SpringBoot1.X整合数据库连接池HikariCP

匿名 (未验证) 提交于 2019-12-03 00:03:02

SpringBoot2默认的数据库连接池已经是HikariCP,所以不需要再配置,SpringBoot2版本之前的则需要配置

添加maven依赖

<!-- 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>   

添加配置

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.java

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);          /** 是否自定义配置,为true时下面两个参数才生效 */         config.addDataSourceProperty("cachePrepStmts", "true");         /** 连接池大小默认25,官方推荐250-500 */         config.addDataSourceProperty("prepStmtCacheSize", "250");          /** 单条语句最大长度默认256,官方推荐2048 */         config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");         /** 新版本MySQL支持服务器端准备,开启能够得到显著性能提升 */         config.addDataSourceProperty("useServerPrepStmts", "true");          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;     } }  
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!