everyday com-eat
카테고리
작성일
2022. 2. 22. 17:28
작성자
갱수터
728x90

이전글

2022.02.22 - [Framework/Spring] - (Springboot) Mybatis로 회원 목록 출력하기

다음글

2022.03.02 - [Framework/Spring] - (Springboot) Mybatis 회원 등급 목록 조회

2022.03.02 - [Framework/Spring] - (Springboot) Mybatis 회원가입 ID중복검사(ajax), 유효성 검사

 

 

1. 회원가입 폼 페이지 만들기

member/addMember.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" 
	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
	layout:decorate="~{layout/default}">
	<!-- 사용자 정의 title -->
	<th:block layout:fragment="customTitle">
		<title th:text="${title}"></title>
	</th:block>
	<th:block layout:fragment="customContents">
		<form th:action="@{/member/addMember}" method="post" >
			<table border="1">
				<tbody>
					<tr>
						<td>회원아이디</td>
						<td>
							<input type="text" name="memberId">
						</td>
					</tr>
					<tr>
						<td>회원비밀번호</td>
						<td>
							<input type="text" name="memberPw">
						</td>
					</tr>
					<tr>
						<td>회원이름</td>
						<td>
							<input type="text" name="memberName">
						</td>
					</tr>
					<tr>
						<td>회원권한</td>
						<td>
							<select name="memberLevel" style="width:100%;">
								<option value="1">관리자</option>
								<option value="2">판매자</option>
								<option value="3">구매자</option>
								<option value="4">회원</option>
							</select>
						</td>
					</tr>
					<tr>
						<td>회원이메일</td>
						<td>
							<input type="text" name="memberEmail">
						</td>
					</tr>
					<tr>
						<td>회원주소</td>
						<td>
							<input type="text" name="memberAddr">
						</td>
					</tr>
				</tbody>
				<tfoot>
					<tr>
						<td colspan="2">
							<button type="submit">회원가입</button>
						</td>
					</tr>
				</tfoot>
			</table>
		</form>
	</th:block>
</html>

 

2. hearder 메뉴 경로 수정

<a th:href="@{/member/addMember}">01회원가입</a>

 

3. Mapper 인터페이스 추상메서드 생성

@Mapper
public interface MemberMapper {

	//회원 가입 
	public int addMember(Member member);
}

 

4. MemberMapper.xml 파일 설정

(sql문 삽입)

<insert id="addMember" parameterType="Member">
		/* 회원가입 */
		INSERT INTO tb_member
		(	  m_id
			, m_pw
			, m_name
			, m_level
			, m_email
			, m_addr
			, m_reg_date
		)VALUES (
			  #{memberId}
			, #{memberPw}
			, #{memberName}
			, #{memberLevel}
			, #{memberEmail}
			, #{memberAddr}
			, CURDATE()
		);
</insert>

 

5. MemberService 클래스에 메서드 추가

public int addMember(Member member) {
	int result = memberMapper.addMember(member);
	return result;
}


/* insert , update는 리턴타입이 int이므로 리턴받지 않고 실행만 할 수 있음*/
public void addMember(Member member){
	memberMapper.addMember(member);
}

 

6. MemberController 설정

/**
 * 회원가입 폼 
 */
@GetMapping("/addMember")
public String addMember(Model model) {
	
	model.addAttribute("title", "회원가입");
	
	return "member/addMember";
}

/**
 * 	//addMember method 방식이 다르기 때문에 주소를 중복해서 사용가능(get과 post)
 * @param member(회원가입 폼 전송시 요소의 name과 dto의 멤버변수의 이름과 같으면 자동으로 바인딩하는 객체)
 * 			ㄴ 커멘드 객체
 * @return redirect: -> request.sendRedirect("") 와 같은 의미
 */
@PostMapping("/addMember")
public String addMember(Member member) {
	log.info("회원가입폼에서 입력받은 데이터: {}", member);
	memberService.addMember(member);
	
	return "redirect:/member/memberList";
}

 

 

 

7. 결과확인

로그 확인

17:16:59.073 [http-nio-80-exec-5] INFO k.m.controller.MemberController - 회원가입폼에서 입력받은 데이터: Member [memberId=id016, memberPw=pw016, memberName=홍16, memberLevel=3, memberEmail=홍16@test.com, memberAddr=전주시 덕진구, memberRegDate=null] 

 

리다이렉트로 회원목록으로 이동했을 때 새로 가입한 회원이 추가되어 있어야함