gpt4 book ai didi

java - 带有连接池的 spring boot 应用程序中的 SQLServerDataSource

转载 作者:行者123 更新时间:2023-11-28 22:46:41 24 4
gpt4 key购买 nike

如果我理解这个答案,我正在尝试使用 SQLServerDataSource 设置池化 https://stackoverflow.com/a/25573035/1262568

public DataSource dataSource() {
DataSourceBuilder factory = DataSourceBuilder
.create(this.properties.getClassLoader())
.driverClassName(this.properties.getDriverClassName())
.url(this.properties.getUrl())
.username(this.properties.getUsername())
.password(this.properties.getPassword());
return factory.build();
}

从以这种方式创建的 DataSource 获取连接将返回使用可用连接池之一的池化连接。但是,如果我想使用 SQLServerDataSource 而不是 DataSourceBuilder 怎么办它还会自动使用可用连接池之一吗?

public DataSource dataSource() {
SQLServerDataSource sqlServerDataSource = new SQLServerDataSource();
sqlServerDataSource.setUser(UserName);
sqlServerDataSource.setPassword(Password);
sqlServerDataSource.setURL(Url);
return sqlServerDataSource;
}

最佳答案

Will it also automatically use one of the available connection pool?

不,不会的。 SQLServerDataSource 是 SQL Server(驱动程序)特定类,而 DataSourceBuilder 是 Spring 类。只有后者知道 Spring 及其配置及其配置的连接池。

您是否有理由需要使用 SQLServerDataSource

甚至要从池中访问 native 连接,请使用

SQLServerConnection conn = connection.unwrap(SQLServerConnection.class);

只要记住在connection 上调用close() 而不是conn,这样连接就可以返回到池中。

关于java - 带有连接池的 spring boot 应用程序中的 SQLServerDataSource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57889862/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com