我正在运行一个应用程序,它使用连接池来管理从数据库中获取的数据。对于连接池,我使用HikariCP。
当第一个应用程序运行时,还有另一个更新数据库的应用程序。是否也会自动更新为连接池创建的数据源?如果没有,我怎么做呢?每次数据库更新时,我应该创建一个新的连接池吗?
例如:数据库中有一个学生有一定成绩的记录。为连接池创建了一个数据源。而不是学生的成绩被改变了。如何更新数据源?
任何帮助都将不胜感激。谢谢。
发布于 2016-09-20 09:37:03
希望这能消除你的困惑。
大多数应用程序在主动处理事务时只需要一个线程才能访问JDBC连接,而事务处理通常只需几毫秒即可完成。当不处理事务时,连接处于空闲状态。连接池使其他线程可以使用空闲连接来完成有用的工作。 实际上,当线程需要使用JDBC对MySQL或其他数据库执行操作时,它会请求池中的连接。当线程使用连接完成时,它会将它返回到池中,以便任何其他线程都可以使用它。
无论是否使用连接池,其他应用程序对数据库的更新都将正常进行,每次查询数据库时都会看到新的数据。你不需要“更新连接池”
发布于 2016-09-20 10:11:56
这张图表可能会帮助您理解实际发生的事情:

Java所称的"DataSource“是一个抽象的概念,它代表数据的位置,而不是数据本身。可以创建到数据源的多个连接,但只有一个由数据库服务器控制的数据副本。
如果您更新来自一个应用程序的数据,您将通过与数据库服务器的连接发送一条消息,以更改数据存储区中的数据。提交的更改对任何其他应用程序都是立即可见的,因为它们都使用相同的数据库(即相同的物理数据存储)。
https://stackoverflow.com/questions/39590415
复制相似问题