하이버네이트(Hidername) 란?

2022. 11. 11. 23:17· 기존(310)/🏀JpaEnvorinoment
목차
  1. Hibernate란?
  2. 설정법

Hibernate란?

하이버네이트는 자바 언어를 위한 ORM 프레임워크이고 JPA의 구현체로, JPA 인터페이스를 구현하고 내부적으로 JDBC API를 사용한다.

하이버네이트는 자바객체를 통해 데이터베이스가 Oracle, MySql, MSSQL 등 에 상관없이 다룰수 있도록 하는 추상화를 목표로 한다.

Mybatis에 익숙한 사람들이라면, Mybatis 구조가 들어가는 자리에 Hiberante가 들어오는 구조라고 이해하면 된다.

이를 통해 개발자는 SQL를 직접 사용하지 않고 메서드 호출만으로 쿼리가 수행된다, 즉 SQL을 작성하는 시간을 줄여 생산성이 높아진다. 

 

하지만 직접 SQL을 작성하는것보다는 성능상 좋지 않고 세밀하게 데이터를 조작하기 힘들다.

이를 보안하기 위해 JPQL과 NativeQuery를 지원하고 Querydsl을 함께 사용할 수 있다.

 

 

설정법

설정은 스프링 부트, gradle 기준으로 작성하였다.

 

build.gradle

dependencies {
	...
    // JPA
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    // JDBC
	implementation 'org.springframework.boot:spring-boot-starter-jdbc'
    // MySQL
	runtimeOnly 'mysql:mysql-connector-java'
    ...
}

 

 

application.yml

 

server:
  port: 8080

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/devbeekei?characterEncoding=UTF-8&serverTimezone=Asia/Seoul
    username: root
    password: password

  jpa:
    show-sql: true 
    hibernate:
      dialect: org.hibernate.dialect.MySQL5InnoDBDialect 
      ddl-auto: validate 
    properties:
      hibernate:
        enable_lazy_load_no_trans: false
        format_sql: true
        use_sql_comments: true
        
        
logging:
  level:
    org:
      hibernate:
        type:
          descriptor:
            sql: trace
  • jpa.hibernate.dialect
    데이터베이스 방언 설정
  • jpa.hibernate.ddl-auto
    스키마 자동생성 설정

    - none
    - update : 테이블의 내용이 변경된 경우 자동으로 스키마 update
    - create : 애플리케이션 구동 시 스키마 create
    - create-drop : 애플리케이션 구동 시 스키마 create, 종료 시 drop
    - validate : 매핑 유효성 검증만 실행
  • jpa.properties.hibernate.enable_lazy_load_no_trans
    영속성 컨텍스트가 종료되어도, 새로운 데이터베이스 커넥션을 획득해서 지연로딩이 가능하도록 설정
    (성능상 false 권장)
  • jpa.properties.hibernate.format_sql
    Query 출력 시 Query를 가독성 좋게 줄바꿈(jpa.show-sql이 true일때)
  • jpa.properties.hibernate.use_sql_comments
    Query 출력 시 설명 주석 추가(jpa.show-sql이 true일때)
  • logging.level.org.hibernate.type.descriptor.sql
    Query 출력 시 데이터 값도 출력
저작자표시 (새창열림)

'기존 > 🏀JpaEnvorinoment' 카테고리의 다른 글

[스프링부트] maria db 환경 사용자계정 추가  (0) 2022.11.12
[JPA] Maven JPA 설정  (0) 2022.11.01
  1. Hibernate란?
  2. 설정법
'기존(310)/🏀JpaEnvorinoment' 카테고리의 다른 글
  • [스프링부트] maria db 환경 사용자계정 추가
  • [JPA] Maven JPA 설정
조각남자
조각남자
프로그래밍 기술 및 저장소
조각남자
조각남자
조각남자
전체
오늘
어제
  • 전체 보기
    • Java
      • Spring
    • 기존
      • 🏀Jsp
      • 🏀Spring
      • 🏀Pom.xml
      • 🏀SpringBoot
      • 🏀JavaExcption
      • 🏀JavaDB
      • 🏀SpringBootCloneWebSite
      • 🏀SptringDependency
      • 🏀JpaEnvorinoment
      • 🏀Thymeleaf
      • 🏀Node
      • 🏀Pyton
      • 🏀DataBase
      • 🏀JavaScript
      • 🏀Android
      • 🏀JPA
      • 🏀Flutter
      • 🐸Utils
      • 🎫 Batch
      • 🎞️JenKins
      • 🎈Python
      • 🎗️AWS
      • 🦠Vue
      • 🐳React
      • 🖲️kafka
      • Next.js

공지사항

  • 공지사항

인기 글

태그

  • D

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
조각남자
하이버네이트(Hidername) 란?
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.