在springboot2.x,默认采用的是hikari连接池,相比druid,hikari具有更高的性能。
springboot2.x中如何使用hikari连接池
1、pom.xml中配置
<!-- jdbc starter引入 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- jdbc mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
2、application.yml配置
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql://localhost:3306/rocketdemo?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8
hikari:
minimum-idle: 5 #最小连接数
maximum-pool-size: 10 #池中最大连接数
connection-timeout: 20000 #连接超时时间
idle-timeout: 30000 # 空闲等待时间 ms
auto-commit: true #
max-lifetime: 1800000 #30分钟
注意, username、password、url 需要配置在spring.datasource节点下,而不是spring.datasource.hikari节点下 。
3、访问数据库测试代码
import com.tingcream.logdemo.order.Order;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringTest {
@Autowired
private JdbcTemplate jdbcTemplate;
@Test
public void test1(){
Order order = findOrderById(1);
System.out.println(order);
}
public Order findOrderById(long id){
String sql ="select * from t_order where id=?";
RowMapper<Order> rowMapper = new BeanPropertyRowMapper<>(Order.class);
List<Order> list = jdbcTemplate.query(sql, rowMapper,new Object[] {id});
if(list!=null && list.size()>0) {
return list.get(0);
}else {
return null;
}
}
}