一個簡單的問題:在Java/JDBC中訪問數據庫的更有效方法是什麼? 我是一個web開發人員,我想寫一些可重用和可擴展的代碼。
對我來說有趣的是使用ResultSupport這樣的工具:它在資源使用方面是否過於膨脹?
你能提出什麼建議?訪問數據庫的Java高效策略
5
A
回答
5
不僅僅是JDBC具體,只是一般的SQL東西
如果您必須重新運行一個查詢多次,利用PreparedStatement。如果可用,請使用存儲過程。 YMMV顯然不便攜。
如果您不使用它,請始終關閉您的ResultSet或Statement。關閉語句將自動關閉與該語句關聯的所有ResultSet。關閉ResultSet仍然是一個好習慣。
嘗試限制可查詢的內容,例如:從XXX和YYY之間的order_date訂單中選擇*。在MySQL中,查詢可能是全表掃描或「範圍」,具體取決於返回的數據量。因此,決定如何'靈活'你想要你的查詢
如果你正在使用MySQL,請使用解釋來優化您的查詢。如果您使用的是JPA,那麼您不會看到生成的SQL。 (這不完全是JDBC)您可能希望在ORM管理器上啓用日誌記錄以顯示使用的SQL語句。然後使用解釋來優化。如果ORM生成真正複雜的查詢,則可能需要使用@NamedNativeQuery
如果您的JDBC驅動程序支持批量更新,請使用它。 PreparedStatement和ResultSet支持批量更新。
您也可以控制提交。如果您正在執行大量更新,請將其關閉。你自己調用commit()。
-1
我認爲最簡單和最常用的方法是使用Spring及其JDBCTemplate。
最好的方法可能取決於你用來創建你的網絡應用程序的堆棧。如果你重新開始,那麼Spring是一個很好的選擇。
0
使用總是連接池數據源如c3p0是非常重要的。
0
有一個將java對象映射到mysql數據庫的項目。 Azirt.
0
使用連接池(或者是一個從你的容器或獨立連接池像c3p0或DBCP)和類似DBUtils或Spring的JdbcTemplate。
1
相關問題
- 1. 高效的並行策略
- 2. 訪問2007年數據庫的合併策略
- 3. JPA - 訪問策略
- 4. 數據庫修剪策略
- 5. 從服務器獲取高效數據的策略
- 6. 高效的PHP緩存策略?
- 7. 提高口譯員績效的策略
- 8. 高效的TFS分支策略建議
- 9. 策略,根據用戶訪問級別
- 10. 策略或訪問者?
- 11. 用於插入高讀取表(Sql Server)的數據庫策略
- 12. JAVA MVC訪問數據庫
- 13. MS訪問數據庫Java
- 14. Java安全策略:根據類加載器授予訪問權
- 15. 在記錄插入方面的高效數據庫訪問
- 16. aws Lambda函數訪問策略
- 17. 友好的URL數據庫策略
- 18. 使用數據庫序列的策略?
- 19. 從java到mongo db的數據訪問的任何推薦模式或策略?
- 20. 提高數據庫訪問的性能
- 21. 如何在java中高效地訪問半稀疏數據?
- 22. 數據庫緩存失效策略和時機
- 23. 如何避免Sails.js策略和控制器的多個數據庫訪問?
- 24. 共享業務和數據訪問實體的策略
- 25. 數據訪問層中的異常處理策略
- 26. 使用ajax高效地訪問mysql數據庫(jQuery)
- 27. Java - 循環訪問數據庫記錄的有效方法
- 28. Trigger.io:Android問題訪問原產地策略
- 29. Silverlight客戶端訪問策略問題
- 30. SQL Server數據庫優化策略
而對於可伸縮性,使用從JNDI查找的池數據源。 – gustafc 2010-04-08 17:15:21