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)
댓글 남기기