휴먼교육센터 개발자과정 76일차

조하영·2022년 11월 23일
0

싱글톤
싱글톤에서 객체는 본인이 만들고 공용변수 하나를 선언하여 공용변수로 필요한 객체에게 알려준다.
싱글톤은 객체를 하나만 만들고 주소만 공유(불필요한 객체를 생성하지 않아서 성능이나 안정성면에 좋음)

예)
public static DAO dao;

public static DAO getInstance(){
if(dao==null){
dao = new DAO();
}
return dao;
}

외부에서는 getInstance()로 접근해서 객체의 주소를 요청
변수와 메서도는 클래스 외부에서 접근 가능해야하므로 스태틱으로 지정.

정보처리산업기사 작업형 예제 실습

1.뷰

1.1인덱스뷰

1.1.1header, nav

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
header{
padding-left: 30px;
padding-top: 4px;
width: 1028px;
height: 90px;
background-color: red;
box-sizing: border-box;
}
nav{
width: 1028px;
height: 50px;
background-color: yellow;
display: inline;
float: left;
padding-top: 0px;
}
ul li{
list-style: none;
float: left;
margin-right: 30px;
margin-left: 30px;
}
section{
width: 1028px;
height: 500px;
}
footer{
width: 1028px;
text-align: center;
height: 30px;
background-color: blue;
}
</style>
</head>

<body>
<header>
<h1>학사정보 시스템</h1>
</header>
<nav>
<ul>
<li><a href = "Index">[홈으로]</a></li>
<li><a href = "AddForm">[학생등록]</a></li>
<li><a href = "ViewList">[학생보기]</a></li>
<li><a href = "ViewClass">[학생별 신청내역]</a></li>
</ul>
</nav>

</body>
</html>

1.1.2section

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%@ include file="header_nav.jsp" %>
<section>

</section>
<%@ include file="footer.jsp" %>

</body>
</html>

1.1.3footer

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<footer>
<span> 휴먼교육센터 </span>
</footer>

</body>
</html>

1.2학생리스트 보기 뷰

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ page import ="java.util.*" %>
     <%@ page import ="com.hm.VO.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
section h1{
text-align: center;
}
table{
margin: 0 auto;
}
</style>
</head>
<body>
<%@ include file="header_nav.jsp" %>
<section>
<h1>학생 리스트</h1>
	<table border=1>
	<thead>
		<tr>
			<th>번호</th>
			<th>이름</th>
			<th>전화</th>
			<th>주소</th>
			<th>가입일자</th>
			<th>학년</th>
			<th>삭제</th>
		</tr>
		</thead>
		<tbody>
		<% ArrayList<StudVO> sList = (ArrayList)request.getAttribute("sList"); %>
		<%
			for(int i = 0;  i< sList.size(); i++){
			StudVO svo = sList.get(i);
			out.print("<tr>");
			out.print("<td>"+svo.getNo()+"</td>");
			out.print("<td>"+svo.getName()+"</td>");
			out.print("<td>"+svo.getTel()+"</td>");
			out.print("<td>"+svo.getAddress()+"</td>");
			out.print("<td>"+svo.getJoinDate().substring(0, 10)+"</td>");
			out.print("<td>");
			if(svo.getGrade().equals("1")){
					out.print("A");
				}else if(svo.getGrade().equals("2")){
					out.print("B");
				}else if(svo.getGrade().equals("3")){
					out.print("C");
				}else if(svo.getGrade().equals("4")){
					out.print("D");
				}
			out.print("</td>");
			out.print("<td><input type = 'button' onclick=");
				
			out.print("\""+"location.href =");
			out.print("'"+"DelStud?no=");
			out.print(svo.getNo()+"'");
			out.print("\""+ "value='삭제'></td>");
			out.print("</tr>");
			}
		%>
		<tr style = "text-align: center;">
		<td colspan = "7"><input type = 'button' onclick="mody()" value='수정'></td>
		</tr>
		
		</tbody>
	</table>
</section>
<%@ include file="footer.jsp" %>
</body>
<script type="text/javascript">
function mody(){
	let modyNo = prompt("수정할 번호를 입력하세요.");
	window.location.href = "ModyStud?no="+modyNo;
}
</script>
</html>

1.3학생 등록 뷰

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
section h1 {
	text-align: center;
}

table {
	margin: 0 auto;
	text-align: center;
}
</style>
</head>
<body>
	<%@ include file="header_nav.jsp"%>
	<section>
		<h1>학생 등록</h1>
		<form id="add" action="AddStud" method="get">
			<table border=1>

				<tr>
					<th>번호</th>
					<td><input id="no" type="text" name="no" value = "${no}"></td>
				</tr>
				<tr>
					<th>이름</th>
					<td><input id="name" type="text" name="name"></td>
				</tr>
				<tr>
					<th>전화</th>
					<td><input id="tel" type="text" name="tel"></td>
				</tr>
				<tr>
					<th>주소</th>
					<td><input id="address" type="text" name="address"></td>
				</tr>
				<tr>
					<th>가입일자</th>
					<td><input id="joindate" type="text" name="joindate"></td>
				</tr>
				<tr>
					<th>학년</th>
					<td><input class="grade" type="radio" name="grade" value="1" checked>
						1학년 <input class="grade" type="radio" name="grade" value="2">
						2학년 <input class="grade" type="radio" name="grade" value="3">
						3학년 <input class="grade" type="radio" name="grade" value="4">
						4학년</td>
				</tr>
				<tr>
					<td colspan="2"><input type="button" onclick="addSubmit()"
						value="저장"></td>
				</tr>

			</table>
		</form>
	</section>
	<%@ include file="footer.jsp"%>
</body>
<script type="text/javascript">
	function addSubmit() {
		let no = document.querySelector("#no").value;
		let name = document.querySelector("#name").value;
		let tel = document.querySelector("#tel").value;
		let address = document.querySelector("#address").value;
		let joindate = document.querySelector("#joindate").value;
		let add = document.querySelector("#add");

		console.log(no+name+tel+address+joindate);
		
		if (no != "" && name != "" && tel != "" && address != ""
				&& joindate != "") {
			add.submit();
		} else {
			alert("모든 정보를 입력하세요.");
		}
	};
</script>
</html>

1.4학생 수정 뷰

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
	 <%@ page import ="com.hm.VO.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
section h1 {
	text-align: center;
}

table {
	margin: 0 auto;
	text-align: center;
}
</style>
</head>
<body>
	<%@ include file="header_nav.jsp"%>
	<section>
		<h1>학생 수정</h1>
		<form id="mody" action="ModyAction" method="get">
		<% StudVO svo = (StudVO)request.getAttribute("svo"); %>
			<table border=1>

				<tr>
					<th>번호</th>
					<td><input id="no" type="text" name="no" value = "${svo.no}"></td>
				</tr>
				<tr>
					<th>이름</th>
					<td><input id="name" type="text" name="name" value = "${svo.name}"></td>
				</tr>
				<tr>
					<th>전화</th>
					<td><input id="tel" type="text" name="tel" value = "${svo.tel}"></td>
				</tr>
				<tr>
					<th>주소</th>
					<td><input id="address" type="text" name="address" value = "${svo.address}"></td>
				</tr>
				<tr>
					<th>가입일자</th>
					<td><input id="joindate" type="text" name="joindate" value = "${svo.joinDate.substring(0,10)}"></td>
				</tr>
				<tr>
					<th>학년</th>
					<% if(svo.getGrade().equals("1")){
						out.print("<td><input class='grade' type='radio' name='grade' value='1' checked> 1학년");
						out.print("<input class='grade' type='radio' name='grade' value='2'> 2학년");
						out.print("<input class='grade' type='radio' name='grade' value='3'> 3학년");
						out.print("<input class='grade' type='radio' name='grade' value='4'> 4학년</td>");
					}else if(svo.getGrade().equals("2")){
						out.print("<td><input class='grade' type='radio' name='grade' value='1'> 1학년");
						out.print("<input class='grade' type='radio' name='grade' value='2' checked> 2학년");
						out.print("<input class='grade' type='radio' name='grade' value='3'> 3학년");
						out.print("<input class='grade' type='radio' name='grade' value='4'> 4학년</td>");
						
					}else if(svo.getGrade().equals("3")){
						out.print("<td><input class='grade' type='radio' name='grade' value='1'> 1학년");
						out.print("<input class='grade' type='radio' name='grade' value='2'> 2학년");
						out.print("<input class='grade' type='radio' name='grade' value='3' checked> 3학년");
						out.print("<input class='grade' type='radio' name='grade' value='4'> 4학년</td>");
						
					}else if(svo.getGrade().equals("4")){
						out.print("<td><input class='grade' type='radio' name='grade' value='1'> 1학년");
						out.print("<input class='grade' type='radio' name='grade' value='2'> 2학년");
						out.print("<input class='grade' type='radio' name='grade' value='3'> 3학년");
						out.print("<input class='grade' type='radio' name='grade' value='4' checked> 4학년</td>");
						
					}
					
					%>
					
				</tr>
				<tr>
					<td colspan="2"><input type="button" onclick="modySubmit()"
						value="수정"></td>
				</tr>

			</table>
		</form>
	</section>
	<%@ include file="footer.jsp"%>
</body>
<script type="text/javascript">
	function modySubmit() {
		let no = document.querySelector("#no").value;
		let name = document.querySelector("#name").value;
		let tel = document.querySelector("#tel").value;
		let address = document.querySelector("#address").value;
		let joindate = document.querySelector("#joindate").value;
		let mody = document.querySelector("#mody");

		
		if (no != "" && name != "" && tel != "" && address != ""
				&& joindate != "") {
			mody.submit();
		} else {
			alert("모든 정보를 입력하세요.");
		}
	};
</script>
</html>

1.5수강신청 현황 뷰

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ page import="com.hm.VO.*"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
section h1 {
	text-align: center;
}

table {
	margin: 0 auto;
}
</style>
</head>
<body>
	<%@ include file="header_nav.jsp"%>
	<section>
		<h1>학생별 신청내역</h1>
		<table border=1>
			<thead>
				<tr>
					<th>학생이름</th>
					<th>클래스이름</th>
					<th>교수명</th>
					<th>등록일</th>
				</tr>
			</thead>
			<tbody>
				<% ArrayList<ClassVO> cList = (ArrayList)request.getAttribute("cList"); %>
				<%
			for(int i = 0;  i< cList.size(); i++){
				ClassVO cvo = cList.get(i);
			out.print("<tr>");
			out.print("<td>"+cvo.getName()+"</td>");
			out.print("<td>"+cvo.getClass_name()+"</td>");
			out.print("<td>"+cvo.getClass_pro()+"</td>");
			out.print("<td>"+cvo.getIndate().substring(0,10)+"</td>");
				out.print("</tr>");
			}
		%>

			</tbody>
		</table>
	</section>
	<%@ include file="footer.jsp"%>
</body>
</html>

2.컨트롤러

2.1인덱스

package com.hm.controller;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Index
 */
@WebServlet("/Index")
public class Index extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Index() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		request.setCharacterEncoding("UTF-8");
		String url = "index.jsp";
		RequestDispatcher dispatcher =  request.getRequestDispatcher(url);
		dispatcher.forward(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

2.2학생리스트

package com.hm.controller;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.hm.DAO.StudDAO;
import com.hm.VO.StudVO;

/**
 * Servlet implementation class ViewList
 */
@WebServlet("/ViewList")
public class ViewList extends HttpServlet {
	StudDAO sdao = new StudDAO();
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ViewList() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		ArrayList<StudVO> sList = sdao.selectAll();
		
		String url = "viewList.jsp";
		RequestDispatcher dispatcher =  request.getRequestDispatcher(url);
		request.setAttribute("sList", sList);
		dispatcher.forward(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

2.3학생등록 폼

package com.hm.controller;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.hm.DAO.StudDAO;

/**
 * Servlet implementation class AddForm
 */
@WebServlet("/AddForm")
public class AddForm extends HttpServlet {
	StudDAO sdao = new StudDAO();
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public AddForm() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		request.setCharacterEncoding("UTF-8");
		int no = sdao.getNo();
		String url = "addForm.jsp";
		RequestDispatcher dispatcher =  request.getRequestDispatcher(url);
		request.setAttribute("no", no);
		dispatcher.forward(request, response);
	
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

2.4학생등록 저장

package com.hm.controller;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.hm.DAO.StudDAO;
import com.hm.VO.StudVO;

/**
 * Servlet implementation class AddStud
 */
@WebServlet("/AddStud")
public class AddStud extends HttpServlet {
	StudDAO sdao = new StudDAO();
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public AddStud() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		request.setCharacterEncoding("UTF-8");
		StudVO svo = new StudVO();
		svo.setNo(Integer.parseInt(request.getParameter("no")));
		svo.setName(request.getParameter("name"));
		svo.setTel(request.getParameter("tel"));
		svo.setAddress(request.getParameter("address"));
		svo.setJoinDate(request.getParameter("joindate"));
		svo.setGrade(request.getParameter("grade"));
		sdao.insert(svo);
		
		response.sendRedirect("Index");
	
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

2.5학생 수정 폼

package com.hm.controller;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.hm.DAO.StudDAO;
import com.hm.VO.StudVO;

/**
 * Servlet implementation class ModyStud
 */
@WebServlet("/ModyStud")
public class ModyStud extends HttpServlet {
	StudDAO sdao = new StudDAO();
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ModyStud() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		int no = Integer.parseInt(request.getParameter("no"));
		StudVO svo = new StudVO();
		svo = sdao.selectOne(no);
		String url = "modyForm.jsp";
		RequestDispatcher dispatcher =  request.getRequestDispatcher(url);
		request.setAttribute("svo", svo);
		dispatcher.forward(request, response);
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

2.6학생 수정 저장

package com.hm.controller;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.hm.DAO.StudDAO;
import com.hm.VO.StudVO;

/**
 * Servlet implementation class ModyAction
 */
@WebServlet("/ModyAction")
public class ModyAction extends HttpServlet {
	StudDAO sdao = new StudDAO();
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ModyAction() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		request.setCharacterEncoding("UTF-8");
		StudVO svo = new StudVO();
		svo.setNo(Integer.parseInt(request.getParameter("no")));
		svo.setName(request.getParameter("name"));
		svo.setTel(request.getParameter("tel"));
		svo.setAddress(request.getParameter("address"));
		svo.setJoinDate(request.getParameter("joindate"));
		svo.setGrade(request.getParameter("grade"));
		sdao.mody(svo);
		
		response.sendRedirect("ViewList");
	
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

2.7학생 삭제

package com.hm.controller;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.hm.DAO.StudDAO;

/**
 * Servlet implementation class DelStud
 */
@WebServlet("/DelStud")
public class DelStud extends HttpServlet {
	StudDAO sdao = new StudDAO();
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public DelStud() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		int no = Integer.parseInt(request.getParameter("no"));
		System.out.println(no);
		sdao.delete(no);
		response.sendRedirect("ViewList");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

2.8수업현황 보기

package com.hm.controller;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.hm.DAO.StudDAO;
import com.hm.VO.ClassVO;

/**
 * Servlet implementation class ViewClass
 */
@WebServlet("/ViewClass")
public class ViewClass extends HttpServlet {
	StudDAO sdao = new StudDAO();
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public ViewClass() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		// response.getWriter().append("Served at: ").append(request.getContextPath());
		ArrayList<ClassVO> cList = sdao.selectClass();

		String url = "classView.jsp";
		RequestDispatcher dispatcher = request.getRequestDispatcher(url);
		request.setAttribute("cList", cList);
		dispatcher.forward(request, response);

	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

3.DAO

package com.hm.DAO;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import com.hm.VO.ClassVO;
import com.hm.VO.StudVO;

public class StudDAO {
	
	private Connection conn = null;

	public StudDAO() {
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			System.out.println("로드성공");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("로드실패");
		}
	}

	public boolean connect() {
		try {
			conn = DriverManager.getConnection(
					"jdbc:oracle:thin:@humanDB_high?TNS_ADMIN = C:/Users/human/Desktop/Wallet_humanDB", "admin",
					"Jb21499549954.");
			System.out.println("연결성공");
			return true;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			System.out.println("연결실패");
			e.printStackTrace();
			return false;
		}
	}
	
	public void insert(StudVO svo) {
		String sql = "insert into member_hm values(?,?,?,?,?,?)";
		if(connect()) {
			try {
				PreparedStatement psmt = conn.prepareStatement(sql);
				psmt.setInt(1, svo.getNo());
				psmt.setString(2, svo.getName());
				psmt.setString(3, svo.getTel());
				psmt.setString(4, svo.getAddress());
				psmt.setString(5, svo.getJoinDate());
				psmt.setString(6, svo.getGrade());
				psmt.executeQuery();
				
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		
	}
	
	public void mody(StudVO svo) {
		String sql = "update member_hm set name=?,tel=?,address=?,joindate=?,grade=? where no=?";
		if(connect()) {
			try {
				PreparedStatement psmt = conn.prepareStatement(sql);
				
				psmt.setString(1, svo.getName());
				psmt.setString(2, svo.getTel());
				psmt.setString(3, svo.getAddress());
				psmt.setString(4, svo.getJoinDate());
				psmt.setString(5, svo.getGrade());
				psmt.setInt(6, svo.getNo());
				System.out.println(svo.getNo()+svo.getName()+svo.getTel()+svo.getJoinDate()+svo.getGrade());
				psmt.executeQuery();
				
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		
	}
	
	public ArrayList<StudVO> selectAll() {
		ResultSet rs;
		ArrayList<StudVO> sList = new ArrayList<>();
		String sql = "select * from member_hm order by no";
		if(connect()) {
			try {
				
				Statement stmt = conn.createStatement();
				rs = stmt.executeQuery(sql);
				while(rs.next()) {
					StudVO svo = new StudVO();
					svo.setNo(rs.getInt("no"));
					svo.setName(rs.getString("name"));
					svo.setTel(rs.getString("tel"));
					svo.setAddress(rs.getString("address"));
					svo.setJoinDate(rs.getString("joindate"));
					svo.setGrade(rs.getString("grade"));
					sList.add(svo);
				}
				
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return sList;
		
	}
	
	public StudVO selectOne(int no) {
		ResultSet rs;
		String sql = "select * from member_hm where no=?";
		if(connect()) {
			try {
				PreparedStatement psmt = conn.prepareStatement(sql);
				psmt.setInt(1, no);
				rs= psmt.executeQuery();
				if(rs.next()) {
					StudVO svo = new StudVO();
					svo.setNo(rs.getInt("no"));
					svo.setName(rs.getString("name"));
					svo.setTel(rs.getString("tel"));
					svo.setAddress(rs.getString("address"));
					svo.setJoinDate(rs.getString("joindate"));
					svo.setGrade(rs.getString("grade"));
					return svo;
				}
				
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return null;
		
	}
	
	
	public int getNo() {
		ResultSet rs;
		String sql = "select outo_no.nextval as no from dual";
		if(connect()) {
			try {
				Statement stmt = conn.createStatement();
				rs = stmt.executeQuery(sql);
				if(rs.next()) {
					int no = rs.getInt("no");
					return no;
				}
				
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		return -1;
	}

	public ArrayList<ClassVO> selectClass() {
		// TODO Auto-generated method stub
		ResultSet rs;
		ArrayList<ClassVO> cList = new ArrayList<>();
		String sql = "select a.name, b.class_name ,b.class_pro,c.indate from member_hm a, class_hm b, class_select c\r\n" + 
				"where a.no=c.no and b.class_no = c.class_no";
		if(connect()) {
			try {
				Statement stmt = conn.createStatement();
				rs = stmt.executeQuery(sql);
				while(rs.next()) {
					ClassVO cvo = new ClassVO();
					cvo.setName(rs.getString("name"));
					cvo.setClass_name(rs.getString("class_name"));
					cvo.setClass_pro(rs.getString("class_pro"));
					cvo.setIndate(rs.getString("indate"));
					
					cList.add(cvo);
				}
				
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return cList;
	}

	public void delete(int no) {
		String sql = "delete member_hm where no = ?";
		if(connect()) {
			try {
				PreparedStatement psmt = conn.prepareStatement(sql);
				psmt.setInt(1, no);
				psmt.executeQuery();
				
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		// TODO Auto-generated method stub
		
	}

}

4.VO

4.1학생VO

package com.hm.VO;

public class StudVO {
	int no;
	String name;
	String tel;
	String address;
	String joinDate;
	String grade;
	
	public int getNo() {
		return no;
	}
	public void setNo(int no) {
		this.no = no;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getJoinDate() {
		return joinDate;
	}
	public void setJoinDate(String joinDate) {
		this.joinDate = joinDate;
	}
	public String getGrade() {
		return grade;
	}
	public void setGrade(String grade) {
		this.grade = grade;
	}
	

}

4.2수업정보VO

package com.hm.VO;

public class ClassVO {
	String name;
	String class_name;
	String class_pro;
	String indate;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getClass_name() {
		return class_name;
	}
	public void setClass_name(String class_name) {
		this.class_name = class_name;
	}
	public String getClass_pro() {
		return class_pro;
	}
	public void setClass_pro(String class_pro) {
		this.class_pro = class_pro;
	}
	public String getIndate() {
		return indate;
	}
	public void setIndate(String indate) {
		this.indate = indate;
	}

}
profile
공부하는 개발자

0개의 댓글