YJ의 새벽

JDBC 활용 연습용7. ( 회원가입 + DB저장 ) 본문

SelfStudy/JDBC

JDBC 활용 연습용7. ( 회원가입 + DB저장 )

YJDawn 2023. 3. 30. 17:08

 

 

 

 

------- 모든것이 true 일때.  가입하기 누르면 DB 에 저장. 해보자

 

 

 

--- alert 창 띄우고 ,  다시 홈페이지로 복귀

    :    resp.sendRedirect(req.getContextPath());

 

 

-- DB저장값 확인할수있다.

 

 

 

 

 

 

 

--- signUp.js   회원가입버튼 이벤트 추가  ( ajax 로 접근 )

 

// 회원가입하기 버튼 /////////////////////////////////////////////////////
const signUpBtn = document.getElementById("signUp-btn");

signUpBtn.addEventListener("click",function(){

    if ( checkObj.memberEmail && checkObj.memberNickname && 
          checkObj.memberPw && checkObj.memberPwConfirm &&
         checkObj.memberTel && checkObj.sendEmail){

            $.ajax({
                url : "/member/signUp",
                type : "POST",
                data : { "memberEmail" : memberEmail.value,
                         "memberNickname" : memberNickname.value,
                         "memberPw" : memberPw.value,
                         "memberTel" : memberTel.value
            },
            success : function(result){
                console.log(result);
                if ( result > 0 ) {
                    alert("가입완료");                 
                }else{
                    alert("가입실패");
                }
            },
            error : function(){
                console.log("회원가입오류");
            }
            });
         }
});

 

 

--- SignUpServlet.class  (/member/signUp)  에  doPost 로 회원가입폼 받기, 추가

 

@WebServlet("/member/signUp")
public class SignUpServlet extends HttpServlet{
	
	// GET 방식 요청 시 ( a 태그는 무조건 Get) 
	// JSP 로 바로 응답할수 있도록 요청 위임.
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

		String path = "/WEB-INF/views/member/signUp.jsp";
		req.getRequestDispatcher(path).forward(req, resp);
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
		String memberEmail = req.getParameter("memberEmail");
		String memberNickname = req.getParameter("memberNickname");
		String memberPw = req.getParameter("memberPw");
		String memberTel = req.getParameter("memberTel");
		
		try {
			MemberService service = new MemberService();
			
			int result = service.ResultMemberServlet(memberEmail,memberNickname,memberPw,memberTel);
			
			resp.getWriter().print(result);
			
		}catch(Exception e) {
			e.printStackTrace();
		}
		resp.sendRedirect(req.getContextPath());    // 최상위 페이지로 복귀
	}
	
}

 

 

 

-- MemberService.class   받은 회원정보들 insert 서비스 추가

 

	/**   회원정보 DB 저장 서비스
	 * @param memberEmail
	 * @param memberNickname
	 * @param memberPw
	 * @param memberTel
	 * @return
	 */
	public int ResultMemberServlet(
    String memberEmail, String memberNickname, String memberPw, String memberTel) throws Exception{

		Connection conn = getConnection();
		
		int result = dao.ResultMemberServlet(conn,memberEmail,memberNickname,memberPw,memberTel);
		
		if( result > 0 ) commit(conn);
		else             rollback(conn);
		
		close(conn);
		
		return result;
	}
}

 

-- MemberDAO.class  받은 회원정보들 insert DAO 추가 (DB접근 )

 

	/**  회원정보 DB 저장 DAO
	 * @param conn
	 * @param memberEmail
	 * @param memberNickname
	 * @param memberPw
	 * @param memberTel
	 * @return
	 * @throws Exception
	 */
	public int ResultMemberServlet(Connection conn, String memberEmail, String memberNickname, String memberPw,
			String memberTel) throws Exception{
		int result = 0;
		
		try {
			String sql = prop.getProperty("ResultMemberServlet");
				
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, memberEmail);
			pstmt.setString(2, memberPw);
			pstmt.setString(3, memberNickname);
			pstmt.setString(4, memberTel);
			
			result = pstmt.executeUpdate();
		}finally {
			close(stmt);
		}
		return result;
	}
}

 

 

-- member-sql.xml     insert문 SQL 문 추가

	<entry key = "ResultMemberServlet" >
	INSERT INTO MEMBER ( MEMBER_NO, MEMBER_EMAIL , MEMBER_PW, MEMBER_NICK,MEMBER_TEL)
	VALUES (SEQ_MEMBER_NO.NEXTVAL ,?,?,?,?)
	</entry>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Comments