簡體   English   中英

Servlet與數據庫的連接

[英]servlet connection to DB

最初,在閱讀了有關該主題的書籍之后,我堅信從servlet處理數據庫的算法如下:創建連接->連接到數據庫->形成請求->將請求發送到數據庫- >獲取查詢結果->處理它們->關閉連接->確定。

現在,在對實際方面有了更好的了解之后,我意識到沒有人這樣做,並且根據以下算法,所有事情都通過連接池進行:

初始化Servlet->創建連接池->來自用戶的請求->從池中獲取免費連接->形成請求->將請求發送到數據庫->獲取查詢結果->處理它們- >將連接返回到池中->確定。

現在,我遇到了一個問題:我們有100個用戶,他們分為10個組,每個組都有自己的用戶名和密碼來連接數據庫。 此外,每個組可能對數據庫具有不同的權限。 在這種情況下,我應該如何使用連接池? 如果我理解正確的話,一個池只不過是一組具有單個登錄名和密碼的類似連接而已。 在這里,我有10對用戶名/密碼。 在這種情況下,我似乎無法使用該池。 我該怎么辦?

使用10個連接池,每組一個。

如果您使用的是servlet,我假設10個最終用戶組將看到一些前端屏幕? 每個用戶組的授權權限是否由Servlet控制,是否會有不同的功能?

在這種情況下,所有數據庫連接都是相同的。 為什么代碼實際上需要單獨的數據庫連接權限? 他們是否完全使用單獨的模式,在這種情況下,您將需要單獨的連接?

通常的方式是三層方案,其中Servlet使用自己專用的DB用戶帳戶連接到DB,並代表用戶完成所有工作。 在這種情況下,訪問控制權留給servlet,DB會做servlet要求的任何事情。 該專用帳戶將需要有權訪問所有用戶數據。

這種方法確實有缺點,特別是如果您已經具有在數據庫中管理用戶權限的區域性/基礎結構。 如果要保留此設置,則必須為每個用戶組配置單獨的池,除非確定組的數量並且事先無法通過簡單的(基於文件的)配置來完成,否則就不要配置池,否則希望避免這種情況。使用新的連接,數據庫足夠快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM