member_insert.jsp
=============================코드=============================
<%@page import="com.member.model.MemberDTO"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
List<MemberDTO> list = (List<MemberDTO>)request.getAttribute("List");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div align = "center">
<hr width = "30%" color = "red">
<h3>Member 테이블 회원 추가</h3>
<hr width = "30%" color = "red">
<br/> <br/>
<form method = "post" action ="<%= request.getContextPath() %>/insert_ok">
<table border = "1" width = "350">
<tr>
<th>회원 아이디</th>
<td>
<input type = "text" name = "id">
</td>
</tr>
<tr>
<th>회원 이름</th>
<td>
<input type = "text" name = "name">
</td>
</tr>
<tr>
<th>회원 비밀번호</th>
<td>
<input type = "text" name = "pwd">
</td>
</tr>
<tr>
<th>회원 나이</th>
<td>
<input type = "text" name = "age">
</td>
</tr>
<tr>
<th>회원 마일리지</th>
<td>
<input type = "text" name = "mileage">
</td>
</tr>
<tr>
<th>회원 직업</th>
<td>
<input type = "text" name = "job">
</td>
</tr>
<tr>
<th>회원 주소</th>
<td>
<input type = "text" name = "addr">
</td>
</tr>
<tr>
<td colspan = "2" align = "center">
<input type = "submit" value = "회원등록">
<input type = "reset" value = "다시 작성">
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
MemberDAO에서
회원을 등록할 insertMember() 메서드 생성
=============================코드=============================
// member 테이블에 회원을 추가하는 메서드
public int insertMember(MemberDTO dto) {
int result = 0, count = 0;
try {
// 1단계와 2단계를 같이 진행! : 오라클 드라이버 로딩 및 데이터베이스와 연결 진행
openConn();
// 3단계 : DB에 전송할 SQL문 작성
sql = "select max(memno) from member";
// 4단계 : SQL문을 DB 전송 객체에 인자로 전달
pstmt = con.prepareStatement(sql);
// 5단계 : SQL문을 DB에 전송 및 실행
rs = pstmt.executeQuery();
if(rs.next()) {
count = rs.getInt(1); // max 값을 가져옴
}
// 3단계 : DB에 전송할 SQL문 작성
sql = "insert into member values(?, ?, ?, ?, ?, ?, ?, ?, sysdate)";
// 4단계 : SQL문을 DB 전송 객체에 인자로 전달
pstmt = con.prepareStatement(sql);
// 4-1단계 : 플레이스 홀더(?)에 데이터를 배정
pstmt.setInt(1, count+1);
pstmt.setString(2, dto.getMemid());
pstmt.setString(3, dto.getMemname());
pstmt.setString(4, dto.getPwd());
pstmt.setInt(5, dto.getAge());
pstmt.setInt(6, dto.getMileage());
pstmt.setString(7, dto.getJob());
pstmt.setString(8, dto.getAddr());
// 5단계 : SQL문을 DB에 전송 및 실행
result = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally {
// 6단계 : DB에 연결되어 있던 자원 종료하기
closeConn(rs, pstmt, con);
}
return result;
}
com.member.controller 패키지 에서
=============================코드=============================
package com.member.controller;
import java.io.IOException;
import java.io.PrintWriter;
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.member.model.MemberDAO;
import com.member.model.MemberDTO;
@WebServlet("/insert_ok.go")
public class InsertOkServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public InsertOkServlet() {
super();
}
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 요청 : member 테이블에 회원 등록을 요청
// 응답 : member 테이블에 회원 등록 폼 페이지에서 넘어온 데이터를 잘 저장하는 비즈니스 로직
// 한글 깨짐 방지 설정 작업 진행
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset = UTF-8"); // html 태그 작성할 때 꼭 필요!(정보 추가 혹은 삭제, 수정 시)
// 1단계 : 회원 등록 폼 페이지에서 넘어온 데이터들을 받아주자
String member_id = request.getParameter("id").trim();
String member_name = request.getParameter("name").trim();
String member_pwd = request.getParameter("pwd").trim();
String member_age = request.getParameter("age").trim();
String member_mileage = request.getParameter("mileage").trim();
String member_job = request.getParameter("job");
String member_addr = request.getParameter("addr");
// 2단계 : DB에 전송할 DTO 객체의 setter() 메서드의 인자로 파라미터로 받은 값들을 저장
MemberDTO dto = new MemberDTO();
dto.setMemid(member_id);
dto.setMemname(member_name);
dto.setPwd(member_pwd);
dto.setAge(Integer.parseInt(member_age));
dto.setMileage(Integer.parseInt(member_mileage));
dto.setJob(member_job);
dto.setAddr(member_addr);
// 3단계 : DB 접근 객체를 생성해주자
MemberDAO dao = MemberDAO.getInstance();
// 4단계 : DAO 객체의 메소드 호출 시 인자로 dto 객체를 넘겨주자
int check = dao.insertMember(dto);
PrintWriter out = response.getWriter();
if(check > 0) {
out.println("<script>");
out.println("alert('회원 등록 성공!')");
out.println("location.href = 'select.go'"); // select.go 서블릿으로 다시 넘어감
out.println("</script>");
}else {
out.println("<script>");
out.println("alert('회원 등록 실패!')");
out.println("histroy.go(-1)"); // 이전 페이지로 돌아감
out.println("</script>");
}
}
}
main.jsp로 가서 실행해보자

전체 회원 목록 클릭

회원 추가 클릭

회원등록 클릭

확인 클릭

Member 전체회원 목록 리스트로 넘어가며 회원 추가됨