Hikari连接池DEMO

本文介绍如何使用 HikariCP 库配置 Java 应用的数据源,通过设置数据库连接参数实现 MySQL 数据库的高效连接池管理。
import java.sql.Connection;
import java.sql.SQLException;


import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;


/** 
 * @author Administrator 
 * @date 2015年12月16日 下午2:14:27 
 * @description Hikari数据源
 */
public class DBSource {

<span style="white-space:pre">	</span>private static HikariDataSource dataSource;



<span style="white-space:pre">	</span>/**
<span style="white-space:pre">	</span>* @author Administrator 
<span style="white-space:pre">	</span>* @date 2015年12月17日 下午3:03:52
<span style="white-space:pre">	</span>* @description 获取Hikari数据连接
<span style="white-space:pre">	</span>* @parameter  null
<span style="white-space:pre">	</span>* @return dataSource
<span style="white-space:pre">	</span>* @throws SQLException 
<span style="white-space:pre">	</span>*/
<span style="white-space:pre">	</span>public static synchronized Connection getConnection() throws SQLException {

<span style="white-space:pre">		</span>if(dataSource == null ){

<span style="white-space:pre">			</span>HikariConfig config = new HikariConfig();

<span style="white-space:pre">			</span>String url = "jdbc:mysql://localhost:3306/bstockv2";  //IP地址和数据库要修改
<span style="white-space:pre">			</span>String username = "root";
<span style="white-space:pre">			</span>String password = "";

<span style="white-space:pre">			</span>config.setDriverClassName("com.mysql.jdbc.Driver");
<span style="white-space:pre">			</span>config.setJdbcUrl(url);
<span style="white-space:pre">			</span>config.setUsername(username);
<span style="white-space:pre">			</span>config.setPassword(password);
<span style="white-space:pre">			</span>config.setMaximumPoolSize(100);

<span style="white-space:pre">			</span>config.addDataSourceProperty("cachePrepStmts", "true");
<span style="white-space:pre">			</span>config.addDataSourceProperty("prepStmtCacheSize", "250");
<span style="white-space:pre">			</span>config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
<span style="white-space:pre">			</span>config.setConnectionTimeout(20 * 1000);
 
<span style="white-space:pre">			</span>dataSource = new HikariDataSource(config);
<span style="white-space:pre">		</span>}


<span style="white-space:pre">		</span>return dataSource.getConnection();
<span style="white-space:pre">	</span>}
}

在Spring框架中配置HikariCP连接池通常涉及以下几个步骤: 1. **添加依赖**:首先,你需要在你的`pom.xml`文件中添加HikariCP和Spring Data JPA的依赖,例如: ```xml <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>4.0.3</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> ``` 2. **配置数据源**:在Spring Boot应用的`application.properties`或`application.yml`文件中,设置HikariCP的相关属性,如数据库URL、用户名、密码以及连接池大小等。例如: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/testdb spring.datasource.username=root spring.datasource.password=your_password spring.datasource.hikari.minimum-idle=5 spring.datasource.hikari.maximum-pool-size=20 ``` 3. **配置JPA**:如果你使用的是Spring Data JPA,还需要配置一个EntityManagerFactory和DataSource。在`application.yml`或`@Configuration`类上添加`@EnableJpaRepositories`和`@EntityScan`注解,并创建一个`JpaVendorAdapter` bean: ```yaml spring: jpa: hibernate: ddl-auto: update database-platform: org.hibernate.dialect.MySQL5InnoDBDialect properties: javax.persistence.jdbc.driver: com.mysql.cj.jdbc.Driver show-sql: true data: jpa: repositories: enabled: true entityManagerFactory: myEntityManagerFactory ``` 然后,在配置类中创建EntityManagerFactory: ```java @Configuration @EnableJpaRepositories(basePackages = "com.example.demo.repository") public class JpaConfig { @Bean public DataSource dataSource() { HikariConfig config = new HikariConfig(); // ... (继续配置上述的数据库连接属性) return new HikariDataSource(config); } @Bean public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource) { LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean(); factory.setDataSource(dataSource); factory.setPackagesToScan("com.example.demo.entity"); factory.setJpaVendorAdapter(new HibernateJpaVendorAdapter()); factory.setJpaProperties(hibernateProperties()); return factory; } private Map<String, Object> hibernateProperties() { Map<String, String> props = new HashMap<>(); // ... (添加其他Hibernate配置) return props; } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值