JPA & JDBC

yoneeki·2022년 12월 8일
0

JDBC

  • JDBC를 사용하면 DBConnection 클래스에 일일이 코드를 적어서 그 클래스를 인스턴스로 만들어 쓸 때마다 객체를 수동으로 close해야 한다.
  • 메서드를 만들 때도 String query = "INSERT INTO ... (?, ?... " 같은 문장을 일일이 적어야 한다.
  • SQL문, Connection 객체 관리, PreparedStatement, ResultSet 객체를 통한 조건, 결과값 전달 및 반환
  • 즉 자바 어플리케이션과 DB를 jdbc api가 매개해주는 것이다.

JPA

  • 자바 어플리케이션과 DB를 JPA가 매개하는 것은 맞는데, SQL 구조를 신경쓰지 않고 평소에 프로그래밍하는 방식으로 SQL 데이터에 접근할 수 있게 한다.
  • SQL 문을 직접 자바 어플리케이션 내에서 적을 경우가 적어진다.
    DAO 클래스 내에서
@Autowired
ShopRepository shopRepository;
  • SQL 구조를 자바 어플리케이션 내에서 적용하지 않아도 된다.
    Order 테이블이 Foreign Key로 Member 테이블의 Member Id를 참조하는 경우
@Entity
@Table(name = "ORDERS")
public class Order {
	@Id
    @GeneratedValue
    @Column(name = "ORDER_ID")
    private Long id;
    
    @Column(name = "MEMBER_ID")
    private Long memberId;
}
@Entity
@Table(name = "ORDERS")
public class Order { 
	@Id @GeneratedValue
    @Column(name = "ORDER_ID")
    private Long id;
    
    @ManyToOne
    @JoinColumn(name = "MEMBER_ID")
    private Member member // 주문 회원
}

JPA 단점

  • 매핑 설계를 잘못했을 때 성능 저하가 발생할 수 있다.
  • JPA를 제대로 사용하려면 알아야할 것이 많아서 학습하는데 시간이 오래 걸린다.
  • 다수의 테이블 조인시 신경써야 할게 많다.

느낀 점

  • 김영한 개발자 님이 저술하신 자바 ORM 표준 JPA 프로그래밍을 읽어보자.
profile
Working Abroad ...

0개의 댓글

관련 채용 정보