2021.07.21
52번째 포스팅
입사 135일차.
View에서 클라이언트의 요청을 Controller로 전달할 준비가 끝났다.
이제 Controller > Service > Repository > Mybatis.xml > DB 의 순서로 데이터를 전달해야한다.
1. @ModelAttribute
① 접근지정자 반환타입 메소드명 ( @ModelAttribute 객체명 객체의 변수명 ) { ... };
② View에서 전달된 parameter를 적을 때 작성하는 어노테이션. ( Model을 파라미터로 받음 )
③ Controller 작성 포스팅(링크)
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 메소드 작성하기
① 자세한 작성법은 아래의 링크에서 참고할 수 있습니다.
② 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에 확인해보자.
'포트폴리오 > CCS' 카테고리의 다른 글
[프로젝트/JAVA] 8일차 - 회원가입 ① (0) | 2021.07.13 |
---|---|
[프로젝트/JAVA] 7일차 - form태그를 활용한 INSERT - 3 (0) | 2021.07.06 |
[프로젝트/JAVA] 7일차 - form태그를 활용한 INSERT - 2 (0) | 2021.06.28 |
[프로젝트/JAVA] 7일차 - form태그를 활용한 INSERT - 1 (0) | 2021.06.26 |
[프로젝트/JAVA] 6일차 - Controller, View (0) | 2021.06.25 |
댓글