이번 게시물에서는 저번 게시물이었던 모든 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를 이용해 값을 찾아낼 수 있다.
'Spring실습' 카테고리의 다른 글
안드로이드스튜디오와 스프링부트에서 @DeleteMapping, @DELETE 사용하기 (0) | 2023.05.23 |
---|---|
안드로이드스튜디오와 스프링부트의 @PUT, @PutMapping (0) | 2023.05.22 |
안드로이드 스튜디오와 스프링부트를 이용해서 마리아DB에서 모든 DB 읽기 (0) | 2023.05.17 |
안드로이드 스튜디오와 스프링부트를 연동해서 마리아DB에 저장하기 (0) | 2023.05.16 |
스프링으로 모바일 앱 서버 만들기[User] 1. Project 구성하기 (0) | 2023.04.28 |