【发布时间】:2020-09-01 08:29:00
【问题描述】:
使用 DatasSourceBuilder 创建数据源
@Bean
DataSource dataSource() throws SQLException {
DatasSourceBuilder dataSource = DatasSourceBuilder.create();
dataSource.url("");
...
..
return dataSource.build();
}
使用 DriverManagerDataSource 创建数据源
@Bean
DriverManagerDataSource dataSource() throws SQLException {
DriverManagerDataSource dataSource = DriverManagerDataSource();
dataSource.setUrl("");
...
..
return dataSource;
}
我正在使用上述两种方法创建 jdbc
@Bean
public JdbcTemplate jdbcTemplate()
{
return new jdbcTemplate(dataSource());
}
我正在使用 jdbcTemplate,如下所示
void m1()
{
simpleJdbc = new simpleJdbc(jdbcTemplate);
simpleJdbc.execute(procedure)
}
所以我的问题是,如果我重复调用 m1() 50 次,那么在这两种情况下将创建多少个连接,即 DriverManagerDataSource 和 DatasSourceBuilder
【问题讨论】:
-
DriverManagerDataSource-> 50,DataSourceBuilder-> 取决于您的最大池大小设置。您不应该在生产中使用DriverManagerDataSource,而是将其用于测试和演示。它不是连接池,将在需要时打开连接(并在正确设置后关闭它)。但是打开连接速度很慢,您希望使用适当的连接池来连接连接。 -
谢谢@M.Deinum 你能把你的评论作为答案吗?我将使用 DataSourceBuilder 。谢谢
-
为什么还要使用
DataSourceBuilder? Spring Boot 会自动为您配置一个数据源以及一个JdbcTemplate。除非您有多个数据源,否则感觉就像您正在围绕框架工作。
标签: spring spring-boot spring-data-jpa connection-pooling jdbctemplate