[Spring] 회원가입 기능 구현

BruteForceA·2022년 4월 8일
1

스프링을 공부하면서 가장 기본적인 회원가입 기능을 구현 해보았다.
jsp/servlet으로는 간단하게 구현 했는데 스프링을 아직 완전히 이해를 못해서 구조가 약간 어려웠다.



테이블 생성

create table T_Member(
	idx number not null,
	name varchar2(100) not null,
	Nick varchar2(2000) not null,
	email varchar2(20) not null,
	address varchar2(20) not null,
	indate date default sysdate,
	constraint pk_test_idx primary key(idx)
);

Oracle 에서 먼저 필요한 컬럼들을 넣고 member 테이블을 생성했다.
관리자 기능을 넣기위해서 나중에 ad_ck 컬럼을 추가해서 기본값을 0으로 삽입했다.




VO 생성

import lombok.Data;

@Data
public class MemberVO {
	private int idx;
	private String name;
	private String pw;
	private String nick;
	private String email;
	private String Address;
	private String indate;
}

lombok
Data 어노테이션을 사용해 Getter, Setter 등을 생성 시켜준다.
Data 어노테이션을 사용하지 않으면 직접 getter 또는 setter를 생성시켜준다.




Mapper.java 인터페이스 추가

import org.apache.ibatis.annotations.Insert;

public interface MemberMapper {

	@Insert("insert into t_member(idx, name, nick, email, address, indate, pw) values(TMember_seq.nextval, #{name}, #{nick}, #{email}, #{address}, sysdate, #{pw})")
	public void MemberJoin(MemberVO vo);

}

Mapper.xml을 생성하지 않고 간단하게 @Insert 어노테이션으로
회원가입시 작성한 정보들을 테이블에 삽입해준다.




MemberService, MemberServiceImple

import kr.smhrd.domain.MemberVO;

public interface MemberService {
	//회원가입
	public void Join(MemberVO vo) throws Exception;
	
}

@Service
public class MemberServiceImple implements MemberService {
	
	@Autowired
	private MemberMapper mapper;
	
	public void Join(MemberVO vo) {
		mapper.MemberJoin(vo);
		
	}

}

MemberService 인터페이스를 추가하고 인터페이스를 MemberServiceImple에 상속받아서 mapper에 접근한다. 구현체에서
@Service 어노테이션은 빼 먹지 말고 꼭 작성 해야한다.




Controller


import kr.smhrd.domain.MemberVO;
import kr.smhrd.service.MemberService;





@Controller
public class MemberController {
	@Autowired
	private MemberService MemberService;
	
	@PostMapping("/Join.do")
	public String Join(MemberVO vo) {
		
		try {
			MemberService.Join(vo);
            
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "redirect:/";
	
	}
    




jsp 파일

<form action="/TEST/Join.do" method="post">
		
	<label for="email">이메일</label> 
 <input type="email" id="email" name="email"placeholder="you@example.com">

간단하게 이메일만 적어봤다.
name값을 입력해주고 action을 controller의 회원가입과 일치시켜준다.




참고

https://kimvampa.tistory.com/89?category=771727

0개의 댓글