0

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
     */

}
4

1 に答える 1

0

すべてのテーブルを操作するDAOを1つ作成しないでください。限目。

わかりました、もう1文。システムを強化し、テーブルをどんどん追加している場合、どのように維持すると思いますか。あなたのスーパーオールインワンDAOは巨大になります。

于 2012-12-18T09:50:21.047 に答える