gpt4 book ai didi

java - Jdbc连接池,按用户名进行连接缓存

转载 作者:行者123 更新时间:2023-11-30 02:49:36 25 4
gpt4 key购买 nike

我正在使用自动配置的 Tomcat 池数据源开发基于 Spring boot 的应用程序。我必须在不同的数据库模式下调用相同的 Oracle 存储过程(所有这些模式都有执行授权),并且我没有提前指定用户/密码列表。但我在程序调用时知道凭据。我使用 dataSource 对象的 getConnection(user, password) 方法来接收连接,它工作正常。但是,如果我将过程三次一一调用 - 对于用户 A、用户 B 和用户 A,连接方法 reconnect() 将被调用两次(对于用户 B 和与用户 A 的第二次调用) - 因为 ConnectionPool对象,在DataSource中使用,从空闲队列中弹出相同的连接,检查其用户和密码,并使用新的凭据再次连接到数据库。结果,我失去了连接池的所有好处。

您能否告诉我,连接池的某些实现是否可以按用户名缓存空闲连接?或者也许有其他方法可以减少重新连接时间?不幸的是,我无法更改 Oracle 过程,甚至无法为其实现包装器。

最佳答案

C3P0 ComboPooledDataSource 是非常好的解决方案。它使用用户|密码 key 将连接池存储在Map中

关于java - Jdbc连接池,按用户名进行连接缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39104089/

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