1. DAO

<aside> 1️⃣

DAO (Data Access Object)

</aside>

<aside> 2️⃣ DAO의 주요 특징

</aside>

  1. 추상화:
  2. 일관성:

<aside> 3️⃣ DAO의 장점

</aside>

  1. 분리의 원칙:
  2. 유연성:

<aside> 3️⃣ DAO의 단점

</aside>

  1. 추가적인 코드:
  2. 성능 고려사항:

<aside> 4️⃣ DAO의 작성예시

</aside>

// DAO Interface
public interface EmployeeDAO {
    List<Employee> getAllEmployees();
    Employee getEmployeeById(int employeeId);
    void addEmployee(Employee employee);
    void updateEmployee(Employee employee);
    void deleteEmployee(int employeeId);
}
// DAO Implementation
public class EmployeeDAOImpl implements EmployeeDAO {
    private JdbcTemplate jdbcTemplate;

    public EmployeeDAOImpl(DataSource dataSource) {
        jdbcTemplate = new JdbcTemplate(dataSource);
    }

    @Override
    public List<Employee> getAllEmployees() {
        String sql = "SELECT * FROM employees";
        List<Employee> employees = jdbcTemplate.query(sql, new EmployeeRowMapper());
        return employees;
    }

    // ... remaining methods implemented
}