더북(TheBook)

도서 주문 처리 정보를 관리하는 퍼시스턴스 계층인 저장소 객체 구현하기

1. com.springmvc.repository 패키지에서 OrderRepository 인터페이스를 생성한 후 다음 내용을 작성합니다.

코드 15-8 OrderRepository.java

package com.springmvc.repository;

import com.springmvc.domain.Order;

public interface OrderRepository {
    Long saveOrder(Order order);
}

2. com.springmvc.repository 패키지에서 OrderRepositoryImpl 클래스를 생성하고 다음 내용을 작성합니다. OrderRepositoryImpl 인터페이스 구현체 클래스는 OrderRepository 인터페이스에 정의한 saveOrder() 메서드를 구현합니다.

코드 15-9 OrderRepositoryImpl.java

package com.springmvc.repository;

import java.util.HashMap;
import java.util.Map;
import org.springframework.stereotype.Repository;
import com.springmvc.domain.Order;

@Repository
public class OrderRepositoryImpl implements OrderRepository {
    private Map<Long, Order> listOfOrders;
    private long nextOrderId;

    public OrderRepositoryImpl() {
        listOfOrders = new HashMap<Long, Order>();
        nextOrderId = 2000;
    }

 

    public Long saveOrder(Order order) {
        order.setOrderId(getNextOrderId());
        listOfOrders.put(order.getOrderId(), order);
        return order.getOrderId();
    }
    private synchronized long getNextOrderId() {
        return nextOrderId++;
    }
}

saveOrder() 메서드는 주문 내역에 대한 ID와 주문 내역 등을 저장하고 주문 내역 ID를 반환합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.