개발/술Talk

[Spring & Maria DB] 회원 정보 수정, 회원 정보 리스트 받아오기

황성안 2021. 8. 18. 15:58
728x90

[Spring & Maria DB]

회원 정보 수정, 회원 정보 리스트 받아오기

mypage 기능중 하나인정보수정과

회원 정보를 통해 같은 지역, 성별, 나이 등의 조건을 프론트엔드에서 활용하기위해 필요한 정보리스트를 보내주는 작업을 하기위해 작성하게됐습니다.

환경

  • HeidiSQL 11.3.0.6295
  • Maria DB 10.6.3
  • 스프링
  • 인텔리제이

작업 사항으로는 회원 정보 수정으로

Id, Nickname, password, ProfileImg, age 등의 정보를 백엔드단에서 프론트로 수정할수있도록 만들어 주는 것입니다.

시작전 수정은 본래 put(update)를 사용하여야하나 post를 사용하였습니다.

[ Spring ]

회원 정보 수정

Controller

    @PostMapping("/userupdate")
    public ResponseEntity<Userupdate> userupdate(@RequestBody Userupdate userupdate ){
        userService.userupdate(userupdate);
        return new ResponseEntity<>(userupdate, HttpStatus.OK);
    }

DAO

    //회원 정보 수정
    public void userupdate(Userupdate userupdate);

servie

servie

    //회원 정보 수정
    public void userupdate(Userupdate userupdate);

implement

    //회원 정보 수정
    public void userupdate(Userupdate userupdate);

vo

프론트 팀의 요청사항에 따라 id, nikname, email, address, sex, age, like, token, profileImg 를 보내 주게됐습니다.

package talk.server.vo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Userupdate {
    private String id;
    private String nickname;
    private String email;
    private String address;
    private String sex;
    private int age;
    private int likes;
    private String token;
    private String profileImg;
}

mapper

sql문

    <update id="userupdate" parameterType="talk.server.vo.Userupdate">
        UPDATE users
        SET email=#{email}, id=#{id},  nickname=#{nickname}, address=#{address}, profileImg=#{profileImg}
        WHERE ID=#{id}

    </update>

회원 정보 리스트

게시판에서 리스트 받아오기랑 유사합니다! 똑같다고 봐도 무방!

Controller

    //친구 찾기용 회원 정보 전송
    @GetMapping("/findfriends")
    public ResponseEntity<ArrayList<User>> getAllUser() {
        ArrayList<User> list = userService.getAllUser();
        if (list != null) return new ResponseEntity<>(list, HttpStatus.OK);
        else return new ResponseEntity<>(HttpStatus.NO_CONTENT);
    }

DAO

    //친구 찾기 정보 불러오기
    public ArrayList<User> getAllUser();

service

    //친구 찾을려면 정보 불러와줘야함
    public ArrayList<User> getAllUser();

implement

 @Override
    public ArrayList<User> getAllUser() { return dao.getAllUser(); }

vo

User.java 그대로 사용 해줍니다.

package talk.server.vo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.web.multipart.MultipartFile;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private String email;
    private String id;
    private String password;
    private String nickname;
    private String auth;
    private String sex;
    private String address;
    private String profileImg;
    private int age;
    private int likes;
}

mapper

    <select id="getAllUser" resultType="User">
        select * from users
    </select>

[ Postman ]

유저수정

POST : http://localhost:8080/user/userupdate

body - raw - JSON

mapper user.xml 에 있는 값을 넣어줍니다.

id 를 필두로 수정하고 싶은 값을 수정후 send 해줍니다.

이후 아래 수정된 값을 확인하면 됩니다.

{
    "email":"",
    "id":"opeerats",
    "nickname":"은지스터",
    "address":"대구 달성군"
}

유저 리스트

GET : http://localhost:8080/user/userlist

728x90