繁体   English   中英

使用连接池时更新数据源

[英]updating the data source while using connection pooling

我正在运行一个使用连接池的应用程序,以便管理从数据库中提取的数据。 对于连接池,我使用的是HikariCP。

在第一个应用程序运行时,还有另一个应用程序在更新数据库。 为连接池创建的数据源是否也会自动更新? 如果没有,我该怎么办? 每次数据库更新时都应该创建一个新的连接池吗?

例如:数据库记录了某个年级的学生。 为连接池创建了一个数据源。 比学生的成绩有所改变。 如何更新数据源?

任何帮助,将不胜感激。 谢谢。

希望这能消除您的困惑。

大多数应用程序在主动处理事务时,仅需要一个线程即可访问JDBC连接,通常只需几毫秒即可完成。 当不处理事务时,连接处于空闲状态。 连接池使空闲连接可以被其他一些线程用来完成有用的工作。

实际上,当线程需要使用JDBC针对MySQL或其他数据库进行工作时,它会请求池中的连接。 使用连接完成线程后,它将返回到池,以便任何其他线程都可以使用它。

无论是否使用连接池,其他应用程序对数据库的更新都会正常进行,并且每次查询数据库时,您都会看到新数据。 您无需“更新连接池”

此图可以帮助您了解实际情况:

数据库服务器架构图

Java所谓的“数据源”是一个抽象概念,代表数据的位置,而不是数据本身。 您可以创建到一个数据源的多个连接,但是只有该数据的一个副本,由数据库服务器控制。

如果从一个应用程序更新数据,则通过连接将消息发送到数据库服务器,以更改保存在数据存储中的数据。 所做的更改对其他任何应用程序都是立即可见的,因为它们都使用相同的数据库(即,相同的物理数据存储)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM