gpt4 book ai didi

java - 如何在 Web 应用程序(Spring/Vaadin)中为每个用户创建和维护一个 jdbc 连接?

转载 作者:太空宇宙 更新时间:2023-11-04 14:21:26 24 4
gpt4 key购买 nike

如何创建一个可以在运行时处理数千个 jdbc 连接而不实现连接池的应用程序?据我所知,要建立连接池,我们需要用户名密码和所需的dbinstance url,但这里所有这些都将在运行时提供以连接特定数据库,并且一次将有超过 1000 个用户连接到一组数据库。(内存密集型!)
所以通常它会是这样的:

用户:用户A,用户B,用户C......用户n
db:DB1、DB2、DB3...DBn

任何人都可以指导我如何完成这项任务吗?
我脑子里只有一件事,即为每个 session 创建单个连接,并在该用户特定需要的地方使用它。

我已经使用 Apache Commons DBCP2 进行连接池、MyBatis-Spring 实现、Spring 和 Vaadin 进行不同的应用程序,但不确定他们中是否有人会帮助我!

最佳答案

这是另一种方法:

Oracle 支持proxy authentication 。它会像这样工作:

  1. 为您的应用设置有限权限用户(例如 webgui )
  2. 连接到数据库 webgui (带连接池)
  3. 通过简单地尝试以真实用户身份进行连接(JoeSmith/JoeSmith)来验证真实用户(例如 password ),也许需要第二个连接
  4. 在第一个连接中将用户更改为 JoeSmith (不确定oracle语法是什么,在postgres中它是SET ROLE)
  5. 在数据库 session 结束时重置用户

EclipseLink 有一个postAcquireClientSession方法,不确定MyBatis

如果 ORM 使用缓存,您可能必须删除它

关于java - 如何在 Web 应用程序(Spring/Vaadin)中为每个用户创建和维护一个 jdbc 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27148589/

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