일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- javaservlet
- 벌크연산
- javascriptcalendar
- 페치조인
- jscalendar
- JPA
- 스프링데이터흐름
- Generic
- 엔티티직접사용
- joinfetch
- 프로젝트생성
- values()
- namedQuery
- springflow
- jQueryUI
- 제네릭
- jQuery값전송
- JPQL
- 대량쿼리
- JQuery
- Hibernate
- calendar
- 제너릭
- fullcalendar
- 페이징
- fetchjoin
- 자바서블릿
- LIST
- jQuery값전달
- paging
- Today
- Total
가자공부하러!
Hibernate(1) - ORM? Hibernate? 본문
참고 : https://docs.jboss.org/hibernate/stable/orm/userguide/html_single/Hibernate_User_Guide.html
참고 : https://www.slideshare.net/visualkhh/hibernate-start
참고 : https://www.youtube.com/watch?v=Y0tUaidXRqo
참고 : https://bcho.tistory.com/906
참고 : https://onecellboy.tistory.com/349
1. ORM? Hibernate?
1. ORM?
> Object Relation Mapping
- 애플리케이션의 클래스와 DB 테이블 사이의 매핑 정보를 기술한 메타데이터를 기반으로, 자바 애플리케이션 객체를 DB테이블에 자동으로 영속화 해주는 기술
> RDB 테이블을 객체지향적으로 사용하기 위한 기술
- 상속, 다형성, 레퍼런스, 오브젝트 등
- 객체-관계 간 모델 불일치를 해결할 수 있다.
- 자바 객체를 RDBMS의 하나의 ROW로 매핑해준다.
> 객체와 RDB 두 기둥 위에 있는 기술
- 객체지향형 설계와 RDB에 대한 이해가 깊어야 잘 활용할 수 있다.
> 사용이유 : 도메인 모델 기반의 프로그래밍을 하고싶기 때문
2. JPA?
> JavaSE, JavaEE를 위한 영속성(persistence) 관리와 ORM을 위한 표준 기술
> ORM 표준 기술
> Hibernate, OpenJPA, TopLink, TopLink Essentials 등 구현체들의 표준 인터페이스
- 까보면 온통 인터페이스 뿐
> EJB밀다가 개빈킹이라는 사람이 못쓰겠다! 하고 Hibernate 만들고 Java진영에서 개빈킹님 모셔다 만들었음
> JPA를 왜 쓰는가?
- 생산성 : 쉽고 빠른 CRUD
- 유지보수 : DB컬럼변동이 발생하면 Entity의 필드만 바꿔주면 됨
- 상속관계를 이해하고 알아서 쿼리를 만들어 처리해줌
- 연관관계, 객체 그래프 탐색 : get할 때 그 시점에 쿼리를 수행해서 값을 가져와줌
- 신뢰할 수 있는 엔티티, 계층
- 동일한 트랜잭션에서 조회한 엔티티의 동일성을 보장
- 성능 최적화 :
- 캐싱(매우 짧은 시간동안의 트랜잭션 내 캐싱)
- 버퍼링(JDBC BATCH와 유사한 기능을 transaction.begin(), commit()으로 수행)
- 지연 로딩과 즉시 로딩 - JPA옵션으로 지정할 수 있음
- 지연 로딩 : 객체가 실제로 사용되는 시점에 로딩(쿼리 수행)
- 즉시 로딩 : 객체를 가져오는 순간 JOIN SQL로 연관된 객체까지 미리 조회
> 구동 방식
- persistence.xml에서 설정정보를 읽고 Persistence클래스에서 시작해서 EntityManagerFactory클래스 생성
- Factory에서 필요할 때 마다 EntityManager객체를 찍어냄
3. Hibernate?
> Boss에서 개발한 ORM 프레임워크
> 장점
- 특정 클래스에 매핑되어야 하는 테이블에 대한 관계 정의가 되어 있는 XML 파일의 메타데이터로 객체관계 매핑을 간단하게 수행시킴
- 데이터베이스가 변경되어도 SQL 스크립트를 수정할 필요가 없다.
'공부 > Java' 카테고리의 다른 글
Hibernate(3) - JPA 영속성 컨텍스트, 플러시, 준영속 상태 (0) | 2019.11.20 |
---|---|
Hibernate(2) - JPA 기본 CRUD 연습 (0) | 2019.11.19 |
Java_17_Lombok 활용 (0) | 2019.07.26 |
Java_16_Java 프로젝트 exe파일로 변환(jsmooth) (0) | 2019.07.02 |
Java_15_이메일 전송 (0) | 2019.07.01 |