使用 Druid 数据库连接池可以有效地提高数据库连接的稳定性和性能,下面是使用 Druid 数据库连接池的详细步骤和示例。
准备工作
在使用 Druid 数据库连接池之前,需要先添加相关的依赖。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.22</version>
</dependency>
添加配置
在 Spring Boot 应用配置文件中添加以下配置,注意需要修改自己的数据库连接信息。
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
initial-size: 5
min-idle: 5
max-active: 20
max-wait: 60000
test-on-borrow: true
test-on-return: false
test-while-idle: true
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1 FROM DUAL
validation-query-timeout: 3000
use-global-data-source-stat: true
filters: stat,wall
说明:
url
、username
、password
配置数据库连接信息。driver-class-name
填写数据库驱动的包名。type
配置使用的数据源类型为 Druid 数据库连接池。initial-size
、min-idle
、max-active
、max-wait
配置连接池的初始大小、最小空闲连接数、最大连接数和最大等待时间。test-on-borrow
、test-on-return
、test-while-idle
配置连接池的运行时状态检测项。time-between-eviction-runs-millis
、min-evictable-idle-time-millis
配置连接池的空闲连接检测项。validation-query
、validation-query-timeout
配置连接验证查询和超时时间。use-global-data-source-stat
配置使用全局统计信息。
使用连接池
在 Spring Boot 中使用连接池非常简单,只需要在需要使用数据库连接的 @Service
或者 @Repository
类中注入 DataSource
对象,即可从连接池中获取连接,然后进行数据库操作。
以下示例是根据上述配置文件,在 Spring Boot 中使用 Druid 数据库连接池的简单示例。
@Service
public class MyService {
@Autowired
private DataSource dataSource;
public void query() throws SQLException {
Connection conn = dataSource.getConnection();
String sql = "SELECT * FROM user";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
// 处理结果集
rs.close();
ps.close();
conn.close();
}
}
以上示例中,通过 @Autowired
注解将 DataSource
对象注入到了 MyService
中,然后在 query()
方法中使用连接池获取数据库连接,并执行查询操作。最后再关闭结果集、语句和连接对象,释放资源。
另外,也可以使用 JdbcTemplate
简化数据库操作,以下是使用 JdbcTemplate
的示例:
@Service
public class MyService {
@Autowired
private JdbcTemplate jdbcTemplate;
public void query() throws SQLException {
String sql = "SELECT * FROM user";
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
// 处理结果集
}
}
以上示例中,我们通过 @Autowired
注解注入了 JdbcTemplate
对象,然后直接使用 queryForList()
方法进行查询操作,得到结果集后再进行处理。
综上所述,以上是在 Spring Boot 中使用 Druid 数据库连接池的详细攻略,希望可以帮助到大家。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何在SpringBoot 中使用 Druid 数据库连接池 - Python技术站