我似乎一直絆倒這個問題。我似乎無法得出直接的答案。Java Web應用程序sql結果與對象列表
我有一個使用Java,Tomcat,JSP,MySQL等的MVC web應用程序。我沒有使用框架。我有模型實體代表數據庫中的每個表。我正在使用DAO訪問數據庫。
假設你有一個人,一份工作和一份申請。
在視圖中,您需要將這些關聯起來才能爲列表生成一行。
到目前爲止,我一直在DAO中進行JOIN,並使用ResultSupport
從ResultSet
返回一個長的SQL結果。然後,我使用JSTL forEach
標記在JSP中進行循環。
我知道這不是最好的辦法。
但是,那麼,我需要在DAO中創建哪些數據來傳回每一行數據?我是否在視圖中定義了一個包含所需的所有字段名稱的新對象?這是一個DTO嗎?或者我將原始對象填入HashMap
並傳回?
當我問數據庫時,我認爲做一個連接會比用一堆小的查詢返回單個對象更高效。
必須有一個可接受的模式來做到這一點?我寧願遵循一個可接受的解決方案。
有人可以請指出我在正確的方向嗎?
感謝
這是一個很好的答案。謝謝。你能推薦一個描述這樣的架構的資源嗎?我發現的所有資源都過於簡化,無法使用。例如只有一個對象是每個視圖。有沒有確定的工作或教科書?這不是一個高級話題。 – PrecisionPete
很高興有幫助:)請考慮標記我的答案爲「接受」。該模式經常使用。這裏有幾個鏈接讓你開始:http://www.codeproject.com/Tips/372152/Mapping-JDBC-ResultSet-to-Object-using-Annotations(你不需要使用註釋,只需要替換一個類與getter和setter(這是一個Bean是什麼)。Oracle教程詳細介紹了數據庫連接的經濟性:http://docs.oracle.com/javase/tutorial/jdbc/basics/retrieving.html。希望有所幫助。請考慮標記我的答案爲接受:) – lorinpa