강의에 없는 내용이나
최신순 3대의 자동차를 리턴하는 메소드 와 카테고리별 자동차 리스트의
공통 부분을 리팩토링 을 해 보자. 리팩토링을 통해서 코드양을 상당히 줄일 수 있다.
1.
//최신순 3대의 자동차를 리턴하는 메소드 public Vector<CarListBean> getSelectCar(){ String sql ="select * from RENTCAR order by no desc"; return commonCarBean(sql, true, 3); }
2.
//카테고리별 자동차 리스트를 저장하는 메소드 public Vector<CarListBean> getCategoryCar(int cate){ String sql="select * from rentcar where category=" +cate; return commonCarBean(sql, false, 0); }
3.
// 공통 부분 메소드 로 만듬. private Vector<CarListBean> commonCarBean(String sql, boolean option, int num){ getCon(); //커넥션이 연결되엉야 쿼리를 실행 가능 Vector<CarListBean> v =new Vector<>(); CarListBean bean =null; try { pstmt=con.prepareStatement(sql); //쿼리 실행후 결과를 Result 타입으로 리턴 rs =pstmt.executeQuery(); int count=0; while(rs.next()){ bean = new CarListBean(); bean.setNo(rs.getInt(1)); bean.setName(rs.getString(2)); bean.setCategory(rs.getInt(3)); bean.setPrice(rs.getInt(4)); bean.setUsepeople(rs.getInt(5)); bean.setCompany(rs.getString(6)); bean.setImg(rs.getString(7)); bean.setInfo(rs.getString(8)); //벡터를 빈 클래스에 저장 v.add(bean); if(option){ count++; if(count >=num)break; //반복문을 빠져나가시오. } } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ closed(); } return v; }
3번 코드내용을 두번 이상 적어야 하는데 1 2번으로 짧게 줄어 들었다.
CarCategoryList.jsp
DB 에서 카테고리 목록을 가져오는 메소드만 다를 뿐 CarReserveMain.jsp 소스와 같은 내용이다.
<%@page import="db.CarListBean"%> <%@page import="java.util.Vector"%> <%@page import="db.RentcarDAO"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% //카테고리 분류값을 받아옴 int category =Integer.parseInt(request.getParameter("category")); RentcarDAO rdao =new RentcarDAO(); Vector<CarListBean> v =rdao.getCategoryCar(category); %> <div class="container marketing" id="marketing"> <!-- Three columns of text below the carousel --> <div class="row"> <% for(int i=0; i <v.size(); i++){ CarListBean bean =v.get(i); %> <div class="col-lg-4"> <img class="img-circle" src="img/<%=bean.getImg() %>" alt="Generic placeholder image" width="300" height="200" onclick="location.href='CarreserveInfo.jsp?no=<%= bean.getNo() %>'" > <h2><%=bean.getName() %></h2> <p><%= bean.getInfo() %></p> <p><a class="btn btn-default" href="CarreserveInfo.jsp?no=<%= bean.getNo() %>" role="button">상세보기 »</a></p> </div><!-- /.col-lg-4 --> <% } %> </div><!-- /.row --> </div> <hr class="divider"> <div class="row"> <div class="col-xs-2 col-md-2"></div> <div class="col-xs-8 col-md-8 text-center" > <form class="form-inline" action="RentCarMain.jsp?center=CarCategoryList.jsp" method="post"> <div class="form-group"> <h4>차량 검색하기 </h4> </div> <div class="form-group"> <select name="category" class="form-control"> <option value="1">소형</option> <option value="2">중형</option> <option value="3">대형</option> </select> </div> <div class="form-group"> <input type="submit" value="검색하기" class="btn btn-success"> </div> <div class="form-group"> <input type="button" value="전체검색" class="btn btn-danger" onclick="location.href='CarAllList.jsp'"> </div> </form> </div> </div>
동영상 강좌와 다르게 모바일 적용이 가능한 반응형 부트스트랩을 사용하였다.
여기서는 jsp 를 배우는 강좌 이기 때문에 html 적 요소에는 비중있게 생각 하지 않아도 될 것이다.
또한, 일부 자바 코드는 제 입맛에 맞게 변경 하였습니다.
혹시, 이 강의를 들으면서 제 글을 읽고 소스코드를 참조하는 수강생이 있다면 동영상의 코드와 다르다고 생각지 마세요. 대부분 동여상 내용과 같으니 학습에 도움이 될거라 생각 합니다.
소스 : https://github.com/braverokmc79/jsp_sin
유튜브 동영상 출처 :
강사 : 신형섭(잭임연구원)
저작권 : (주)소프트캠퍼스 http://www.softcampus.co.kr 더많은 무료 강의는 사이트에서 확인하실수 있습니다.
댓글 ( 4)
댓글 남기기