JSP

 

 

강의에 없는 내용이나 

최신순 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">상세보기 &raquo;</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>차량 검색하기 &nbsp;</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 더많은 무료 강의는 사이트에서 확인하실수 있습니다.

 

 

 

about author

PHRASE

Level 60  라이트

행복한 결혼생활을 위해 배우자가 말한것을 꼭 기억하라.

댓글 ( 4)

댓글 남기기

작성

JSP 목록    more