我正在尝试考虑一种情况,即您需要多个数据库连接实例。
通常,数据库连接是一个用于一切的单例对象。但是,您可能想要创建同一类的另一个实例的原因是什么。(我在某处读过。)
试图理解这一点,两个 DB 连接实例在写入 DB 时似乎很有可能导致冲突。但是阅读时会更快吗?(也许这是一个原因?)
也许数据库连接不是一个很好的例子。如果您知道在任何地方创建多个 Singleton 类的实例是有意义的,您可以给我其他方案。
一个 DB 连接池可能是一个单例,但您当然希望某些应用程序同时有多个 DB 连接可用。想想一个网络服务器。为什么您不希望能够处理多个用户的并发请求?并且数据库通常非常擅长确保这不会导致任何悲剧性冲突(存在事务隔离)。
您可能需要更具体地了解本地应用程序/嵌入式数据库与服务器。
但是,如果您有一个与数据库服务器(SQL Server、Oracle 等)通信的应用程序服务器(IIS、Apache 等),您可能希望同时激活并发和多个连接。您需要并发,因为它是一个处理许多并发请求的服务器,而 sql 服务器应该能够处理它。序列化服务器上的所有数据库活动将是灾难性的。
关于数据库连接,大多数数据库访问技术都提供连接池。所以你只需打开连接,做你的工作,然后关闭。这将获取连接并将其释放回池中,因此不必重新创建它们。
回复:“在写入数据库时,两个数据库连接实例似乎很容易引起冲突”