코딩공부/Java Spring

spring 회원가입 기능 만들기

integerJI 2021. 1. 10. 21:24

spring 회원가입 기능 만들기


[spring실습] 게시판 만들기 - 글 쓰기 기능 만들기 : integer-ji.tistory.com/341

[spring실습] 게시판 만들기 - 글 수정 기능 만들기 : integer-ji.tistory.com/342

[spring실습] 게시판 만들기 - 글 삭제 기능 만들기 : integer-ji.tistory.com/343

[spring실습] 게시판 만들기 - 상세(Detail) 페이지 추가 : integer-ji.tistory.com/346

[spring실습] 게시판 만들기 - 조회수 추가, Oracle 칼럼 추가, default, null 설정 : integer-ji.tistory.com/344

 

이어서 진행 됩니다.


이번엔 게시판 기능을 업그레이드하여 회원가입 기능을 만들어 보겠습니다.

 

 

Oracle Table 회원가입 테이블 생성하기

CREATE TABLE TB_MEMBER (
USER_NUM NUMBER(10,0) NOT NULL,
USER_ID VARCHAR2(40) NOT NULL,
USER_PASSWORD VARCHAR2(100) NOT NULL,
REG_DATE DATE DEFAULT SYSDATE,
PRIMARY KEY(USER_NUM, USER_ID)
);

--commit;

SELECT * FROM TB_MEMBER;

 

회원가입을 하며 필요한 정보를 저장합니다.

 

로그인할 때 필요한 ID, PASSWORD 그리고 회원가입을 한 일자를 저장합니다.

 

기본키는 회원 넘버와 ID로 설정합니다.

 

 

Tb_Member_SQL.xml 생성 및 insert 추가

<insert id="insertMember">
	<selectKey resultType="int" keyProperty="proId" order="BEFORE">
		SELECT NVL(MAX(USER_NUM),0)+1 FROM TB_MEMBER
	</selectKey>
		INSERT INTO TB_MEMBER (
			USER_NUM, 
			USER_ID, 
			USER_PASSWARD, 
			REG_DATE
		) VALUE (
			#{userNum},
			#{userId}, 
			#{userPassward}, 
			SYSDATE
		)
</insert>

 

회원가입을 하며 실행시킬 insert문을 추가하여 줍니다.

 

 

MemberVo.java 추가

package com.project.vo;

import java.util.Date;

public class MemberVO {
	private Integer userNum;
	private String userId;
	private String userPassward;
	private Date regDate;
	
	public Integer getUserNum() {
		return userNum;
	}
	public void setUserNum(Integer userNum) {
		this.userNum = userNum;
	}
	public String getUserId() {
		return userId;
	}
	public void setUserId(String userId) {
		this.userId = userId;
	}
	public String getUserPassward() {
		return userPassward;
	}
	public void setUserPassward(String userPassward) {
		this.userPassward = userPassward;
	}	
	public Date getRegDate() {
		return regDate;
	}
	public void setRegDate(Date regDate) {
		this.regDate = regDate;
	}
	
}

 

새로운 mapper을 추가하였기 때문에 VO를 추가하여 줍니다.

 

 

MemberService.java, MemberServiceImpl.java 추가

package com.project.service;

import com.project.vo.MemberVO;

public interface MemberService {

	void insertMember(MemberVO memberVO);
}

 

package com.project.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.project.service.MemberService;
import com.project.service.dao.MemberDAO;
import com.project.vo.MemberVO;

@Service("memberService")
public class MemberServiceImpl implements MemberService {
	@Autowired
	private MemberDAO membertMapper;

	@Override
	public void insertMember(MemberVO memberVO) {
		membertMapper.insertMember(memberVO);
	}
	
}

 

전체적인 흐름은 글쓰기의 CRUD기능과 같습니다.

 

회원가입도 하나의 글을 쓰는 것과 같이 Table에 저장하면 됩니다.

 

 

MemberController.java 추가

package com.project.controller;

import javax.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.project.service.MemberService;


@Controller
public class MemberController {

	private static final Logger logger = LoggerFactory.getLogger(MemberController.class);
	
	@Inject
	MemberService service;
	
	// 회원가입 get
	@RequestMapping(value = "/singup.do", method = RequestMethod.GET)
	public String singup(Model model) {
		logger.info(" ==============>>> SingUp Start !!!");
		
		return "member/singup";
	}

}

 

Controller도 생성하여 줍니다.

 

RequestMethod Get방식으로 HomeController과 같이 home 함수를 만들어 줍니다.

 

회원가입 페이지를 열기 위해 member 폴더 아래의 suinup를 열어 줍니다.

 

 

singup.jsp 추가

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!-- @@@ 매우 중요 @@@ -->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
</html>
<head>
	<h1>singup start</h1>
</head>
<body>
</body>

 

회원가입 페이지를 불러옵니다.

 

다음 게시글에서는 POST방식으로 데이터를 넘겨 테이블에 데이터를 쌓아 보겠습니다.