DAOインターフェイスを設計したいのですが、dept_idの部門テーブル、dept_idとemployee_idの従業員テーブル、employee_idのプロジェクトテーブル、employee_idのレポートテーブルがあります。今の要件は、私がこのことをやりたいということです。spring
テーブルごとに異なるDAOを作成するか、すべてのテーブルのすべての実装ロジックを含む1つの汎用DAOを作成する必要があります。その汎用的な場合、どのようなメソッドを提供する必要がありますか。インターフェースの設計
EmployeeDAOインターフェイスを作成しましたが、プロジェクトとレポート、および部門テーブルをすべて緩く結合する必要があります。ここでEmployeeDAOインターフェイスを表示しているEmployeeDAOを使用しました。
package com.ankur.tutorial.dao;
import java.util.List;
import com.ankur.tutorial.employee.model.Employee;
/**
* The employee DAO is the main Data Access Object that will allow to retrieve
* and update the employee objects from and to the database. The retrieve and
* update is done in a manner that employee, the projects and reporting
* associated are updated
*
*
*/
public interface EmployeeDAO {
/**
* @throws EmployeeDAOException
*
* Returns all the employees from the database along with
* projects and reportigns.
*
* @return List of all employees.
* @throws
*/
List<Employee> getAllEmployees();
/**
* Search for an employee by name. The name will match either the first name
* or the last name. The matching is done using the SQL expression LIKE
* %name%
*
* @param name
* The name to search for
* @return The list of employees with matching name.
* @throws EmployeeDAOException
*/
List<Employee> findEmployees(String name);
/**
* Select employee by ID.
*
* @param id
* The ID (Number) of the employee
* @return The employee with employee number matching the id
* @throws EmployeeDAOException
*/
Employee getEmployee(long id);
/**
* Update the employee and the associated project and reporting to the
* database.
*
* @param employee
* The employee to update
* @return true if the employee record is updated
* @throws EmployeeDAOException
*/
boolean updateEmployee(Employee employee);
/**
* Delete the employee and the associated projects and reportings.
*
* @param employee
* The employee to be deleted.
* @return true if the employee record is deleted
* @throws EmployeeDAOException
*/
boolean deleteEmployee(Employee employee);
/**
* Create employee, project and reporting records in the database.
*
* @param The
* employee to be created
* @return true if the creation is successful
* @throws EmployeeDAOException
*/
}