JPA -1

쪼경·2021년 7월 10일
0

아직 공부중인 학생의 글입니다 참고가 안될수 있습니다ㅜㅜ


스프링을 들어간지 얼마 안되서 바로 들어간 JPA...
와 진짜 어렵다...
여기저기 좀좀따리 알아보고 그랬는데도 진짜 무슨말인지 모르겠다
며칠동안 알아보고 공부하면서 알게된것을 적어보려한다



JDBC > DAO/DTO > Mybatis 라이브러리 > JPA

mybatis 이전에 ibatis가 있었는데, spring 과의 효율성이 더 좋은것은 mybatis여서 mybatis를 많이 사용했다.

mybatis의 장단점
장점 : DAO보다는 낫닼ㅋ
단점 : 그래도 여전히 노가다.. (유지보수 차원에서)

자바를 자바답게 사용할 수 없음 (상속, 추상화, 다형성, MAP, set, .. list빼고는 다 안됨ㅠㅠ)

자바답게 못쓰는데 차라리 다른 언어를 써야지 왜 자바를 쓰나..???
개발자 : "자바가 객체 지향이라 좋단말이야!!ㅠㅠㅠ"
=> 그래서 나온게 JPA!!!



JPA?

Java Persistence API - 자바 '영속성' API
자바 진영의 ORM 기술 표준

자바와 DB패러다임의 간극을 해소하는 다리 역할인 인터페이스
-> 개발자가 직접 JDBC API를 사용하는것이 아니라 JPA에게 명령을 내려서 JDBC API를 사용해서 DB와 통신한다.

내가 DTO를 만들면 자동으로 업데이트 된다
원래는 DB가 처리 못하는 일이라 개발자가 해야하는 일인데 JPA가 자동으로 해준다 그래서 개발자들이 JAVA의 객체지향을 사용할 수 있다!!!!


자바 진영의 ORM 기술 표준인 JPA

ORM(Object Relaion Mapping)??

  • 객체는 객체대로 설계
  • 관계형 DB는 관계형 DB대로 설계
  • ORM 프레임워크가 중간에서 매핑

JPA는 인터페이스고 Hibernate, OpenJPA, EclipseLink, TopLink Essentials 라는 라이브러리가 있다.
-> 이중에 가장 많이 사용하는것이 Hibernate


JPA의 장점?

  • SQL 중심적인 개발에서 객체 중심으로 개발을 할 수 있다.
  • 반복작업 안해도 된다 - 생산성이 좋아짐
  • 유지보수가 쉽다
  • 성능은 최적화가 되어있다
  • DB(SQL) 을 몰라도 사용할 수 있따. => 하지만 공부를 안하면 안됨!!

유지보수

기존에는 필드 변경시 모든 SQL을 수정해야했음
JPA 사용하면 그럴 필요가 없다!!


JPA와 CRUD

  • 저장 : jpa.persist(객체)
  • 조회 : 객체 변수명 = jpa.find(객체Id)
  • 수정 : 객체.setName("변경할 이름")
  • 삭제 : jpa.remove(객체)
profile
[개발자] Lv.1

0개의 댓글