

JPA란(Java Persistent Api) :
1.JDBC API를 사용하여 SQL를 호출해서 DB와 통신한다.
2.객체 중심으로 애플리케이션 개발이 가능하다.
3.대표적인 오픈소스로는 Hibernate가 있다.
4.장점 : 편리하게 빨리 개발 할 수 있다.
5.단점 : 복잡한 쿼리문을 작성하기 힘듦(join, 서브쿼리)
즉 JPA 단일 보다는 MyBatis를 겸용해서 사용하기도 함
-
1번

-
2번 : jpa의 핵심기능들이 모여있다.

-
3번

-
4번

둘 중 하나 복사를 하는데


- mysql이 5.7이니 5 혹은 5.7로 설정함(5가 더 범용성이 있음)

- 확장자는 붙이지않기(이름을 지정하는것이기 때문)

- DTO에 반듯이 Entity가 붙어있어야 한다.

- hibernate : 자바 언어를 위한 ORM 프레임워크
- ORM
1.Java 객체와 DB의 Table연결
2.Java DTO 설계만 해도 DB에 테이블이 자동으로 생성

1.DDL-auto : 서버가 시작될때 ddl코드가 어떻게 실행될지 지정,Create,Drop
2.create : 테이블이 있으면 --> drop후 --> create
- 단점 : 자동으로 만들어지고 사라지고 하니 데이터 손실의 문제가 발생
- 시스템의 속도가 지연이 될 가능성이 높다.
- 처음에는 아무 데이터가 없으니 ㄱㅊ
3.update : 테이블의 컬럼이 변경 될때만 수정사항이 반영
- create로 어느정도 기반을 만든후 upadate로 바꿈

- 실행할때만 true하고 안할때는 false로 꺼두기
- 그러나 키면 sql문이 출력은 되는데 0,1,2,3,..이런식으로 사람이 이해 못하는 형식으로 출력


- Jpa는 repository랑 같이 엮어야만 사용이 가능함
- JpaRepository<T, ID>
- T : Table과 연결된 Entity
- ID : Entity 내 PK(ID)의 자료형
- JPA : NO SQL, SQL문을 쓰지말자!
- JpaRepository안에서 기본 CRUD 메소드가 정의가 되어있음
- hibernate 구현체가 테이블과, ID에 맞춰서 자동으로 구현
https://velog.io/@ap3878/repository