데이터베이스 방언(dialect)

2024. 9. 21. 16:31·Spring
728x90

JPA는 특정 DB에 종속적이지 않은 기술이다. 따라서 DB의 교체가 손쉽게 이루어진다.

그런데 DB마다 제공하는 SQL 문법과 함수가 조금씩 다른 문제가 있다.

1. 데이터 타입

가변 문자타입으로 MySQL은 VARCHAR, 오라클은 VARCHAR2를 사용

2. 다른 함수명

문자열 자르는 함수로 SQL표준은 SUBSTRING()을 사용하지만, 오라클은 SUBSTR()을 사용

3. 페이징 처리

MySQL은 LIMIT을 사용하지만 오라클은 ROWNUM을 사용

 

이런 SQL 표준을 지키지 않거나, 특정 DB에만 고유한 기능을 JPA에서는 방언(dialect)이라고 한다.

이 문제를 해결하기 위해서 다양한 DB 방언 클래스를 제공한다.

특정 DB에 의존적인 SQL은 DB 방언이 처리해준다.

따라서 DB가 변경되어도 방언 클래스만 바꿔주면 애플리케이션 코드를 변경할 필요 없이 문제를 해결 할 수 있다.

 

하이버네이트에서 제공하는 Dialect의 종류

H2 : org.hibernate.dialect.H2Dialect

오라클 10g : org.hibernate.dialect.Oracle10gDialect

MySQL : org.hibernate.dialect.MySQL5InnoDBDialect

728x90

'Spring' 카테고리의 다른 글

영속성 관리  (1) 2024.09.22
JPA Application 개발  (0) 2024.09.21
JPA란 무엇인가?  (0) 2024.09.21
JPA를 왜 쓰는가?  (1) 2024.09.21
오늘부터 JPA  (0) 2024.09.21
'Spring' 카테고리의 다른 글
  • 영속성 관리
  • JPA Application 개발
  • JPA란 무엇인가?
  • JPA를 왜 쓰는가?
potatoo
potatoo
개발하는 감자
  • potatoo
    감자의 개발일지
    potatoo
  • 전체
    오늘
    어제
    • 분류 전체보기 (198) N
      • 노예 일지 (7)
        • 스타트업 노예일지 (3)
      • CS 이론 (81)
        • 학과 수업 (4)
        • 알고리즘 (64)
        • 시스템 프로그래밍 (3)
        • 데이터 통신 (1)
        • 운영체제 (2)
        • 데이터베이스 (1)
      • project (3)
      • 나는 감자다. (4)
      • Spring (27)
      • 모각코 (45)
        • 절개와지조(모각코) (7)
        • 어쩌다보니 박준태가 조장이조 (11)
        • 어쩌다보니 박준태가 또 조장이조 (12)
      • LikeLion🦁 (20)
      • 캘리포니아 감자 (4)
      • OpenSource Contribute (1)
      • 우아한테크감자 (0)
        • 프리코스 회고록 (6) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    BFS
    회고록
    Spring
    DFS
    오블완
    백준
    감자
    JPA
    뛰슈
    프리코스
    나는 감자
    8기
    절개와지조
    그래프 순회
    자바
    어렵다
    모각코
    티스토리챌린지
    누적합
    타임리프
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
potatoo
데이터베이스 방언(dialect)
상단으로

티스토리툴바