SQL 변경
info Log 타입을 varchar2(3000 ) 으로 변경
drop table RentCar ; create table RentCar ( no number primary key, name varchar2(20), category number, price number, usepeople number, company varchar(50), img varchar2(50), info varchar2(3000) ); select * from RentCar; insert into rentcar values (1, '아반테', 1, 2000, 4, '기아', '1.jpg' , '아반테 자동차 입니다.'); insert into rentcar values (2, 'BMW', 3, 6000, 4, 'BMW', '2.jpg' , 'BMW 자동차 입니다.'); insert into rentcar values (3, '카니발', 1, 4000, 7, '기아', '3.jpg' , '카니발 자동차 입니다.'); insert into rentcar values (4, '카렌스', 2, 2500, 4, '기아', '4.jpg' , '카렌스 자동차 입니다.'); insert into rentcar values (5, '코란도', 1, 3000, 4, '현대', '5.jpg' , '코란도 자동차 입니다.'); insert into rentcar values (6, '에쿠스', 3, 6000, 4, 'BMW', '6.jpg' , '에쿠스 자동차 입니다.'); insert into rentcar values (7, '제네시스', 1, 3000, 4, '기아', '7.jpg' , '제네시스 자동차 입니다.'); insert into rentcar values (8, '그랜져', 1, 2400, 4, '현대', '8.jpg' , '그랜져 자동차 입니다.'); insert into rentcar values (9, 'k3', 1, 2700, 4, '현대', '9.jpg' , 'k3 자동차 입니다.'); insert into rentcar values (10, 'k5', 2, 5000, 4, '기아', '10.jpg' , 'k5 자동차 입니다.'); insert into rentcar values (11, 'k9', 1, 6000, 4, '현대', '11.jpg' , 'k9 자동차 입니다.'); insert into rentcar values (12, '라세티', 2, 2000, 5, '기아', '12.jpg' , '라세티 자동차 입니다.'); insert into rentcar values (13, 'lf소나타', 1, 2000, 4, '현대', '13.jpg' , 'lf소나타 자동차 입니다.'); insert into rentcar values (14, '말리부', 3, 2000, 4, 'BMW', '14.jpg' , '말리부 자동차 입니다.'); insert into rentcar values (15, '모닝', 1, 23000, 4, '현대', '15.jpg' , '모닝 자동차 입니다.'); insert into rentcar values (16, '올라도', 3, 5000, 4, 'BMW', '16.jpg' , '올라도 자동차 입니다.'); insert into rentcar values (17, '레이', 2, 4000, 4, '현대', '17.jpg' , '레이 자동차 입니다.'); insert into rentcar values (18, 'SM5', 1, 2700, 4, 'BMW', '18.jpg' , 'SM5 자동차 입니다.'); select * from rentcar; commit;
class RentcarDAO
//회원의 예약정보를 리턴하는 메소드 public Vector<CarViewBean> getAllReserve(String id){ Vector<CarViewBean> v=new Vector<CarViewBean>(); CarViewBean bean=null; getCon(); try{ //쿼리문 String sql="select * from RENTCAR natural join CARRESERVE " + " where sysdate < to_date(rday, 'YYYY-MM-DD') and id= ?"; pstmt =con.prepareStatement(sql); //? pstmt.setString(1, id); //결과리턴 rs=pstmt.executeQuery(); while(rs.next()){ bean=new CarViewBean(); bean.setName(rs.getString("name")); bean.setDday(rs.getInt("dday")); bean.setImg(rs.getString("img")); bean.setPrice(rs.getInt("price")); bean.setQty(rs.getInt("qty")); bean.setRday(rs.getString("rday")); bean.setUsenavi(rs.getInt("usenavi")); bean.setUserin(rs.getInt("userin")); bean.setUseseat(rs.getInt("useseat")); bean.setUsewifi(rs.getInt("usewifi")); v.add(bean); } }catch(Exception e){ e.printStackTrace(); }finally{ closed(); } return v; }
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()); //차량 총 금액 int totalcar=cbean.getPrice()*rbean.getQty()*rbean.getDday(); //옵션금액 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">
동영상 강좌와 다르게 모바일 적용이 가능한 반응형 부트스트랩을 사용하였다.
여기서는 jsp 를 배우는 강좌 이기 때문에 html 적 요소에는 비중있게 생각 하지 않아도 될 것이다.
또한, 일부 자바 코드는 제 입맛에 맞게 변경 하였습니다.
혹시, 이 강의를 들으면서 제 글을 읽고 소스코드를 참조하는 수강생이 있다면 동영상의 코드와 다르다고 생각지 마세요. 대부분 동여상 내용과 같으니 학습에 도움이 될거라 생각 합니다.
소스 : https://github.com/braverokmc79/jsp_sin
유튜브 동영상 출처 :
강사 : 신형섭(잭임연구원)
저작권 : (주)소프트캠퍼스 http://www.softcampus.co.kr 더많은 무료 강의는 사이트에서 확인하실수 있습니다.
댓글 ( 4)
댓글 남기기