카테고리 없음

Servlet작성 실습 - myemp테이블에 데이터 insert하기

coyojo 2022. 12. 4. 15:54

작업순서

 

[step1]

EmpInsertServlet을 작성한다. "서블릿요청성공"을 sysout으로 출력하도록 코드 작성하기

[step2]

register.html에서 [가입하기] 버튼을 누르면 서블릿이 요청되는지 확인하기

[step3]

EmpDAO클래스를 작성하고 insert메소드 정의하기

우선은 public void insert()로 정의하여 메소드에서 sysout으로 출력하도록 작성한다.

EmpInsertServlet에서 EmpDAO클래스의 insert메소드를 호출하여 호출이 성공적으로 완료되는지 확인한다.

[step4]

EmpInsertServlet에서 클라이언트가 전송한 요청정보를 추출하여 샘플로 출력해보기

String id = req.getParameter("id")

[step5]

EmpDTO클래스를 작성하고 step4가 완료되면 step4에서 추출한 정보를 이용해서 EmpDTO객체를 생성하기

[step6]

EmpDAO의 insert메소드의 매개변수를 수정하여 EmpDTO가 EmpDAO객체로 전달이 잘 되었는지 확인하기. sysout으로 정보를 추출하여 확인한다.

[step7]

EmpDAO클래스의 insert메소드를 완성한다.(CustomerDAO를 참고하여 작업하기)

[step8]

EmpInsertServlet에서 EmpDAO의 insert메소드 호출결과를 sysout으로 출력하여 insert가 잘 됐는지 확인하기

[step9]

EmpInsertServlet에서 출력결과를 응답할 수 있도록 out.print()메소드를 이용하여 적절하게 작업하기

 

 

<EmpInsertServlet 클래스 작성> 

import java.io.IOException;
import java.io.PrintWriter;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@WebServlet(name = "empinsert",urlPatterns = {"/emp/insert.do"})
public class EmpInsertServlet extends HttpServlet {

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//요청과 응답에 한글 셋팅하기
		req.setCharacterEncoding("UTF-8");
		resp.setContentType("text/html;charset=UTF-8");
		System.out.println("서블릿 요청 성공~!");
		
		//응답 데이터를 브라우저 화면에 출력하기 위해 PrintWriter객체를 생성하고
		//응답 데이터를 얻어와 resp.getWriter() printWriter 객체에 담아주기!! 
		PrintWriter out = resp.getWriter();
		
		
		//클라이언트의 요청 데이터를 추출하여 변수에 담아주기!! 
		String deptno = req.getParameter("deptno");
		String name = req.getParameter("name");
		String id = req.getParameter("id");
		String pass = req.getParameter("pass");
		String addr = req.getParameter("addr");
		int point = Integer.parseInt(req.getParameter("point"));
		String grade = req.getParameter("grade");
		
		EmpDTO emp = new EmpDTO(deptno, name, id, pass, addr, grade);
		EmpDAO dao = new EmpDAO();
		int result = dao.insert(emp);
		
		System.out.println(result+"개 행 삽입 성공!");
		
		if(result>0) {
			out.print("<img src='/serverweb/images/jehoon.png'/>");
			out.print("<h2>삽입성공</h2>");
		}else {
			out.print("<h2>삽입실패</h2>");
		}
		
		
	}

}

EmpDAO 클래스

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import jdbc.DBUtil;

public class EmpDAO {  // insert 메소드를 구현하여 db에 접근할 객체 
	public static void main(String[] args) {
		
	}
	
	
	public int insert(EmpDTO emp) {
		String sql ="insert into myemp values(?,?,?,?,?,1000,?)";
		Connection con = null;
		PreparedStatement ptmt = null;
		int result =0;
		
		try {
			con = DBUtil.getConnection();
			ptmt = con.prepareStatement(sql);
			ptmt.setString(1, emp.getDeptno());
			ptmt.setString(2, emp.getName());
			ptmt.setString(3, emp.getId());
			ptmt.setString(4, emp.getPass());
			ptmt.setString(5, emp.getAddr());
			ptmt.setString(6, emp.getGrade());
			
		 result = ptmt.executeUpdate();
			
			
		}catch(SQLException e) {
			e.printStackTrace();
		}finally {
			DBUtil.close(null, ptmt, con);
		}
		return result;
		
		
		
		
	}
	

}

 

EmpDTO 클래스 작성

public class EmpDTO { // 레코드를 담을 객체 
	String deptno;
	String name;
	String id;
	String pass;
	String addr;
	int point;
	String grade;
	
	public EmpDTO() {
		
	}
	
	
	
	
	@Override
	public String toString() {
		return "EmpDTO [deptno=" + deptno + ", name=" + name + ", id=" + id + ", pass=" + pass + ", addr=" + addr
				+ ", point=" + point + ", grade=" + grade + "]";
	}




	//insert용 
	public EmpDTO(String deptno, String name, String id, String pass, String addr, String grade) {
		super();
		this.deptno = deptno;
		this.name = name;
		this.id = id;
		this.pass = pass;
		this.addr = addr;
		this.grade = grade;
	}







	public String getDeptno() {
		return deptno;
	}

	public void setDeptno(String deptno) {
		this.deptno = deptno;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getPass() {
		return pass;
	}

	public void setPass(String pass) {
		this.pass = pass;
	}

	public String getAddr() {
		return addr;
	}

	public void setAddr(String addr) {
		this.addr = addr;
	}

	public int getPoint() {
		return point;
	}

	public void setPoint(int point) {
		this.point = point;
	}

	public String getGrade() {
		return grade;
	}

	public void setGrade(String grade) {
		this.grade = grade;
	}
	
	
	
	

}