ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 회원가입 -> 로그인 -> 조회 (~ crud 진행중)
    Back end/Spring MVC 2023. 12. 6. 18:37

     

    crud 흐름을 정리 해보겠다. 그냥 학습하고 내 생각을 정리해서 적음

     

     

    1. Project 셋팅

    InteliJ , Mysql, mybatis, tomcat, jdk 18  사용 했음.  


    2. 회원가입 (controller -> (DTO) -> Service -> Repository  연결 )

    - JSP -> Action,Method 값 설정 -> Controller에 보냄 -> url연결 :GetMapping,

    - 정보 전송(method:post): PostMapping 으로 전달 
    -> memberDTO 에 데이터(HTML의 name) 값들을 생성자(getter,setter) 및 tostring 값으로 설정 
    -> Controller의 POST 쪽에 데이터를 받아올@modelAttribute(MemberDTO , 매개변수) 값을 넣어줌 
    -> Controller에서  Service 값을 받아오기위해 class아래에 의존성 주입 코드 입력  ->  Service 쪽에도 Repository 연결을 위해 의존성 주입 
    -> Post 쪽에 int saveResult = memberService.save(memberDTO); 이런 식으로 Service.save 안에 Dto를 넣어줌 
    -> Service쪽에 save를 오버라이딩 으로 연결 -> Repository에도 service에 있는 .Save값을 연결 한다. 

    memberDTO 객체 생성

     

    * 주의!

    name 값은 위의 DTO 값들과 이름이 똑같아야함
    Controller에서 PostMapping // MemberDTO 객체를 사용하기위해 @modelAttribute로 넘겨줌.
    service: 1. 의존성 주입을 위한 어노테이션 / 2. Repository에 의존성 주입(final을 꼭 써줘야함) / 3. 생성자를 Repositroy에 전달

     

    repository : 1. sql에 의존성 주입 / 2. sql.insert 기능을 통해 데이터 입력기능 사용

     

     

    -  근데 DTO 경로를 풀네임으로 적어도 되지만 mybatis-config.xml 에서 지원해주는 별칭(alias)을 사용하여 경로를 별칭으로 지정해줌. 즉 parameterType에 member를 입력함

    MemberDTO의 경로를 alias에 member라는 별칭으로 관리를 해줌

     


      마지막으로  localhost 입력 폼에 들어가  데이터를 입력하고 데이터가 잘 들어가는지 확인한다.

     

    3. DB 연결 (mysql) 및 DB insert   

     

    -  DB연결

    - mysql에 아이디 생성 및 비밀번호 생성 완료 

     

    - DB명,아이디,비밀번호를 root-context.xml에 설정

    형식에 맞게 적어주기
    mybatisconfig.xml에 memberDTO객체의 별칭(alias)를 붙여줌

     

    4. 회원가입(insert) 후 로그인 

    => login 폼 작성 

    => memberController url 작성  후 DTO 및 HttpSession 기능을 활용 

    => 로그인 성공하면 main 페이지로 실패하면 login 페이지 이동

     

    => 그대로 service에서 MemberDTO 객체를 이용하여 로그인 성공/실패 여부 작성 

     

     

    => repository와 sqlmapper를 통해 DB를 가져온다. 

     

    => memberEmail 그리고  memberPassword가 있으면 가져옴 

    => select문은 항상 resultType이 존재  

    main보면 session기능을 통해 가져온 loginEmail 값을 가져옴

     

    5. 회원 목록 출력하기 

    =>  조회기능은 "/" 으로 가져옴. 

    => 데이터를 가져오기 때문에 modelAttribute 가 아닌 Model 객체를 사용 한다.

     

    tip!

    @ModelAttribute는 메서드나 메서드 매개변수에 사용되어 모델에 속성을 추가하고, 
    < - >
    model은 메서드 매개변수로 사용되어 뷰로 데이터를 전달하는 데에 활용됩니다.

     

    => service 로 전달 

     

    => repositroy 전달 : 전체 데이터를 끌어오기 때문에 매개변수는 설정 안해도됨. 

     

    => mapper에 전체 조회값 작성

     

    jstl foreach문을 이용하여 회원 목록 출력

     

    5. 회원 정보 조회 

    - 회원정보 조회는 @GetMapping으로 가져온다.  

    -  @RequestParam을 통해 id값을 가져오고 Model을 이용하여 데이터를 view에 전달

     

    tip! : RequestParam을 쓰는 이유는  http://example.com/someEndpoint?id=123  처럼 id값 뒤에 조회하고 싶은 id값을 가져오기 위해

     

     

    =>  객체 MemberDTO를 이용하여 service에 id값을 전달 해줌

    =>  전달해준 값을 member로 받고 detail.jsp 에 return 해준다.

    6. 회원 리스트 삭제 

     

     

    =>  script를 이용하여 id값을 넘겨줌 

     

    => ReqeustParam을 이용하여 id값을 service로 넘겨줌 

     

     

    =>  reopository

     

    => sql mapper로 넘겨줌

     

     

    7. 회원 정보 수정하기

    update 경로

    => 수정은 우선 데이터 값을 가져온뒤 수정 처리 값을 준다.

    service
    repository
    sqlmapper

     

    7 Ajax 사용 

     

     

     

    코딩 레시피 참고! 

    https://www.youtube.com/watch?v=tWgBlpgk0ls&list=PLV9zd3otBRt7HQxBTdpJ_85UEvKJl2mJ0

    'Back end > Spring MVC' 카테고리의 다른 글

    HttpSession 이란?  (0) 2023.11.30
    스프링 프레임워크를 이해하기 위한 요소들  (0) 2023.11.24
    web.xml  (0) 2023.11.12
    서블릿 객체 생명 주기?  (0) 2023.11.12
    톰캣?  (0) 2023.11.12
Designed by Tistory.