SQL 시권스 생성
-- 시퀀스 생성 create sequence reserve_seq start with 1 increment by 1 nomaxvalue nocycle nocache;
CarreserveInfo.jsp
<tr> <td colspan="2" class="text-center"> <input type="hidden" value="CarOptionSelect.jsp" name="center"> <input type="hidden" value="<%= bean.getImg() %>" name="img"> <input type="hidden" value="<%= bean.getNo() %>" name="no"> <input type="submit" class="btn" value="옵션 선택후 구매하기"> </td> </tr>
CarOptionSelect.jsp
<tr> <td colspan="2" class="text-center"> <input type="hidden" value="<%= qty %>" name="qty"> <input type="hidden" value="CarReserveResult.jsp" name="center"> <input type="hidden" value="<%= no %>" name="no" > <input type="submit" value="차량예약하기" class="form-control" style="background-color: #222222; color:#fff"> </td> </tr>
CarReserveResult.jsp
<%@page import="db.CarListBean"%> <%@page import="db.RentcarDAO"%> <%@page import="java.text.SimpleDateFormat"%> <%@page import="java.util.Date"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% request.setCharacterEncoding("UTF-8"); %> <jsp:useBean id="rbean" class="db.CarReserveBean"> <jsp:setProperty name="rbean" property="*" /> </jsp:useBean> <div class="container marketing" id="marketing2"> <!-- Three columns of text below the carousel --> <div class="row"> <% String id =(String)session.getAttribute("id"); if(id==null){ %> <script> alert("로그인후 예약이 가능 합니다."); location.href="RentCarMain.jsp?center=MemberLogin.jsp"; </script> <% } if(rbean.getRday()==null){ %> <script> alert("대여일을 선택하세요"); history.go(-1); </script> <% }else{ //날짜 비교 Date d1 =new Date(); Date d2=new Date(); //날짜를 2017-09-27 포멧 해주는 클래스 선언 SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd"); d1 =sdf.parse(rbean.getRday()); d2 =sdf.parse(sdf.format(d2)); //날짜 비교 메소드를 사용 int compare = d1.compareTo(d2); //예약하려는 날짜보다 현재날짜가 크다면 -1; //예약하려는 날짜와 현재날짜가 같다면 0 //예약하려는 날짜가 더 크다면 1을 리턴 if(compare < 0){//오늘보다 이전 날짜 선택시 %> <script> alert("현재 시스템 날짜보다 이전 날짜는 선택할수 없습니다."); history.go(-1); </script> <% } //결과적으로 아무런 문제가 없다면 데이터 저장후 결과 페이지 보여주기 //아이디 값이 빈클래스에 없기에 rbean.setId(id); //데이터 베이스에 빈클래스 저장 RentcarDAO rdao =new RentcarDAO(); rdao.setReserveCar(rbean); //차량 정보 얻어오기 CarListBean cbean = rdao.getOneCar(rbean.getNo()); System.out.println("//차량 정보 얻어오기 :" +cbean.toString()); //차량 총 금액 int totalcar=cbean.getPrice()*rbean.getQty()*rbean.getDday(); System.out.println(cbean.getPrice()+" : 수량 -" + rbean.getQty() + " : " + rbean.getDday() +"//차량 총 금액 :" +cbean.toString()); //옵션금액 int usein=0; if(rbean.getUserin()==1)usein=10000; int usewifi =0; if(rbean.getUsewifi()==1)usewifi=10000; int useseate=0; if(rbean.getUseseat()==1)useseate=10000; int totaloption =(rbean.getQty()*rbean.getDday())*(usein+usewifi+useseate); %> <div class="col-sm-12"> <h2></h2> <div class="table-responsive"> <table class="table"> <caption></caption> <thead><tr><td colspan="2" class="text-center"><h2>차량 예약 완료 화면</h2></td></tr></thead> <tbody> <tr> <td colspan="2" class="text-right"> <img src="img/<%= cbean.getImg() %>" class="img-responsive img-rounded" id="resultImg"> </td> </tr> <tr> <th>차량 총예약금액</th> <td><%= totalcar %>원</td> </tr> <tr> <th>차량 총옵션 금액</th> <td><%= totaloption %>원</td> </tr> <tr> <th>차량 총금액</th> <td><%= totaloption+totalcar %>원 </td> </tr> </tbody> </table> </div> </div> <% } %> </div> </div> <hr class="divider">
class RentcarDAO
//하나의 예약 정보를 저장하는 메소드 public void setReserveCar(CarReserveBean bean){ getCon(); try{ String sql ="insert into CARRESERVE (RESERVENO, NO, ID, QTY, DDAY, RDAY, USERIN, USEWIFI, USESEAT, USENAVI )" + " VALUES(RESERVE_SEQ.nextval, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; pstmt =con.prepareStatement(sql); System.out.println(bean.toString()); //?에 값을 대입 pstmt.setInt(1, bean.getNo()); pstmt.setString(2, bean.getId()); pstmt.setInt(3, bean.getQty()); pstmt.setInt(4, bean.getDday()); pstmt.setString(5, bean.getRday()); pstmt.setInt(6, bean.getUserin()); pstmt.setInt(7, bean.getUsewifi()); pstmt.setInt(8, bean.getUseseat()); pstmt.setInt(9, bean.getUsenavi()); pstmt.executeUpdate(); }catch(Exception e){ e.printStackTrace(); }finally{ closed(); } }
동영상 강좌와 다르게 모바일 적용이 가능한 반응형 부트스트랩을 사용하였다.
여기서는 jsp 를 배우는 강좌 이기 때문에 html 적 요소에는 비중있게 생각 하지 않아도 될 것이다.
또한, 일부 자바 코드는 제 입맛에 맞게 변경 하였습니다.
혹시, 이 강의를 들으면서 제 글을 읽고 소스코드를 참조하는 수강생이 있다면 동영상의 코드와 다르다고 생각지 마세요. 대부분 동여상 내용과 같으니 학습에 도움이 될거라 생각 합니다.
소스 : https://github.com/braverokmc79/jsp_sin
유튜브 동영상 출처 :
강사 : 신형섭(잭임연구원)
저작권 : (주)소프트캠퍼스 http://www.softcampus.co.kr 더많은 무료 강의는 사이트에서 확인하실수 있습니다.
댓글 ( 4)
댓글 남기기