我正在開發公共使用的Java Swing應用程序。這個程序需要連接一個mysql數據庫。我應該直接從Java Swing應用程序連接到數據庫嗎?公共Java Swing應用程序連接到數據庫
2
A
回答
2
這取決於你有多信任你的客戶。將您的整個數據庫暴露給外部網絡可能會有風險,因爲惡意用戶可以輕鬆地對您的程序進行逆向工程,以找出連接到您的數據庫的憑證。儘管通過將安全性推向數據庫,您可以在某種程度上抵禦與此相關的風險,但使用通用編程語言(如Java)編寫的適當服務層將更適合於此。通過適當的服務API訪問數據庫,可以爲數據庫中的數據一致性提供更高的保證。之後,甚至可以在數據庫供應商之間切換,甚至切換到另一種存儲方法(如NoSQL解決方案),同時保持Swing客戶端幾乎不變(由於設計良好的服務API)。從長遠來看,這絕對是值得的。
編輯:跟進如何實現這樣的Web服務
如果你希望儘量減少外部依賴的回答,您可以與Java標準完全基於一個解決方案,像JAX-WS去。它是作爲JavaEE平臺的一部分提供的,因此雖然不是絕對必要的,但使用兼容的實現可能是一個好主意,因爲它提供了諸如聲明性事務,身份驗證和授權等服務,以及您在實現時可能需要的更多內容暴露您的服務API。 Spring Framework是JavaEE的流行替代品,如果您想要對後端服務層進行全面控制,但它可能需要更多的前期投資以獲取學習曲線。您可以連接到Java SE應用程序的JAX-WS服務或Spring Remoting,因此兩者都可以成爲實現正確的3-tiered architecture的可行途徑。
相關問題
- 1. 使用java swing應用程序連接遠程數據庫
- 2. 應用程序連接到數據庫
- 3. Facebook從公共應用程序連接
- 4. 應用程序連接到數據庫
- 5. 將Java數據庫加載到Java Swing應用程序
- 6. 將使用Tomcat的Java應用程序連接到數據庫
- 7. 應用程序的數據庫連接
- 8. node.js +公共mysql數據庫:「連接ECONNREFUSED」
- 9. 與數據庫連接的Java Swing
- 10. 無法將Java應用程序連接到SQL Server數據庫
- 11. Java應用程序無法連接到mysql數據庫openshift
- 12. Java應用程序:連接到PostgreSQL數據庫
- 13. 將Java應用程序連接到YouTube Vitess數據庫
- 14. Java應用程序連接到複製的mysql數據庫
- 15. 無法連接到Java應用程序中的SQLServer數據庫
- 16. 將Java應用程序連接到Ruby on Rails SQLite3數據庫
- 17. 無法連接到Java數據庫應用程序
- 18. 在整個應用程序上共享數據庫連接或在每個請求上連接到數據庫?
- 19. 應用程序和數據庫連接
- 20. Android應用程序遠程連接到數據庫
- 21. 連接Android應用程序到本地MySQL數據庫使用我的Java庫
- 22. Java應用程序連接到MySQL數據庫 - 未知數據包類型0x4a
- 23. 連接C#應用程序到MS Access 2013數據庫
- 24. 如何部署Lightswitch應用程序連接到MySql數據庫
- 25. 如何從Web應用程序外部連接到數據庫?
- 26. 幫助Java程序(Swing +數據庫)
- 27. 從Windows Mobile應用程序直接連接到Oracle數據庫
- 28. 將應用程序連接到數據庫理論
- 29. java web應用程序中的多個數據庫連接
- 30. Java應用程序連接在同一個數據庫中
一般慣例會建議您有一個「管理員」API來處理這些類型的事情,它控制您可以做什麼以及如何創建表示數據的對象。物理連接到數據庫的方式取決於數據庫的存儲位置。如果它位於不同的服務器上,則Web界面/寧靜的API可能更合適(更不用說更靈活了) – MadProgrammer
謝謝您的回答。我也想過一個Web界面。但是,這不會不必要地拖慢事情,因爲我現在必須通過我們的界面進行連接,通過其他方法調用例如webservices,服務器端的進程代碼? – Jason
它會增加開銷,但是它增加了一層安全性,因爲您限制了人們可以通過Web服務執行的操作,並限制了可以主動連接到數據庫的域(僅限來自Web的傳入連接服務器本身)和解耦代碼,所以你的客戶端不關心使用了哪個數據庫,只是Web服務維護它的API合約 – MadProgrammer