[프로젝트/JAVA] 8일차 - 회원가입 ②

    728x90
    반응형

    2021.07.21

    52번째 포스팅

     

    입사 135일차.

    View에서 클라이언트의 요청을 Controller로 전달할 준비가 끝났다.

    이제 Controller > Service > Repository > Mybatis.xml > DB 의 순서로 데이터를 전달해야한다.

     

     

    1. @ModelAttribute

      ① 접근지정자 반환타입 메소드명 ( @ModelAttribute 객체명 객체의 변수명 ) { ... };

      ② View에서 전달된 parameter를 적을 때 작성하는 어노테이션. ( Model을 파라미터로 받음 )

      ③ Controller 작성 포스팅(링크)

     

    [프로젝트/JAVA] 7일차 - form태그를 활용한 INSERT - 2

    2021.06.28 44번째 포스팅 입사 112일 차. View에서 Controller로 input에 입력한 값을 전달할 준비가 되었다. 이제 View에서 전달된 parameter를 Controller에서 어떻게 받는지 확인해보자. 아래에 작성하는 내용.

    limreus.tistory.com

     

     

    2. Controller 메소드 작성하기

      ① 사용할 URI를 작성해서 Mapping 해준다.

      ② View에서 전달되는 Model을 parameter로 작성해준다.

      ③ View에서 전달되는 name과 parameter로 작성한 Model의 field명이 일치하면 Model의 인스턴스가 생성된다.

    1
    2
    3
    4
    5
    6
    7
    8
    public class RegisterCtr {
     
        @PostMapping("/register.do")
        public String setUserName( @ModelAttribute RegisterVO rvo ) {
        
            return "연결하고 싶은 View의 경로";
        }
    }
    cs

     

     

    3. Service, Repository 메소드 작성하기

      ① 자세한 작성법은 아래의 링크에서 참고할 수 있습니다.

     

    [프로젝트/JAVA] 6일차 - Service, Repository(DAO)

    2021.06.20 41번째 포스팅 입사 104일 차. 이제 모든 준비가 끝났다. View에서 사용자의 요청을 받아 DB의 데이터에 변형을 주는 작업만이 남아있다. 오늘은 Service, Repository를 만들어서 DB와 Spring을 연결

    limreus.tistory.com

     

      ② Service에 작성한 메소드를 Controller에서 연결시켜준다.

      ③ System.out.println() 메소드나 log를 이용해서 값이 제대로 전달되는지 확인한다.

    1
    2
    3
    4
    5
    @Mapper
    public class RegisterMapper {
     
        public void setRegisterOne( RegisterVO rvo );
    }
    cs
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @Service
    public
     class RegisterSrvImpl {
     
        @Autowired
        RegisterMapper registerMapper;
     
        public void setRegisterOne( RegisterVO rvo ) {
            return registerMapper.setRegisterOne( rvo );
        }
    }
    cs
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    @Controller
    public
     class RegisterCtr {
     
        @Autowired
        RegisterSrv registerSrv;
     
        @PostMapping("/register.do")
        public String setRegisterOne( @ModelAttribute RegisterVO rvo ) {
     
            // 1. View에서 parameter가 정상적으로 전달되었는지 확인    
            System.out.println(">>> 아이디 확인 : " + rvo.getUserID);
     
            // 2. Service의 메소드와 
            registerSrv.setRegisterOne(rvo);        
        
            return "연결하고 싶은 View의 경로";
        }
    }
    cs

     

     

    4. Mybatis.xml 작성하기

      ① 기본 작성법은 같다. parameterType=""에 Model의 경로를 작성해준다.

      ② VALUES() 안에 적던 property들은 Model의 field명을 써준다. ( ex_ #{ userID } )

      ③ NOW()는 DB의 현재시간을 가져온다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <insert id="setRegisterOne" parameterType="com.example.ccs.login.model.RegisterVO">
        INSERT INTO user_info (
            user_id                <!-- 아이디 -->
            , user_pw            <!-- 비밀번호 -->
            , user_name            <!-- 이름 -->
            , user_birth        <!-- 생년월일 -->
            , user_regdate        <!-- 가입일자 및 시간 -->
            , user_gender        <!-- 성별 -->
        ) VALUES (
            #{userID}
            , #{userPW}
            , #{userName}
            , #{userBirth}
            , NOW()                <!-- NOW()는 DB의 현재시간을 가져온다. -->
            , #{userGender}
        )
    </insert>
    cs

     

      ④ INSERT가 성공적으로 완료되었는지 DB에 확인해보자.

    728x90
    반응형

    댓글