의류 쇼핑몰 제작
- 프로젝트 개요
- 사용 기술
- 프로젝트 설계
- 프로젝트 주요 기능
- 개인 내용
- 느낀점
- 프로젝트 소개 : 쇼핑몰 웹 사이트 구현
- 개발인원 : 4명
- 역할 : 데이터베이스, 장바구니 및 결제 페이지, 주문내역
- 개발기간 : 2023. 04. 10 - 2023. 04.21
주요 기능 및 실행화면
장바구니에서 결제페이지까지 코드를 작성했습니다.
public int insertOrder(ArrayList<CartVO> listCart, String userid, int total) {
int maxOrderNumber = 0;
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs;
try {
conn = DBManager.getConnection();
String selectMaxOrderNumber = "select max(orderNumber) from orders";
pstmt = conn.prepareStatement(selectMaxOrderNumber);
rs = pstmt.executeQuery();
if (rs.next()) {
maxOrderNumber = rs.getInt(1);
}
pstmt.close();
String insertOrder = "insert into orders(orderNumber,userid)
values(" + "orders_seq.nextval,?)";
pstmt = conn.prepareStatement(insertOrder);
pstmt.setString(1, userid);
pstmt.executeUpdate();
for (CartVO cartVO : listCart) {
insertOrderDetail(cartVO, maxOrderNumber + 1, total);
}
System.out.println("insertOrder (OrderDAO) 실행(+)");
} catch (Exception e) {
// TODO: handle exception
System.out.println("insertOrder(OrderDAO) error : " + e);
} finally {
DBManager.close(conn, pstmt);
}
return maxOrderNumber + 1;
}
- orders, order_detail 테이블을 분리하여 주문페이지 와 주문내역 페이지에서 필요한 내용만 가져와 화면에 반환하고 합쳐야 할 경우에는 가상테이블 view join 쿼리를 이용해서 가져왔습니다. 그런 중 '주문하기' 기능 수행 중에 orders의 번호가 1부터 시작하는 것에 반해 orders_detail의 번호가 0부터 시작하는 에러를 마주쳐 임시방편으로 오류 수정하였습니다.
java, mvc2 패턴을 이용한 쇼핑몰을 처음에 우리가 만들 수 있을까하고 반신반의 하는 마음이 컸습니다. java로 별찍기, 이클립스 콘솔창에 입력한 내용을 출력하기를 했던게 엊그제 같았는데 코드가 돌아가는 모습을 보니 무척 신기합니다.
수업 시간에 MCV1, MVC2 패턴을 이용하여 각각 CRUD 기능을 구현해봤는데 첫 프로젝트 때와 비교하여도 MVC2 패턴이 팀원들과 협업 시 기능을 나누고 합치기 편리했습니다. 이번 프로젝트에서는 데이터베이스와 장바구니 및 결제 페이지 등을 맡아서 진행 했었는데 프로젝트 내에서 CRUD 기능을 충분히 연습하지 못한 것 같아서 아쉬움이 남습니다.
다음 프로젝트는 Spring을 이용하여 이번 프로젝트를 이어서 보다 보완할 수 있도록 노력하겠습니다.