JSP _DAO분리 _ JOIN CODE

JoMinJun·2021년 4월 7일
0

[Basic] JSP

목록 보기
9/9

DAO 분리 와 VO 사용 전 join.jsp 에 전부 코드를 넣었다.

DAO 분리 와 VO 사용 전에는 한 페이지에 코드를 너무 많이 작성한다

join.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="kr.co.koo.jdbc.user.model.UserDAO"%>
<%@ page import="java.sql.*" %>
<%
	
	request.setCharacterEncoding("utf-8");
	
	String name = request.getParameter("name");
	String id = request.getParameter("id");
	String pw = request.getParameter("pw");
	String phone1 = request.getParameter("phone1");
	String phone2 = request.getParameter("phone2");
	String phone3 = request.getParameter("phone3");
	String gender = request.getParameter("gender");
	
	
	
	//2. JDBC로직 작성.
	String url = "jdbc:mysql://localhost:3306/jsp_practice";
	String uid = "jsp";
	String upw = "jsp";
	
	Connection conn = null;
	//Statement stmt = null;
	PreparedStatement pstmt = null;
	
	String sql = "INSERT INTO users VALUES ('" 
	+ name + "', '" + id + "', '" + pw 
	+ "', '" + phone1 + "', '" + phone2 
	+ "', '"+ phone3 + "', '" + gender + "')";
	
	String sql = "INSERT INTO users VALUES (?,?,?,?,?,?,?)";
	
	
	System.out.println(sql);
	
	try {
		Class.forName("com.mysql.jdbc.Driver");
		conn = DriverManager.getConnection(url, uid, upw);
		//stmt = conn.createStatement();
		pstmt = conn.prepareStatement(sql);
		
		pstmt.setString(1, name);
		pstmt.setString(2, id);
		pstmt.setString(3, pw);
		pstmt.setString(4, phone1);
		pstmt.setString(5, phone2);
		pstmt.setString(6, phone3);
		pstmt.setString(7, gender);
		
		//int rn = stmt.executeUpdate(sql);
		int rn = pstmt.executeUpdate();
		
		if(rn == 1) {
			session.setAttribute("user_name", name);
			response.sendRedirect("join_success.jsp");
		} else {
			response.sendRedirect("join_form.jsp");
		}
		
	} catch(Exception e) {
		e.printStackTrace();
	} finally {
		try {
			conn.close(); pstmt.close();//stmt.close(); 
		} catch(Exception e) {
			e.printStackTrace();
		}
	}
	
	
%>

- 코드의 유지 보수와 재활용이 힘들어지며, 불편함 UP~

유지보수와 재활용을 위해 코드를 나눠서 관리하자
jsp,DAO 분리 와 VO 사용 후 페이지 분할

join.jsp

<jsp:useBean id="users" class="kr.co.koo.jdbc.user.model.UserVO" />
<jsp:setProperty name = "users" property = "*"/>

<%

		UserDAO dao = UserDAO.getInstance();
		int rn =  dao.join(users);
			
		if(rn == 1){
			session.setAttribute("user_name",users.getName());
			response.sendRedirect("joim_success.jsp");
		} else {
			response.sendRedirect("join_form.jsp");
		}

%>

vo.java

package kr.co.koo.jdbc.user.model;

public class UserVO {
	

	private String name;
	private String id;
	private String pw;
	private String phone1;
	private String phone2;
	private String phone3;
	private String gender;
	
	
	public UserVO() {}

	public UserVO(String name, String id, String pw, String phone1, String phone2, String phone3, String gender) {
		super();
		this.name = name;
		this.id = id;
		this.pw = pw;
		this.phone1 = phone1;
		this.phone2 = phone2;
		this.phone3 = phone3;
		this.gender = gender;
	}

	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 getPw() {
		return pw;
	}

	public void setPw(String pw) {
		this.pw = pw;
	}

	public String getPhone1() {
		return phone1;
	}

	public void setPhone1(String phone1) {
		this.phone1 = phone1;
	}

	public String getPhone2() {
		return phone2;
	}

	public void setPhone2(String phone2) {
		this.phone2 = phone2;
	}

	public String getPhone3() {
		return phone3;
	}

	public void setPhone3(String phone3) {
		this.phone3 = phone3;
	}

	public String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}
		
}

dao.java

package kr.co.koo.jdbc.user.model;

import java.sql.*;
import java.util.*;


public class UserDAO {

	
	
	private String url = "jdbc:mysql://localhost:3306/";
	private String uid = "";
	private String upw = "";
	
	
	
		private UserDAO() {
			try {
				Class.forName("com.mysql.jdbc.Driver");
			} catch(Exception e) {
				e.printStackTrace();
			}
		}

		
		private static UserDAO dao = new UserDAO();

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

public int join(UserVO users) {
	
	String sql = "INSERT INTO users VALUES (?,?,?,?,?,?,?)";

	Connection conn = null;
	PreparedStatement pstmt = null;

	int rn = 0;

	try {
		conn = DriverManager.getConnection(url, uid, upw);
		pstmt = conn.prepareStatement(sql);
		pstmt.setString(1, users.getName());
		pstmt.setString(2, users.getId());
		pstmt.setString(3, users.getPw());
		pstmt.setString(4, users.getPhone1());
		pstmt.setString(5, users.getPhone2());
		pstmt.setString(6, users.getPhone3());
		pstmt.setString(7, users.getGender());

		rn = pstmt.executeUpdate();

	} catch (Exception e) {
		e.printStackTrace();
	} finally {
		try {
			conn.close(); pstmt.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	return rn;

}
profile
기술정리

0개의 댓글

관련 채용 정보