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

조하영·2022년 11월 23일

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

예)
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개의 댓글