public class MainService {
private MainDAO dao = new MainDAO();
/** 로그인 서비스
* @param memberId
* @param memberPw
* @return Member
* @throws Exception
*/
//반환
public Member login(String memberId, String memberPw) throws Exception{
// 1. Connection 생성
Connection conn = getConnection();
// 2. DAO 호출
Member member = dao.login(conn, memberId, memberPw);
// 3. Connection 반환
close(conn);
// 4. 결과 반환
return member;
}
DAO 객체 생성: Service 클래스에서는 DAO 객체를 생성하고, 이를 활용하여 데이터베이스와 상호작용합니다. DAO 객체는 보통 생성자를 통해 생성한다.
트랜잭션 관리: 여러 개의 DAO 메소드를 실행하는 경우, 이들 메소드를 하나의 트랜잭션으로 묶어서 실행해야 합니다. Service 클래스에서는 이러한 트랜잭션을 관리합니다.
비즈니스 로직 수행: Service 클래스에서는 DAO 객체를 사용하여 비즈니스 로직을 수행합니다. 이를 통해 데이터베이스에 저장된 데이터를 가져오고, 가공하여 필요한 정보를 생성하거나 변경하는 등의 작업을 수행합니다.
예외 처리: Service 클래스에서는 DAO 메소드에서 발생하는 예외를 적절하게 처리해야 합니다. 이를 통해 애플리케이션의 안정성을 유지할 수 있습니다. 보통 try-catch 구문을 사용하여 예외를 처리하며, 예외를 처리한 후 Service 메소드에서 예외를 반환합니다.(throws Exception)
결과 반환: Service 클래스에서는 DAO 메소드에서 반환된 결과를 가공하여 Controller나 다른 Service 클래스에서 사용할 수 있는 형태로 반환합니다.
이 코드에서는 DAO 클래스는
Member정보를 데이터베이스에서 가져오는 역할을 수행합니다.
login 메소드에서는 DAO 객체를 생성하고, 이를 통해 데이터베이스에서 memberId와 memberPw를 검증한 후, 해당 회원 정보를 담은Member객체를 반환합니다.
Member member = dao.login(conn, memberId, memberPw);
memberId, memberPw 값 전달 받음
Connection 반환 ( INSERT/UPDATE/DELETE) 같은 DML 작업이 아니라 SELECT 작업이기 때문에 트랜잭션 처리 필요없음.
close(conn);
결과 반환
return member;