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]
리다이렉트로 회원목록으로 이동했을 때 새로 가입한 회원이 추가되어 있어야함
'Framework > SpringBoot' 카테고리의 다른 글
(Springboot) Thymeleaf 객체 바인딩, 유틸리티 객체 (0) | 2022.02.22 |
---|---|
(Springboot) Thymeleaf 이클립스 자동완성 플러그인 설치하기 (0) | 2022.02.22 |
(Springboot) 🆁 Mybatis 회원 목록 조회 (0) | 2022.02.22 |
(Springboot) log4j (0) | 2022.02.22 |
(Springboot) hello spring boot 찍기 (0) | 2022.02.08 |