2015-10-06 106 views
4

我不知道是否每次我从一个DataSource与ds.getConnection()获得连接时,我的应用程序和MySQL实例之间的新会话是创建还是存在一些重用逻辑?从DataSource getconnection()和Mysql会话连接有什么区别?

+0

这取决于你如何配置数据源。如果您将其配置为池式数据源,您将打开N个会话,然后重新使用连接。 – BackSlash

+0

@BackSlash我想知道的是,如果以下情况属实:1连接= 1会话? – Adelin

+0

每个连接使用单个会话,但是,关闭连接并不一定意味着会话也关闭。请参阅@BackSlash关于共享的评论。 – Shadow

回答

3

由DataSource创建的每个Connection对象都表示与数据库的连接 - 数据库中的会话,即。

数据库配置为支持的最大连接数限制了应用程序可能同时向数据库打开的活动连接对象的数量。但是,如果驱动程序支持并在代码中使用连接池,则在代码中关闭Connection对象只会将Connection对象返回到池,并且与数据库本身的连接不会关闭。以后可以在代码中重用连接池中的连接对象,而无需创建与数据库的新连接。

有关详细信息,请参阅DataSource object上的Java文档。

相关问题