使用连接池时更新数据源

时间:2016-09-20 09:27:55

标签: java mysql connection-pooling hikaricp

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

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

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

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

2 个答案:

答案 0 :(得分:2)

希望this清除你的困惑。

  

大多数应用程序只需要一个线程即可访问JDBC   他们正在积极处理交易时的连接   通常只需几毫秒即可完成。什么时候不处理   事务,连接闲置。连接池启用   一些其他线程使用空闲连接来做有用的工作。

     

实际上,当线程需要对MySQL或其他线程起作用时   使用JDBC的数据库,它从池请求连接。当。。。的时候   线程使用连接完成,它将它返回到池中,所以   它可以被任何其他线程使用。

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

答案 1 :(得分:1)

此图表可能有助于您了解实际发生的情况:

Diagram of database server architecture

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

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