[정보처리산업기사 과정평가형 - 실기] 코드 가져가기

     

    약 2시간의 작업결과로 DB와 JSP의 연결을 끝낼 수 있습니다.

     

    CSS는 개인의 자유이므로, 별도로 건들지 않았습니다.

    HRD_012152.war
    2.23MB
    HRD_012152.zip
    2.24MB

    파일은 원하시는 형태로 둘 중 하나로 가져가시면 됩니다.

     

     

     

     

     

     

    JSP 부분 <기본 : top, nav, footer, template>

    더보기

    top.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8"%>
    <%
    	request.setCharacterEncoding("UTF-8");
    %>
    <!DOCTYPE html>
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <head>
    <title>Hi</title>
    </head>
    <body>
    	<center>
    		<h1>쇼핑몰 회원관리 ver1.0</h1>
    	</center>
    </body>
    </html>

     

    nav.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8"%>
    <%
    	request.setCharacterEncoding("UTF-8");
    %>
    <!DOCTYPE html>
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <head>
    <title>Hi</title>
    </head>
    <body>
    	<table>
    		<tr>
    			<td><a href="joinNum.me">회원등록</a></td>
    			<td><a href="joinSelectAll.me">회원목록 조회/수정</a></td>
    			<td><a href="money.me">회원매출조회</a></td>
    			<td><a href="joinNum.me">홈으로</a></td>
    		</tr>
    	</table>
    </body>
    </html>

     

    footer.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8"%>
    <%
    	request.setCharacterEncoding("UTF-8");
    %>
    <!DOCTYPE html>
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <head>
    <title>Hi</title>
    </head>
    <body>
    	<center>Mollang 20.08.29 ver1.0</center>
    </body>
    </html>

     

     template.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8"%>
    <%
    	request.setCharacterEncoding("UTF-8");
    
    	String pp = (String) request.getAttribute("pp");
    	if (pp == null)
    	{
    		pp = "join";
    	}
    %>
    <!DOCTYPE html>
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <head>
    <title>Hi</title>
    </head>
    <body>
    	<jsp:include page="top.jsp"></jsp:include>
    	<jsp:include page="nav.jsp"></jsp:include>
    	<jsp:include page='<%=pp + ".jsp"%>'></jsp:include>
    	<jsp:include page="footer.jsp"></jsp:include>
    </body>
    </html>

     

    index.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8"%>
    <%
    	request.setCharacterEncoding("UTF-8");
    %>
    <!DOCTYPE html>
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <head>
    <title>Hi</title>
    </head>
    <body>
    	<% response.sendRedirect("joinNum.me"); %>
    </body>
    </html>

    JSP 부분 : 회원가입, 회원목록, 업데이트, 매출 정보 확인

    더보기

    join.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8"%>
    <%
    	request.setCharacterEncoding("UTF-8");
    %>
    <!DOCTYPE html>
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    
    <head>
    <title>Hi</title>
    <script language="javascript">
    	
    	//유효성 검사 하기
    	function joinChk()
    	{
    		//회원 성명
    		if(document.join.name.value =="")
    		{
    			alert('회원성명을 입력해주세요.');
    			document.join.name.focus();
    			return false;
    		}
    		//회원 전화
    		if(document.join.tel.value =="")
    		{
    			alert('회원전화를 입력해주세요.');
    			document.join.tel.focus();
    			return false;
    		}
    		//회원 주소
    		if(document.join.address.value =="")
    		{
    			alert('회원주소를 입력해주세요.');
    			document.join.address.focus();
    			return false;
    		}
    		//가입 일자
    		if(document.join.joindate.value =="")
    		{
    			alert('가입일자를 입력해주세요.');
    			document.join.joindate.focus();
    			return false;
    		}
    		//고객등급
    		if(document.join.grade.value =="")
    		{
    			alert('고객등급을 입력해주세요.');
    			document.join.grade.focus();
    			return false;
    		}
    		//도시코드
    		if(document.join.city.value =="")
    		{
    			alert('도시번호를 입력해주세요.');
    			document.join.city.focus();
    			return false;
    		}
    		
    		alert('회원등록이 완료되었습니다.!');
    		document.join.submit();
    	}
    
    </script>
    </head>
    <body>
    	<center>
    		<h1>홈쇼핑 회원 등록</h1>
    		<form name="join" action="joinAction.me" method="post">
    			<table border="1">
    				<tr>
    					<td>회원번호(자동발생)</td>
    					<td><input type="text" name="num" value="${cnt}"></td>
    				</tr>
    				<tr>
    					<td>회원성명</td>
    					<td><input type="text" name="name"></td>
    				</tr>
    				<tr>
    					<td>회원전화</td>
    					<td><input type="text" name="tel"></td>
    				</tr>
    				<tr>
    					<td>회원주소</td>
    					<td><input type="text" name="address"></td>
    				</tr>
    				<tr>
    					<td>가입일자</td>
    					<td><input type="text" name="joindate"></td>
    				</tr>
    				<tr>
    					<td>고객등급</td>
    					<td><input type="text" name="grade"></td>
    				</tr>
    				<tr>
    					<td>도시코드</td>
    					<td><input type="text" name="city"></td>
    				</tr>
    				<tr>
    					<td colspan="2"><center><input type="button" value="등록" onclick="joinChk()"> <input
    						type="submit" formaction="joinSelectAll.me" value="조회"></center></td>
    				</tr>
    			</table>
    		</form>
    	</center>
    </body>
    </html>

     

     

    joinList.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8"%>
    <%@ page import="java.util.*" import="MemberBean.Member"%>
    <%
    	request.setCharacterEncoding("UTF-8");
    
    //list를 불러온다.
    List<Member> list = (ArrayList<Member>) request.getAttribute("list");
    %>
    <!DOCTYPE html>
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <head>
    <title>Hi</title>
    </head>
    <body>
    	<h2>회원목록조회/수정</h2>
    	<table>
    		<tr>
    			<td>회원목록</td>
    			<td>회원성명</td>
    			<td>전화번호</td>
    			<td>주소</td>
    			<td>가입일자</td>
    			<td>고객등급</td>
    			<td>거주지역</td>
    		</tr>
    		<%
    			for (int i = 0; i < list.size(); i++) {
    		%>
    		<tr>
    			<td><a href='joinSelectOne.me?num=<%=list.get(i).getNum()%>'><%=list.get(i).getNum()%></a></td>
    			<td><%=list.get(i).getName()%></td>
    			<td><%=list.get(i).getTel()%></td>
    			<td><%=list.get(i).getAddress()%></td>
    			<td><%=list.get(i).getJoinDate()%></td>
    			<td><%=list.get(i).getGrade()%></td>
    			<td><%=list.get(i).getCity()%></td>
    		</tr>
    		<%
    			}
    		%>
    	</table>
    </body>
    </html>

     

    update.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8"%>
    <%@ page import="MemberBean.Member" %>
    <%
    	request.setCharacterEncoding("UTF-8");
    
    	Member member = (Member) request.getAttribute("member");
    %>
    <!DOCTYPE html>
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    
    <head>
    <title>Hi</title>
    <script language="javascript">
    	
    	//유효성 검사 하기
    	function joinChk()
    	{
    		//회원 성명
    		if(document.join.name.value =="")
    		{
    			alert('회원성명을 입력해주세요.');
    			document.join.name.focus();
    			return false;
    		}
    		//회원 전화
    		if(document.join.tel.value =="")
    		{
    			alert('회원전화를 입력해주세요.');
    			document.join.tel.focus();
    			return false;
    		}
    		//회원 주소
    		if(document.join.address.value =="")
    		{
    			alert('회원주소를 입력해주세요.');
    			document.join.address.focus();
    			return false;
    		}
    		//가입 일자
    		if(document.join.joindate.value =="")
    		{
    			alert('가입일자를 입력해주세요.');
    			document.join.joindate.focus();
    			return false;
    		}
    		//고객등급
    		if(document.join.grade.value =="")
    		{
    			alert('고객등급을 입력해주세요.');
    			document.join.grade.focus();
    			return false;
    		}
    		//도시코드
    		if(document.join.city.value =="")
    		{
    			alert('도시번호를 입력해주세요.');
    			document.join.city.focus();
    			return false;
    		}
    		
    		alert('회원등록이 완료되었습니다.!');
    		document.join.submit();
    	}
    
    </script>
    </head>
    <body>
    	<center>
    		<h1>홈쇼핑 회원 등록</h1>
    		<form name="join" action="UpdateAction.me" method="post">
    			<table border="1">
    				<tr>
    					<td>회원번호(자동발생)</td>
    					<td><input type="text" name="num" value="<%=member.getNum()%>"></td>
    				</tr>
    				<tr>
    					<td>회원성명</td>
    					<td><input type="text" name="name" value="<%=member.getName()%>"></td>
    				</tr>
    				<tr>
    					<td>회원전화</td>
    					<td><input type="text" name="tel" value="<%=member.getTel()%>"></td>
    				</tr>
    				<tr>
    					<td>회원주소</td>
    					<td><input type="text" name="address" value="<%=member.getAddress()%>"></td>
    				</tr>
    				<tr>
    					<td>가입일자</td>
    					<td><input type="text" name="joindate" value="<%=member.getJoinDate()%>"></td>
    				</tr>
    				<tr>
    					<td>고객등급</td>
    					<td><input type="text" name="grade" value="<%=member.getGrade()%>"></td>
    				</tr>
    				<tr>
    					<td>도시코드</td>
    					<td><input type="text" name="city" value="<%=member.getCity()%>"></td>
    				</tr>
    				<tr>
    					<td colspan="2"><center><input type="button" value="등록" onclick="joinChk()"> <input
    						type="submit" formaction="joinSelectAll.me" value="조회"></center></td>
    				</tr>
    			</table>
    		</form>
    	</center>
    </body>
    </html>

     

    money.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8"%>
    <%@ page import="java.util.*" import="MemberBean.Member"%>
    <%
    	request.setCharacterEncoding("UTF-8");
    
    //list를 불러온다.
    List<Member> list = (ArrayList<Member>) request.getAttribute("list");
    %>
    <!DOCTYPE html>
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <head>
    <title>Hi</title>
    </head>
    <body>
    	<h2>회원매출조회</h2>
    	<table>
    		<tr>
    			<td>회원목록</td>
    			<td>회원성명</td>
    			<td>고객등급</td>
    			<td>매출</td>
    		</tr>
    		<%
    			for (int i = 0; i < list.size(); i++) {
    		%>
    		<tr>
    			<td><%=list.get(i).getNum()%></td>
    			<td><%=list.get(i).getName()%></td>
    			<td><%=list.get(i).getGrade()%></td>
    			<td><%=list.get(i).getPrice()%></td>
    		</tr>
    		<%
    			}
    		%>
    	</table>
    </body>
    </html>

     

    java 부분 : VO

    더보기

    MemberVO.java

    package MemberBean;
    
    public class Member
    {
    	private String num;
    	private String name;
    	private String tel;
    	private String address;
    	private String joinDate;
    	private String grade;
    	private String city;
    	private String price;
    	
    	
    	public String getNum()
    	{
    		return num;
    	}
    	public void setNum(String num)
    	{
    		this.num = num;
    	}
    	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;
    	}
    	public String getCity()
    	{
    		return city;
    	}
    	public void setCity(String city)
    	{
    		this.city = city;
    	}
    	
    	public String getPrice() {
    		return price;
    	}
    	public void setPrice(String price) {
    		this.price = price;
    	}
    	
    	
    	
    }
    

    JAVA 부분 : Controller

    더보기
    package MemberDB;
    
    import java.io.IOException;
    
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class MemberController extends HttpServlet {
    	
    	
    	
    	protected void doProcess(HttpServletRequest request, HttpServletResponse response) throws Exception {
    		
    		//URL 확인하기
    		String uri = request.getRequestURI();
    		String context = request.getContextPath();
    		String command = uri.substring(context.length());
    		
    		String sit = null;
    		
    		System.out.println("command : "+command);
    		
    		MemberDAO member = new MemberDAO();
    		
    		//회원가입 버튼 클릭
    		if(command.equals("/joinAction.me"))
    		{
    			//member의 JoinAction 메소드 실행시키기.
    			
    			sit = member.JoinAction(request, response);
    			
    		}
    		
    		//회원가입 화면 시작할 때.
    		else if(command.equals("/joinNum.me"))
    		{
    			sit = member.JoinNum(request, response);
    			
    			request.setAttribute("pp", "join");
    		}
    		
    		//회원 목록 불러오기
    		else if(command.equals("/joinSelectAll.me"))
    		{
    			sit = member.joinSelectAll(request, response);
    			
    			request.setAttribute("pp", "joinList");
    		}
    		
    		//회원정보 불러오기
    		else if(command.equals("/joinSelectOne.me"))
    		{
    			sit = member.joinSelectOne(request, response);
    			
    			request.setAttribute("pp", "update");
    		}
    		
    		//회원 업데이트를 진행한다
    		else if(command.equals("/UpdateAction.me"))
    		{
    			sit = member.UpdateAction(request, response);
    		}
    		
    		//매출 정보 확인하기
    		else if(command.equals("/money.me"))
    		{
    			sit = member.money(request, response);
    			
    			request.setAttribute("pp", "money");
    		}
    
    		
    		
    		//결과 수행
    		RequestDispatcher dispatcher = request.getRequestDispatcher(sit);
    		dispatcher.forward(request, response);
    		
    	}
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		request.setCharacterEncoding("UTF-8");
    		try {
    		doProcess(request, response);
    		}catch(Exception e)
    		{
    			e.printStackTrace();
    		}
    	}
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		request.setCharacterEncoding("UTF-8");
    		try
    		{
    		doProcess(request, response);
    		}
    		catch(Exception e)
    		{
    			e.printStackTrace();
    		}
    	}
    
    }
    

    JAVA 부분 : DAO

    더보기
    package MemberDB;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import MemberBean.Member;
    
    public class MemberDAO {
    	Connection con;
    	PreparedStatement pstmt;
    	ResultSet rs;
    
    	MemberDAO() throws Exception {
    		con = getConnection();
    	}
    
    	public static Connection getConnection() throws Exception {
    		Class.forName("oracle.jdbc.OracleDriver");
    		Connection con = DriverManager.getConnection("jdbc:oracle:thin:@//localhost:1521/xe", "hr", "hr");
    		return con;
    	}
    
    	// 회원가입하기
    	// request와 response는 암기하지 말고, servlet으로 생성될때 매개변수를 복사해서 가져오면 된다.
    	public String JoinAction(HttpServletRequest request, HttpServletResponse response) {
    		// db sql문
    		// preparedStatement는 ?의 순서에 따라 값이 등록된다.
    		String sql = "insert into member_tbl_02 values(member_seq.nextval, ?, ?, ?, ?, ?, ?)";
    
    		try {
    			pstmt = con.prepareStatement(sql);
    
    			// submit을 눌렀을 때 form안의 name이 Parameter값으로 변환된다.
    			String name = request.getParameter("name");
    			String tel = request.getParameter("tel");
    			String address = request.getParameter("address");
    			String joindate = request.getParameter("joindate");
    			String grade = request.getParameter("grade");
    			String city = request.getParameter("city");
    
    			// 이를 sql에 접목 시킨다.
    			// 1번째 ?에 name의 값을 넣는다.
    			pstmt.setString(1, name);
    			// 2번째 ?에 tel의 값을 넣는다.
    			pstmt.setString(2, tel);
    			// 3번째 ?에 address의 값을 넣는다.
    			pstmt.setString(3, address);
    			// 4번째 ?에 joindate의 값을 넣는다.
    			pstmt.setString(4, joindate);
    			// 5번째 ?에 grade의 값을 넣는다.
    			pstmt.setString(5, grade);
    			// 6번째 ?에 city의 값을 넣는다.
    			pstmt.setString(6, city);
    
    			// 완료가 되었으면 값을 지정한다.
    			int cnt = pstmt.executeUpdate();
    
    			// 결과값이 0일 경우 실패, 1일 경우 성공이다
    			System.out.println(cnt);
    
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		// 완료가 되었으면 닫아 준다.
    		finally {
    			try {
    				if (pstmt != null)
    					pstmt.close();
    				if (con != null)
    					con.close();
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
    
    		return "joinNum.me";
    	}
    
    	// 회원번호 자동 생성하기
    	public String JoinNum(HttpServletRequest request, HttpServletResponse response) {
    		// 조건 첫번째 줄만 표시
    		// CUSTNO(회원번호)를 높은순으로 표시하여 가장 마지막 번호를 제일 위로 보낸다.
    		String sql = "select CUSTNO from member_tbl_02 WHERE ROWNUM =1 ORDER BY CUSTNO DESC";
    
    		try {
    			pstmt = con.prepareStatement(sql);
    
    			rs = pstmt.executeQuery();
    
    			int cnt = 100001;
    
    			if (rs.next())
    				// 첫 번째 컬럼의 값을 가져온다.
    				cnt = rs.getInt(1);
    
    			// custno 컬럼의 값을 가져온다.
    			// int cnt = rs.getInt("custno");
    
    			// 결과값을 request에 담는다.
    			// cnt의 결과값에서 +1을 진행한다.
    			request.setAttribute("cnt", ++cnt);
    
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				if (rs != null)
    					rs.close();
    				if (pstmt != null)
    					pstmt.close();
    				if (con != null)
    					con.close();
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
    
    		return "template.jsp";
    	}
    
    	// 회원 목록 불러오기
    	public String joinSelectAll(HttpServletRequest request, HttpServletResponse response) {
    		try {
    
    			// *을 활용하여 모두 출력할 수 있지만, 컬럼을 확실하게 구분하기 위해 컬럼을 표시하였다.
    			// 회원번호기준으로 내림차순으로 주어져있으므로 내림차순을 주었다.
    			String sql = "select CUSTNO, CUSTNAME, PHONE, ADDRESS, JOINDATE, GRADE, CITY from member_tbl_02 ORDER BY CUSTNO ASC";
    
    			pstmt = con.prepareStatement(sql);
    
    			rs = pstmt.executeQuery();
    
    			// 결과값을 담기 위해 ArrayList를 준비한다.
    			List<Member> list = new ArrayList<Member>();
    
    			// 검색된 개수만큼 반복문이 돌아간다.
    			while (rs.next()) {
    				// Member객체 하나를 생성한다.
    				Member member = new Member();
    
    				int custno = rs.getInt(1);
    				System.out.println(custno);
    				String name = rs.getString(2);
    				String phone = rs.getString(3);
    				String address = rs.getString(4);
    
    				// date타입을 불러올 경우, 년월일시분초 로 가져온다. 여기서 년월일은 총 yyyy-mm-dd 이므로 10자리까지만 가져오면 된다.
    				String date = rs.getString(5).substring(0, 10);
    
    				String grade = rs.getString(6);
    				// 등급에 따라 표시를 변경한다
    				// A = VIP, B = 일반, C = 직원
    				if (grade.equals("A"))
    					grade = "VIP";
    				else if (grade.equals("B"))
    					grade = "일반";
    				else if (grade.equals("C"))
    					grade = "직원";
    
    				String city = rs.getString(7);
    
    				// 위에 가져온 것을 Member타입으로 모두 넣는다.
    				// Member의 객체 num은 String 타입이고, custno는 int타입이다. 따라서 int에서 string으로 형변환이 필요하다.
    				member.setNum(Integer.toString(custno));
    				member.setName(name);
    				member.setTel(phone);
    				member.setAddress(address);
    				member.setJoinDate(date);
    				member.setGrade(grade);
    				member.setCity(city);
    
    				// member를 list에 담는다.
    				list.add(member);
    
    			}
    
    			// list의 결과값을 list에 담는다.
    			request.setAttribute("list", list);
    
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				if (rs != null)
    					rs.close();
    				if (pstmt != null)
    					pstmt.close();
    				if (con != null)
    					con.close();
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
    
    		return "template.jsp";
    	}
    
    	// 회원 정보 가져오기
    	public String joinSelectOne(HttpServletRequest request, HttpServletResponse response) {
    		try {
    
    			// *을 활용하여 모두 출력할 수 있지만, 컬럼을 확실하게 구분하기 위해 컬럼을 표시하였다.
    			String sql = "select CUSTNO, CUSTNAME, PHONE, ADDRESS, JOINDATE, GRADE, CITY from member_tbl_02 where custno = ?";
    
    			pstmt = con.prepareStatement(sql);
    
    			String num = request.getParameter("num");
    			// 조회를 하기 위해서 ResultSet 하기 전에 가져온다.
    			pstmt.setInt(1, Integer.parseInt(num));
    
    			rs = pstmt.executeQuery();
    
    			Member member = new Member();
    
    			// 검색된 개수만큼 반복문이 돌아간다.
    			if (rs.next()) {
    				// Member객체 하나를 생성한다.
    
    				int custno = rs.getInt(1);
    				System.out.println(custno);
    				String name = rs.getString(2);
    				String phone = rs.getString(3);
    				String address = rs.getString(4);
    
    				// date타입을 불러올 경우, 년월일시분초 로 가져온다. 여기서 년월일은 총 yyyy-mm-dd 이므로 10자리까지만 가져오면 된다.
    				String date = rs.getString(5).substring(0, 10);
    
    				String grade = rs.getString(6);
    
    				String city = rs.getString(7);
    
    				// 위에 가져온 것을 Member타입으로 모두 넣는다.
    				// Member의 객체 num은 String 타입이고, custno는 int타입이다. 따라서 int에서 string으로 형변환이 필요하다.
    				member.setNum(Integer.toString(custno));
    				member.setName(name);
    				member.setTel(phone);
    				member.setAddress(address);
    				member.setJoinDate(date);
    				member.setGrade(grade);
    				member.setCity(city);
    
    			}
    
    			// list의 결과값을 list에 담는다.
    			request.setAttribute("member", member);
    
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				if (rs != null)
    					rs.close();
    				if (pstmt != null)
    					pstmt.close();
    				if (con != null)
    					con.close();
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
    
    		return "template.jsp";
    	}
    
    	// 회원 수정하기
    	// request와 response는 암기하지 말고, servlet으로 생성될때 매개변수를 복사해서 가져오면 된다.
    	public String UpdateAction(HttpServletRequest request, HttpServletResponse response) {
    		// db sql문
    		// preparedStatement는 ?의 순서에 따라 값이 등록된다.
    		String sql = "UPDATE MEMBER_TBL_02 SET CUSTNAME= ?, PHONE=?, ADDRESS=?, JOINDATE=?, GRADE=?, CITY=? WHERE CUSTNO = ?";
    
    		try {
    			pstmt = con.prepareStatement(sql);
    
    			// submit을 눌렀을 때 form안의 name이 Parameter값으로 변환된다.
    			String num = request.getParameter("num");
    			String name = request.getParameter("name");
    			String tel = request.getParameter("tel");
    			String address = request.getParameter("address");
    			String joindate = request.getParameter("joindate");
    			String grade = request.getParameter("grade");
    			String city = request.getParameter("city");
    
    			// 이를 sql에 접목 시킨다.
    			// 1번째 ?에 name의 값을 넣는다.
    			pstmt.setString(1, name);
    			// 2번째 ?에 tel의 값을 넣는다.
    			pstmt.setString(2, tel);
    			// 3번째 ?에 address의 값을 넣는다.
    			pstmt.setString(3, address);
    			// 4번째 ?에 joindate의 값을 넣는다.
    			pstmt.setString(4, joindate);
    			// 5번째 ?에 grade의 값을 넣는다.
    			pstmt.setString(5, grade);
    			// 6번째 ?에 city의 값을 넣는다.
    			pstmt.setString(6, city);
    			
    			//7번째를 추가한다.
    			pstmt.setInt(7, Integer.parseInt(num));
    
    			// 완료가 되었으면 값을 지정한다.
    			int cnt = pstmt.executeUpdate();
    
    			// 결과값이 0일 경우 실패, 1일 경우 성공이다
    			System.out.println(cnt);
    
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		// 완료가 되었으면 닫아 준다.
    		finally {
    			try {
    				if (pstmt != null)
    					pstmt.close();
    				if (con != null)
    					con.close();
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
    
    		return "joinSelectOne.me";
    	}
    	
    	
    	//매출 조회하기
    	// 회원 목록 불러오기
    		public String money(HttpServletRequest request, HttpServletResponse response) {
    			try {
    
    				// *을 활용하여 모두 출력할 수 있지만, 컬럼을 확실하게 구분하기 위해 컬럼을 표시하였다.
    				// 회원번호기준으로 내림차순으로 주어져있으므로 내림차순을 주었다.
    				String sql = "SELECT A.CUSTNO, A.CUSTNAME, A.GRADE, SUM(B.PRICE) AS TOTAL FROM MEMBER_TBL_02 A JOIN MONEY_TBL_02 B ON A.CUSTNO = B.CUSTNO GROUP BY(A.CUSTNO, A.CUSTNAME, A.GRADE) ORDER BY TOTAL DESC";
    				
    
    				pstmt = con.prepareStatement(sql);
    
    				rs = pstmt.executeQuery();
    
    				// 결과값을 담기 위해 ArrayList를 준비한다.
    				List<Member> list = new ArrayList<Member>();
    
    				// 검색된 개수만큼 반복문이 돌아간다.
    				while (rs.next()) {
    					// Member객체 하나를 생성한다.
    					Member member = new Member();
    
    					int custno = rs.getInt(1);
    					String name = rs.getString(2);
    
    					String grade = rs.getString(3);
    					// 등급에 따라 표시를 변경한다
    					// A = VIP, B = 일반, C = 직원
    					if (grade.equals("A"))
    						grade = "VIP";
    					else if (grade.equals("B"))
    						grade = "일반";
    					else if (grade.equals("C"))
    						grade = "직원";
    
    					int price = rs.getInt(4);
    
    					// 위에 가져온 것을 Member타입으로 모두 넣는다.
    					// Member의 객체 num은 String 타입이고, custno는 int타입이다. 따라서 int에서 string으로 형변환이 필요하다.
    					member.setNum(Integer.toString(custno));
    					member.setName(name);
    					member.setGrade(grade);
    					member.setPrice(Integer.toString(price));
    
    					// member를 list에 담는다.
    					list.add(member);
    
    				}
    
    				// list의 결과값을 list에 담는다.
    				request.setAttribute("list", list);
    
    			} catch (Exception e) {
    				e.printStackTrace();
    			} finally {
    				try {
    					if (rs != null)
    						rs.close();
    					if (pstmt != null)
    						pstmt.close();
    					if (con != null)
    						con.close();
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    
    			return "template.jsp";
    		}
    
    }
    

     

     

     

    완벽한 정답은 아닙니다. 다만, 산업기사과정평가형을 통해 자격증을 도전하고 취득한 저의 입장으로서

    최대한 MVC를 활용하여 유지보수와 코드 간결화를 노리며

     

    시험을 도전하는 이들에게 도움이 조금이라도 되고자 작성하게 되었습니다.

     

     

     

    모두들 화이팅 입니다.

     

     

     

     

     

    전체 목록


    [정보처리산업기사 과정평가형] 시험보기 앞서

    [정보처리산업기사 과정평가형] 0. 만드려는 모습

    [정보처리산업 과정평가형 - 실기] DB 만들기

    [정보처리산업 과정평가형 - 실기]JSP 화면 만들기

    [정보처리산업 과정평가형 - 실기] Java 만들기

    [정보처리산업기사 과정평가형 - 실기] DAO 만들기

    [정보처리산업기사 과정평가형 - 실기] 회원가입 만들기

    [정보처리산업기사 과정평가형 - 실기] 회원가입 만들기2

    [정보처리산업기사 과정평가형 - 실기] 회원가입 만들기3

    [정보처리산업기사 과정평가형 - 실기] 회원 목록 만들기

    [정보처리산업기사 과정평가형 - 실기] 회원 정보 가져오기

    [정보처리산업기사 과정평가형 - 실기] 회원 정보 수정하기

    [정보처리산업기사 과정평가형 - 실기] 매출 표현하기

    [정보처리산업기사 과정평가형 - 실기] 코드 가져가기


     

    반응형

    댓글

    Designed by JB FACTORY