簡體   English   中英

在jdbc應用程序中連接到mysql服務器的正確方法是什么?

[英]What is the correct way of connecting to a mysql server in a jdbc app?

我有一個具有幾個注冊用戶的數據庫,可以使用jdbc通過Java應用程序訪問該數據庫。 我在其他地方讀過,應該在最短的時間內打開和關閉連接,大多數情況下,連接應與要執行的語句或查詢在同一try塊中進行。 但是,這意味着我應該將用戶名和密碼存儲在程序存儲器中,並反復使用它來創建新的連接。 但是在程序存儲器中存儲密碼不是安全性問題嗎? 如何建立與數據庫的新連接?

我假設您的問題不是關於如何對數據庫連接進行編碼。

這實際上取決於您的用戶是否在數據庫中注冊了ID,或者您只有一個ID(非人類)用於程序連接並為所有用戶提供服務。 如果是前者,則可以某種方式提示用戶輸入一次密碼,將其存儲在變量中,使用變量進行連接,使用后斷開連接,必要時重新連接/斷開連接。 該密碼僅“即時”存儲在內存中,並且在程序結束后不再存在,因此是安全的。

如果是較晚的版本,則最好讓程序在Web / Servlet服務器中運行,並且像Luiggi所說的那樣,使用連接池。 在這種情況下,連接密碼將被編碼在某些配置文件中,並且只有服務器管理員才能訪問。 如果沒有這樣的服務器,則必須返回上一段中的解決方案,並在數據庫中注冊所有用戶,每個用戶都有自己的ID和密碼。

希望能幫助到你。

我在其他地方讀過,應該在最短的時間內打開和關閉連接

交易應在最短的時間內完成。 不斷地打開和關閉連接會導致很多(網絡)開銷。
但是,如果使用連接池,則打開和關閉連接只會導致從池中獲取連接並將連接釋放回池中。 在這種情況下,打開和關閉連接應盡快完成,以便其他進程/線程可以重新使用該連接。 連接池本身可以為您管理(網絡)連接的實際打開和關閉,以及其他有用的功能,例如確保您關閉結果集,關閉准備好的語句,保持連接正常等。
無論是從客戶端應用程序還是應用程序服務器使用數據庫連接,使用連接池都是有益的。 我已經在先前的答案中對此進行了解釋。

暫無
暫無

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

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