1. Member 도메인 작성
package com.springmvc.domain;
public class Member {
private String mem_id;
private String mem_pw;
private String mem_name;
private String mem_nickname;
private String mem_phone;
private String mem_email;
private String mem_addr;
private String mem_addr2;
//getter/setter 생략
public String toString() {
return "Member [mem_id=" + mem_id + "mem_pw=" + mem_pw + "mem_nickname=" + mem_nickname + "mem_phone=" + mem_phone + "mem_email=" + mem_email + "mem_addr=" + mem_addr + "mem_addr2" + mem_addr2 + "]";
}
public Member() {}
}
2. 폼 뷰 페이지 제작
<form:form> 태그 사용, modelAttribute는 'new_member'로 컨트롤러와 통일시킴
<form:form modelAttribute="new_member" class="form-horizontal">
<h2 class="form-title mb-4">회원가입</h2>
<div class="form-group row">
<label for="" class="col-sm-3 control-label">*아이디</label>
<div class="col-sm-3">
<form:input class="input" required="required" path="mem_id" maxlength="15" placeholder="최대 15글자"/>
</div>
</div>
<div class="form-group row">
<label for="" class="col-sm-3">*비밀번호</label>
<div class="col-sm-3">
<form:password class="input" required="required" path="mem_pw" maxlength="15" placeholder="최대 15글자"/>
</div>
</div>
<div class="form-group row">
<label for="" class="col-sm-3">*이름</label>
<div class="col-sm-3">
<form:input class="input" required="required" path="mem_name" maxlength="17"/>
</div>
</div>
<div class="form-group row">
<label for="" class="col-sm-3">닉네임</label>
<div class="col-sm-3">
<form:input class="input" path="mem_nickname" minlength="2" maxlength="10" placeholder="2~10글자"/>
</div>
</div>
<div class="form-group row">
<label for="" class="col-sm-3">전화번호</label>
<div class="col-sm-3">
<form:input class="input" maxlength="11" path="mem_phone" placeholder="'-' 없이 숫자만 입력해주세요"/>
</div>
</div>
<div class="form-group row">
<label for="" class="col-sm-3">이메일</label>
<div class="col-sm-3">
<form:input class="input" maxlength="40" path="mem_email"/>
</div>
</div>
<div class="form-group row">
<label for="" class="col-sm-3">주소</label>
<div class="col-sm-3">
<form:input class="input" maxlength="60" path="mem_addr" required="required"/>
</div>
</div>
<div class="form-group row">
<label for="" class="col-sm-3">상세주소</label>
<div class="col-sm-3">
<form:input class="input" maxlength="60" path="mem_addr2" required="required"/>
</div>
</div>
<div class="form-group row mt-4">
<div class="col-sm-offset-2 col-sm-10">
<input type="submit" value="확인" class="offset-md-8 submit-green">
</div>
</div>
</form:form>
3. Controller에 메서드 작성, 매핑
@Controller
@RequestMapping("/member")
public class MemberController {
@Autowired
private MemberService memberService;
@GetMapping("/add")
public String add_member_form(@ModelAttribute("new_member")Member member) {
System.out.println("add_member_form() 도착");
return "/member/add_member";
}
@PostMapping("/add")
public String submit_add_member(@ModelAttribute("new_member")Member member, BindingResult result, HttpServletRequest request) {
if(result.hasErrors()) {
return "/member/add_member";
}else {
System.out.println("MemberService 호출");
memberService.add_new_member(member);
}
//home으로 복귀
System.out.println("home 복귀");
return "redirect:/home";
}
}
4. service와 repository에 메서드 작성
@Service
public class MemberServiceImpl implements MemberService{
@Autowired
private MemberRepository memberRepository;
@Override
public void add_new_member(Member member) {
System.out.println("MemberService 도착");
memberRepository.add_new_member(member);
}
}
@Repository
public class MemberRepositoryImpl implements MemberRepository{
private JdbcTemplate template;
@Autowired
public void setJdbctemplate(DataSource dataSource) {
this.template = new JdbcTemplate(dataSource);
}
@Override
public void add_new_member(Member m) {
System.out.println("MemberRepository 도착");
String SQL = "INSERT INTO user_mem VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
template.update(SQL, m.getMem_id(), m.getMem_pw(), m.getMem_name(), m.getMem_nickname(), m.getMem_phone(), m.getMem_email(), m.getMem_addr(), m.getMem_addr2());
}
}
5. 데이터베이스에 테이블 작성
create table user_mem(
mem_id varchar(15) not null,
mem_pw varchar(15) not null,
mem_name varchar(17) not null,
mem_nickname varchar(10),
mem_phone varchar(11),
mem_email varchar(40),
mem_addr varchar(60) not null,
mem_addr2 varchar(60) not null
)DEFAULT CHARSET=utf8;
폼에 정보를 입력한 후 제출하고 sql 프로그램에서 테이블을 조회해서 확인한다.
'정리노트 > 팀프로젝트' 카테고리의 다른 글
[팀프로젝트] 24.02.16. 노트 (0) | 2024.02.16 |
---|---|
[스프링] 회원 탈퇴 구현 (0) | 2024.02.16 |
[팀프로젝트] 24.02.15. 노트 (0) | 2024.02.15 |
[스프링] 회원정보 불러오기(READ), 수정(UPDATE) 구현 (0) | 2024.02.15 |
[스프링] 로그인 구현 (0) | 2024.02.15 |