JPA와 MyBatis의 차이점

임형종·2024년 1월 29일
1

스프링부트

목록 보기
21/28


JPA

  • 객체와 관계형 데이터베이스 간의 매핑을 제공하며 JPQL을 사용해서 데이터베이스와 상호작용
  • 더 간단하고 간결한 API를 제공해서 개발자 생산성을 높일 수 있고 오류를 줄일 수 있습니다.
  • 다른 애플리케이션과 호환성이 좋고 유연성과 확장성이 필요한 프로젝트에 더 알맞습니다.
  • xml를 선정 안해도 됨
  1. Repository는 반드시 JpaRepository Interface 상속 받아야함
  2. JpaRepository<T, ID>
  3. T : Table과 연결된 Entity
  4. ID : Entity 내 PK(ID)의 자료형
  5. JPA : NO SQL,개발의 편리함을 위해 sql문을 쓰지 않겠다.
    - JpaRepository안에서 기본 CRUD 메소드가 정의가 되어있음
    - hibernate 구현체가 테이블과, ID에 맞춰서 자동으로 구현

6.application에 설정해주기

7.DTO에 SQL를 합쳐서 간편하게 사용 가능

https://velog.io/@ap3878/JPA%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0

MyBatis

  • 개발자가 SQL 쿼리를 직접 작성해 사용하며, 데이터 매핑을 위해 XML 또는 어노테이션을 사용
  1. @Query 어노테이션을 이용해서 직접 SQL문을 작성하는 방법
  2. 복잡한 쿼리문 작성하기 힘듦(자바로 작성을하니까 스페이스바를 할수없음)
  3. 복잡한것을 만들면 JPA단일보단 MyBatis를 겸용하는 경우가 많음

4.DTO도 설정하고 SQL도 설정을 해줘야 한다.

  • DTO
  • SQL
  • xml

예시1)

예시2)

profile
제로부터시작하는개발생활

0개의 댓글

관련 채용 정보