JPA(Java Persistent API): ORM을 사용하기 위해 인터페이스를 모아둔 것. 자바 ORM 기술에 대한 API 표준 명세를 의미함.
=>장점: 데이터를 객체지향적으로 관리 > 비즈니스 로직 -> 객체지향 개발
> 전체 프로그램 구조를 일관되게 유지
=>장점2: SQL을 자동 생성하므로 유지보수가 쉽다. 테이블 변경 시에는 JPA의 Entity만 수정하면 된다
=>장점3: DBMS에 대한 코드 종속성이 줄어든다. DB가 변경되어도 JPA가 DB에 맞는 쿼리를 생성한다
Hibernate란? JPA 인터페이스의 실제 구현부를 담당하며 HQL이라는 쿼리언어를 포함한다.
=>장점: SQL을 직접 사용하지 않고 메소드 호출만으로 쿼리가 수행됨.
=>장점2: 비즈니스 로직에 집중 가능
JDBC(Java DataBase Connectivity)란? DB에 연결 및 작업을 하기 위한 자바 표준 인터페이스로 DB에 접근해서 CRUD를 쉽고 효율적이게 하고 고성능의 메서드를 제공해 보다 쉬운 프로그래밍을 할 수 있게 함.
DAO/DTO/VO
DAO(Data Access Object): DB의 데이터에 접근하기 위한 객체
ð Service와 DB를 연결함.
ð Repository package
DTO(Data Transfer Object): 로직을 가지지 않은 순수한 데이터 객체
ð Getter/setter메서드만 가진 클래스
ð DB에서 데이터를 얻어 Service나 Controller으로 보낼 때 사용
ð 즉 Entity를 DTO형태로 변환하여 사용함
@Entity: 테이블 클래스 정의
@Table(name=”테이블명”): VO 클래스명과 다르게 테이블명을 생성하고 싶을 때
@Id: pk 지정
@Column(name=”컬럼명”, nullable=true/false)
@Transient : 테이블 컬럼에서 제외
@PrePersist: insert문 실행전 실행되는 메서드 지정
조인
@ManyToOne
@OneToOne
@OneToMany
@ManyToMany
@JoinColumn(nullable=false)
@OnDelete(action=OnDeleteAction.CASCADE)
/product/getjson?num=1