본문 바로가기

Spring실습

안드로이드 스튜디오와 스프링부트를 연동해서 마리아DB에 저장하기

반응형

드디어 오류를 고쳤다.

그래서 그동안 쌓아 놓은 예제들을 하나씩 풀 생각이다.

 

내가 우선 구현한 것은 안드로이드에서 회원가입을 하면 DB에 개인정보가 저장되는 것을 구현했다.

 

하지만 category가 spring실습인 만큼 spring part 위주로 설명하겠다.

 

해당 화면은 android studio의 emulator 캡처본으로 edit_text 부분에 개인정보를 입력하면 db로 정보가 저장된다.

 

android에서는 UserAPI.kt를 호출하여 구현한다.

@POST("user/join") //client ->db
suspend fun saveJoinUser(@Body userModel: UserModel): Response<Void>

 

이제부터는 본격적으로 spring part에 들어가겠다. (interface code는 생략하겠다.)

1. UserDTO.java

@NoArgsConstructor
@AllArgsConstructor
@Builder
@Getter
@Setter
public class UserDTO {

    @NotNull
    private String userId;
    private String userPassword;
    private String userName;
    @Email
    private String userEmail;

    private int userAge;


    public User toEntity(){
        return User.builder()
                .userId(userId)
                .userPassword(userPassword)
                .userName(userName)
                .userEmail(userEmail)
                .userAge(userAge)
                .build();
    }


}

2. UserController.java

@PostMapping(value = "user/join")
public ResponseEntity<UserDTO> makeUser(@Valid @RequestBody UserDTO userDTO){
    String userId = userDTO.getUserId();
    String userPassword = userDTO.getUserPassword();
    String userName = userDTO.getUserName();
    String userEmail = userDTO.getUserEmail();
    int userAge = userDTO.getUserAge();

    UserDTO response = userService.saveUser(userId, userPassword, userName, userEmail, userAge);

    return ResponseEntity.status(HttpStatus.OK).body(response);

}

controller의 경우 dto를 vo로 사용한다. 

 

3. UserServiceImpl.java

@Override
public UserDTO saveUser(String userId, String userPassword, String userName, String userEmail, int userAge){
    User user = userDataHandler.saveUserEntity(userId,userPassword,userName,userEmail,userAge);
    UserDTO userDTO = new UserDTO(user.getUserId(), user.getUserPassword(), user.getUserName(), user.getUserEmail(), user.getUserAge());
    return userDTO;
}

service부터는 entity를 vo로 사용하므로 dto 에서 entity로 전환과정이 필요다.

 

 

4. UserDataHandler.java

@Override
public User saveUserEntity(String userId, String userPassword, String userName, String userEmail, int userAge){
    User user = new User(userId, userPassword, userName, userEmail, userAge);
    return userDAO.saveUser(user);
}

 

5. UserDAOImpl.java

@Override
public User saveUser(User user){
    User user1 = userRepository.save(user);
    return user1;
}

해당 과정을 모두 소화하게 되면 

 

이렇게 maria db를 시각적으로 보여주는 HeidiSQL에서 확인이 가능하다.

 

다음번에는 안드로이드에서 전체 DB를 읽어오는 방법을 소개하겠습니당.

반응형