밀김 2023. 7. 10. 15:10
728x90

 

 

 

 

 

 

 

 

 

 

 

 

 

데이터랑 스키마 sql은 이렇게 나눈다

 

 

 

 

 

 

 

 

 

 

 

 

 

- jdbc는 통일된 api만 제공

 

 

 

 

ORM

 

 

 

- JPA : java persistence API

 

 

 

 

 

- 이렇게 하게 되면 데이터,스키마 sql 파일 지워도된다

public interface MenuRepository extends JpaRepository <Menu, Long>{

}
//api 엔티티

//그리고 엔티티에 가서는 @Entity랑 @Id 어노테이션만 붙여주면 된다
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
public class Menu {
	@Id
	   private Integer id; 
	   private String korName;
	   private String engName;
	   private Integer price; 
	   private String img; 
	   private Date regDate;
       //이런식으로...

 

 

 

- mybatis 쓸때는 mapper만들고 쿼리문 짜고 그랬는데 이제는 그럴필요 X

 

 

 

 

 

 

 

 

 

- 이과정을 해주면 자동적으로 repository 역할을 하게 된다

(확인하는 방법은 로컬호스트/h2-console 들어간다음에 커넥트하고 menu 누르면 3000원이 들어가있다)

@Component
public class DataLoader implements CommandLineRunner{

@Autowired
private MenuRepository repository;

@Override
public void run(String... args) throws Exception {
Menu menu = Menu
            .builder()	
                    .id(1L)
                    .korName("아메리카노")
                    .price(3000)
                    .regMemberId(1)
            .build();

}

 

 

 

 

하이퍼 미디어를 이용하는 어플리케이션 스테이트를 의미

 

 

 

 

 

 

- 우리는 지금까지 Repository 만들면 -> mapper에 Repository 에 만든 메서드마다 mapper에서 쿼리문을 짜줬어야 했는데 ! ORM 으로 오면서 레퍼지토리를 만들지 않아도 

이렇게 빈칸이여도됨

 

 

 

 

 

 

- 10개의 컨텐트만 뽑는 방법 (딱 10개만 나온다)

	@Override
	public List<Menu> getList() {
		
		Pageable pageable = PageRequest.of(0, 10);
		
		return repository.findAll(pageable).getContent();
	}

 

 

 

 

 

 

728x90