ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
Designed by Tistory.