2015-10-06 108 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文檔。

相關問題