실제로 DAO 패턴을 사용하는 예시로는 회원 가입, 상품 등록, 주문 처리 등이 있습니다. 예를 들어, 회원 가입 기능을 구현할 때 DAO 패턴을 적용하면 다음과 같은 구조가 됩니다.
public interface MemberDAO {
public void insert(Member member);
public Member select(int id);
public void update(Member member);
public void delete(int id);
}
@Repository
public class MemberDAOImpl implements MemberDAO {
@Autowired
private SqlSession sqlSession;
@Override
public void insert(Member member) {
sqlSession.insert("member.insert", member);
}
@Override
public Member select(int id) {
return sqlSession.selectOne("member.selectById", id);
}
@Override
public void update(Member member) {
sqlSession.update("member.update", member);
}
@Override
public void delete(int id) {
sqlSession.delete("member.delete", id);
}
}
위의 코드에서 MemberDAOImpl 클래스는 MemberDAO 인터페이스를 구현하고 있습니다. 실제로 데이터베이스와의 연동은 SqlSession 객체를 사용하여 처리하고 있습니다. MemberDAOImpl 클래스를 사용하는 서비스 클래스에서는 MemberDAO 인터페이스의 메서드를 호출하기만 하면 됩니다.
@Service
public class MemberService {
@Autowired
private MemberDAO memberDAO;
public void register(Member member) {
memberDAO.insert(member);
}
public Member getMember(int id) {
return memberDAO.select(id);
}
public void modify(Member member) {
memberDAO.update(member);
}
public void remove(int id) {
memberDAO.delete(id);
}
}
위의 코드에서 MemberService 클래스는 MemberDAO 객체를 사용하여 회원 정보를 CRUD하는 메서드를 구현하고 있습니다. 실제로 데이터베이스와의 연동 코드는 MemberDAOImpl 클래스에서 처리되므로, MemberService 클래스에서는 간단한 메서드 호출만으로 회원 정보를 CRUD할 수 있습니다.