取決於您希望客戶使用「服務」的方式。
舉例來說,你可以提供一個EmployeeService
接口:
public interface EmployeeService {
public Employee getEmployee(int empId);
public Employee getEmployee(String name);
public List<Project> getProjects(int empId);
}
或許也是一個ProjectService
:
這些類的
public interface ProjectService {
public List<Project> getProjects();
public List<Project> getProjects(int projectId);
}
可以實現任何你想要的工作。如果這是一個簡單的模型,那麼您可以考慮放入一個處理查詢模型(表格)部分的抽象。在此之前,數據訪問對象模式(DAO):
public class EmployeeServiceImpl implements EmployeeService {
private EmployeeDAO employeeDao = ...;
public Employee getEmployee(int empId) {
return employeeDao.getEmployee(empId);
}
...
}
和支持EmployeeDAO
:
public class EmployeeDAOImpl implements EmployeeDAO {
public Employee getEmployee(int empId) { //try/catch omitted
Statement stmt = conn.prepareStatement(...);
...
ResultSet rs = stmt.execute();
return buildEmployee(rs);
}
//etc...
}
而且ProjectDAO
: 公共類ProjectDAOImpl實現ProjectDAO { ... }
你可以看到上面的接口指出了一個類來封裝你正在處理的數據 - Employee
s和Project
s。另請注意,EmployeeService
屬於員工活動 - 因此,您還可以要求它爲員工獲得項目。它可以將此查詢委託給ProjectDAO
執行。
重點是,你保持你的界面乾淨的查詢細節,並隱藏下面的數據的區別。服務提供訪問權限。 DAO
提供數據訪問。數據本身收藏在模型中 - Employee
和Project
。如您所願,您可以選擇在Employee
類的內部或外部保存Employee
s Project
數據。有折衷。
還要注意的是,DAO
已被對象關係框架的概念所取代 - 其中底層數據庫結構映射到實際對象以及由框架管理的集成。請參閱JPA(Java持久框架)和Hibernate在java世界(儘管我給蘋果的舊EOF框架!)。
雖然在原始JDBC和JPA(或Hibernate)之間進行選擇是一個權衡問題。簡單性可能適用於JDBC。在任何一種情況下,如果您正在學習 - 首先使用JDBC方法,以便了解底層的情況,然後使用JPA重新定義您的服務。
這應該有希望給你一些方法來指導你做後續操作。後續的一點可能是讓你的JSP不能直接使用你的bean(你的服務)。您可以改爲ReST服務。
你使用了什麼樣的後端? Spring MVC?如果是這樣,請使用hibernate –
連接有什麼問題?它只有2桌。 –