■ JPQL 이란?

 

JPQL에 대해 설명하기 전에 JPA는 기본적인 SQL을 처리해주기 때문에 SQL문을 직접 사용할 필요가 없었다. 하지만 JPA는 하나의 테이블을 대상으로 했을때만 가능한 이야기이며, 특정 데이터를 가져올 경우가 필요할 때는 불필요하게 모든 데이터를 가져오게 되는 낭비가 있다. 이러한 점을 해결하기 위해 JPQL (Java Persistence Query Language) 라는 쿼리 언어를 사용한다. SQL은 데이터베이스 테이블을 대상으로 쿼리가 작성 되지만, JPQL은 엔티티 객체를 대상으로 쿼리가 작성된다. 

ex) 

List members = em.createQuery("select m from Member m", Member.class).getResultList();

 

■ QueryDSL 이란?

 

JPQL의 빌더 역할을 하는 오픈소스이다. 

ex)

QMember qMember = QMember.member;

        Member member = queryFactory.select(qMember)
                .from(qMember)
                .orderBy(qMember.id.asc())
                .fetchFirst();

 

 

출처) https://cornswrold.tistory.com/332

'develop > JPA, Hibernate' 카테고리의 다른 글

엔티티 매니저 등록/수정/삭제/조회 정리  (0) 2019.11.24
엔티티 매니저 설정, 생성과정  (0) 2019.11.24
데이터베이스 방언  (0) 2019.10.19
Hibernate 란?  (0) 2019.09.30
JPA, ORM이란 무엇인가?  (0) 2019.09.30

■ Hibernate 란?

 

ORM 프레임 워크중 하나이다. 과거와 다르게 자바 엔터프라이즈(J2EE) 애플리케이션 서버가 없어도 별도로 동작한다.

 

Hibernate concept

 

Hibernate 뿐만 아니라, 모든 ORM의 컨셉은 객체와 persistence계층 간(데이터베이스 테이블)에 맵핑을 하는 것이다.

객체  관계에는 연관(assosiation), 집합(aggregation), 의존(dependency) 관계가 존재하며, 데이터베이스에는 primary key  foreign key 관계로 표현된다. ORM은 이 관계의 맵핑을 바탕으로, 객체에 대한 조작만으로, 구체적인 persistence(데이터베이스, 파일시스템, 네트웍 등) 계층에 대해 알지 못해도 데이터들을 다룰수 있게하는 것이다.

, ORM의 일종인 Hibernate  자바객체를 통해 데이터베이스가 Oracle, MySql, MSSQL 등 에 상관없이 다룰수 있도록 하는 추상화를 목표로 한다 이 때, 자바객체는 domain model 이 되며, 이 도메인 모델에 대한 생성, setter, getter, 삭제를 통해 데이터베이스 테이블을 변경시 킬 수 있다.

 

 

 

출처) https://m.blog.naver.com/PostView.nhn?blogId=movman&logNo=100106214299&proxyReferer=https%3A%2F%2Fwww.google.com%2F

'develop > JPA, Hibernate' 카테고리의 다른 글

엔티티 매니저 등록/수정/삭제/조회 정리  (0) 2019.11.24
엔티티 매니저 설정, 생성과정  (0) 2019.11.24
데이터베이스 방언  (0) 2019.10.19
JPQL 이란? (querydsl)  (0) 2019.10.12
JPA, ORM이란 무엇인가?  (0) 2019.09.30

■ JPA란 무엇인가

 

JAP는 자바진영의 ORM 기술 표준으로, 애플리케이션과 JDBC 사이에서 동작한다.

간단히 말하면 ORM의 표준 인터페이스 기술이다.

 

JAP의 간략한 구조

JAP를 알기 위해서는 ORM에 대해 자세히 알아야한다.

 

 

 

 

■ ORM란 무엇인가

 

ORM(Object Relational Mapping) 은 이름 그대로 객체와 관계형 데이터베이스를 매핑한다는 뜻이다. ORM 프레임워크는 객체와 테이블을 매핑해서 패러다임의 불일치 문제를 개발자 대신 해결해준다. 예를들어 ORM 프레임워크를 사용하면 객체를 데이터베이스에 저장할 때 INSERT SQL을 직접 작성하는 것이 아니라 객체를 마치 자바 컬렉션에 저장하듯이 ORM 프레임워크에 저장하면 된다. 그러면 ORM 프레임워크가 적절한 INSERT SQL을 생성해서 데이터베이스 객체에 저장해준다.

 

 

- JAP 저장의 구조  jap.persist(Member);

JAP 저장의 구조 jap.persist(Member);

 

 

- JAP 조회의 구조  jap.find(MemberId);

JAP 조회의 구조  jap.find(MemberId);

 

위에서 말하는 것처럼 ORM은 SQL을 개발자 대신 생성해서 데이터베이스에 전달해주는것 뿐만 아니라 다양한 패러다임의 불일치 까지 해결해준다. 따라서 객체 측면에서는 정교한 객체 모델링을 할 수 있고 관계형 데이터베이스는 데이터베이스에 맞도록 모델링을 하면 된다.

 

 

출처) 자바 ORM 표준 JAP 프로그래밍. 저자 : 김영한

'develop > JPA, Hibernate' 카테고리의 다른 글

엔티티 매니저 등록/수정/삭제/조회 정리  (0) 2019.11.24
엔티티 매니저 설정, 생성과정  (0) 2019.11.24
데이터베이스 방언  (0) 2019.10.19
JPQL 이란? (querydsl)  (0) 2019.10.12
Hibernate 란?  (0) 2019.09.30

+ Recent posts