회원가입하기

이태규·2022년 2월 28일
0

spring

목록 보기
4/64
  1. entity 파일 만들기
@Getter
@Setter
@NoArgsConstructor
@ToString

@Document(collection = "member3")
public class Member {

    @Id
    // _id로 만들거다
    private String id = null;

    // @Field(name = "password")
    private String pw = null;
   

    private String pw1 = null;
    private String name = null;
    private int age = 0;

    // 엔티티가 db와 연동됨
    // 변수가 곧 db에 들어갈 데이터
}

@Document는 db의 컬렉션과 연결하겠다는 의미를 담고 있다.
application.properties에서 db에 접속하고 ,
entity에서 collection과 연결한다.

@ID는 db컬렉션 안에 _id 컬럼으로 들어감을 의미한다.

Field는 변수 명과 db에 들어갈 컬럼명과 다를 경우에 Field를 쓴다.
Field가 없을 경우에는 변수 명이 곧 컬럼 명이 된다.

  1. JSP파일에서 form 작업하기
<form th:action="@{/member/insert}" method="post">
            <!-- 아이디 -->
            <div class="mb-3">
              <label for="exampleInputEmail1" class="form-label">아이디</label>
              <input  class="form-control" id="exampleInputEmail1" name="id">
            </div>
            <!-- 암호 -->
            <div class="mb-3">
              <label for="exampleInputPassword1" class="form-label">암호</label>
              <input type="password" class="form-control" name="pw">
            </div>

다음과 같이 form method에 post를 입력하고
db와 연동될 태그에 name으로 연결해 준다.

name의 데이터명을 명명하는 방법은
1. 임의로 하거나
2. entity의 변수명과 일치시키는 방법이 있는데
2번의 방법을 사용하는 것이 @ModelAttribute을 통해 편리하게 db에 데이터를 넣을 수 있다.

  1. MemberController.java에서 처리하기
@PostMapping(value = { "/insert" })
    public String isnertPOST(
    		@RequestParam(name = "id") String id,
            @RequestParam(name = "pw") String pw,
            @RequestParam(name = "pw1") String pw1,
            @RequestParam(name = "name") String name,
            @RequestParam(name = "age") int age) {
        
       	
        // DB에 추가하기
        // 클래스명 aaa = new 생성자();
        Member mem = new Member();
        mem.setId(id);
        mem.setName(name);
        System.out.println(mem.toString());

        return "redirect:/member/insert";
        

params로 값들을 받는다. 그리고 생성자를 호출해 데이터 값을 넣어준다.
데이터가 적으면 이와 같은 방법을 사용할 수 있지만, 데이터가 많아지면 어려워짐

@ModelAttribute 사용하기

@PostMapping(value = { "/insert" })
    public String isnertPOST(
            @ModelAttribute Member mem) {
       
        System.out.println(mem.toString());

        return "redirect:/member/insert";
       
    }

텍스트entity안에 변수 이름과 jsp의 form 안에 name과 연결된 명이 같을 경우만 쓸 수 있다

params로 name으로 받고, 클래스를 호출해서 값을 다시 set으로 집어 넣는 걸
한 번에 처리할 수 있다.

profile
한 걸음씩 나아가자

0개의 댓글