본문 바로가기

Spring실습

안드로이드 스튜디오와 스프링부트에서 마리아DB의 특정 DB값 읽기(findByUserId())

반응형

이번 게시물에서는 저번 게시물이었던 모든 db값 읽어오기에 이어서
https://pinlib.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4%EC%99%80-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%B4%EC%84%9C-%EB%A7%88%EB%A6%AC%EC%95%84DB%EC%97%90%EC%84%9C-%EB%AA%A8%EB%93%A0-DB-%EC%9D%BD%EA%B8%B0

 

안드로이드 스튜디오와 스프링부트를 이용해서 마리아DB에서 모든 DB 읽기

지금 side project에서 analog input pin 공간이 부족한 이슈로 멘탈이 살짝 나가있다. 그래도 오늘의 할 일을 마무리하고자 한다. 오늘의 정확한 주제는 저번 시간에 진행했던 것에 이어서 https://pinlib.ti

pinlib.tistory.com

findById()를 이용하여 특정 db값을 읽어 보겠다.

 

android part의 경우 전과 같이 간단하게 UserAPI.kt만 소개하겠다.

 

@GET("request")
fun adminUserSearch(@Query("userId") userId:String):Call<List<UserModel>>

@GET("variable/{userId}")
fun adminUserSearch(@Path("userId") userId: String):Call<List<UserModel>>

둘 중에 원하는 호출 방식을 사용하면 된다. 

 

지금부터는 spring boot code를 소개하겠다. (전과 같이 interface part는 생략하겠다.)

 

1. UserController.java

@GetMapping("request")
public List<UserDTO> adminSearchUser(@RequestParam String userId){
    return userService.adminSearchUser(userId);
}

@GetMapping("variable/{userId}")
public List<UserDTO> adminSearchUser2(@PathVariable String userId){
    return userService.adminSearchUser(userId);
}

안드로이드 스튜디오의 UserAPI.kt에서 선택한 코드에 맞춰서 사용하면 된다.

 

@RequestParam

- GET 형식의 요청에서 쿼리 문자열을 전달하기 위해 사용되는 방법

 

@PathVariable

- GET 형식의 요청에서 파라미터를 전달하기 위해 url에 값을 담아 요청하는 방법

 

 

2. UserServiceImpl.java

@Override
public List<UserDTO> adminSearchUser(String userId){
    List<User> entities = userDataHandler.adminSearchUserEntity(userId);
    //List<User> entities = userRepository.findByUserId(userId);
    List<UserDTO> dtos = new ArrayList<>();

    for(User entity : entities){
        UserDTO userDTO = new UserDTO();
        userDTO.setUserId(entity.getUserId());
        userDTO.setUserPassword(entity.getUserPassword());
        userDTO.setUserName(entity.getUserName());
        userDTO.setUserEmail(entity.getUserEmail());
        userDTO.setUserAge(entity.getUserAge());
        dtos.add(userDTO);
    }
    return dtos;

    //return ; //findBy컬럼Containing을 사용함으로써 해당 키워드가 포함된 글을 검색할 수 있다.
}

 

3. UserDataHandlerImpl.java

public List<User> adminSearchUserEntity(String userId){
    return userDAO.adminUserSearchResult(userId);
}

 

4. UserDAOImpl.java

public List<User> adminUserSearchResult(String userId){
    List<User> user = userRepository.findByUserId(userId);
    return user;
}

 

5. UserRepository.java

public interface UserRepository extends JpaRepository<User, String> {
    List<User> findByUserId(String userId);
}

저번 글과 다르게 추가된 code이다.

 

여기서 point는 findByUserId인데

by뒤에 원하는 entity값을 넣으면 해당 entity를 이용해 값을 찾아낼 수 있다.

 

 

 

반응형