-
jpa 생성 및 조회 연습spring boot 2023. 5. 10. 10:03
package com.tenco.blog.repository; import org.springframework.data.jpa.repository.JpaRepository; import com.tenco.blog.model.User; //@Repository // 여기서는 생략 가능 - 이유는 JpaRepository에서 포함되어 있어 생략 가능하다. public interface UserRepository extends JpaRepository<User, Integer> { // select, selectAll, insert, update, delete 등 }
여기서 T는 테이블 명을 말하며 ID는 PK값이 선언된 컬럼 타입을 말한다.
package com.tenco.blog.controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; import com.tenco.blog.repository.UserRepository; @RestController // Ioc 처리 public class DummyControllerTest { // DI //@Autowired private UserRepository userRepository; public DummyControllerTest(UserRepository userRepository) { this.userRepository = userRepository; } // MIME TYPE - application/json // 회원등록 - 샘플 @PostMapping("/dummy/insert-user") public String insertUser() { return ""; } }
package com.tenco.blog.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import com.tenco.blog.model.User; import com.tenco.blog.repository.UserRepository; @RestController // Ioc 처리 public class DummyControllerTest { // DI //@Autowired private UserRepository userRepository; public DummyControllerTest(UserRepository userRepository) { this.userRepository = userRepository; } // MIME TYPE - application/json // 회원등록 - 샘플 @PostMapping("/dummy/insert-user") public String insertUser(@RequestBody User user) { user.setRole("user"); userRepository.save(user); // 유효성 검사 System.out.println(user.toString()); return "회원가입에 성공"; } // localhost:8080/dummy/user/1 @GetMapping("/dummy/user/{id}") public User getUser(@PathVariable Integer id) { // optional - user 있을 수도 있고 null 일 수도 있다. // 인증검사, 유효성 검사 //Optional<User> userOp = userRepository.findById(id); // 1. //User user = userRepository.findById(id).get(); // 2. // 만약에 찾은놈이 없으면 비워진 애가 return이 되어서 나온다. // User user = userRepository.findById(id).orElseGet(()->{ // return new User(); // }); // 3. User user = userRepository.findById(id).orElseThrow(()->{ return new IllegalArgumentException("해당 유저는 없네요."); }); // 1. get() : null 일 일이 없을 때 사용 // 2. orElseGet : 데이터가 있으면 그대로 반환 없으면 직접 정의한 객체를 // 반환 시킬 수 있다. // 3. orElseThrow : 있으면 반환 없으면 예외 던진다. System.out.println(user); return user; } }
'spring boot' 카테고리의 다른 글
JPA & security (update, delete, 더티체킹) (0) 2023.05.10 JPA 페이징 사용해보기 (0) 2023.05.10 테이블 생성 및 JPA 테스트 (0) 2023.05.09 JPA 설정 (0) 2023.05.09 spring boot JPA (0) 2023.05.09