Home
>
Spring
>
π[Spring] Hibernateλ 무μμΌκΉμ?
Spring
Framework
π[Spring] Hibernateλ 무μμΌκΉμ?
Hibernateλ μλ°μμ μ¬μ©λλ ORM(Object-Relational Mapping) νλ μμν¬λ‘, κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)μ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°(Object-Oriented Programming, OOP) κ°μ λΆμΌμΉλ₯Ό ν΄κ²°ν΄ μ£Όλ λꡬμ
λλ€.
κ°μ²΄ μ§ν₯μ μΈ μλ° μ ν리μΌμ΄μ
μ λ°μ΄ν°λ₯Ό κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)μ ν
μ΄λΈμ μλμΌλ‘ λ§€νν΄μ£Όλ μν μ ν©λλ€.
1οΈβ£ μ£Όμ νΉμ§.
1οΈβ£ ORM(Object-Relational Mapping)
λ°μ΄ν°λ² μ΄μ€ ν
μ΄λΈκ³Ό μλ° ν΄λμ€ κ°μ λ§€νμ ν΅ν΄, SQL(Structured Query Language) λ¬Έμ μ§μ μμ±νμ§ μκ³ λ μλ° κ°μ²΄λ‘ λ°μ΄ν°λ² μ΄μ€ μμ
μ μ²λ¦¬ν μ μμ΅λλ€.
μλ₯Ό λ€μ΄, λ°μ΄ν°λ² μ΄μ€μ ν
μ΄λΈ ν(Row)μ μλ° κ°μ²΄λ‘ λ³ννκ³ , μλ° κ°μ²΄λ₯Ό ν
μ΄λΈμ ν(Row)μΌλ‘ λ³ννλ κ³Όμ μ΄ μλμΌλ‘ μ΄λ£¨μ΄μ§λλ€.
2οΈβ£ HQL(Hibernate Query Language)
SQL(Structed Query Language)κ³Ό μ μ¬νμ§λ§, λ°μ΄ν°λ² μ΄μ€ ν
μ΄λΈμ΄ μλ μλ° κ°μ²΄λ₯Ό λμμΌλ‘ μ§μλ₯Ό ν μ μλλ‘ μ€κ³λ 쿼리 μΈμ΄μ
λλ€.
λ°μ΄ν°λ² μ΄μ€μ μ’
μλμ§ γ
λ³μ λ€λ₯Έ DBMS(Database Management System, λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬ μμ€ν
)λ‘μ μ νμ΄ μ©μ΄ν©λλ€.
3οΈβ£ μΊμ±(Caching)
Hibernateλ 1μ°¨, 2μ°¨ μΊμ±μ μ 곡νμ¬ μ±λ₯μ μ΅μ νν©λλ€.
μ΄λ₯Ό ν΅ν΄ λμΌν λ°μ΄ν°λ₯Ό μ¬λ¬ λ² μμ² ν λ λ°μ΄ν°λ² μ΄μ€μ λΆνμν μ κ·Όμ μ€μΌ μ μμ΅λλ€.
4οΈβ£ νΈλμμ
κ΄λ¦¬.
λ°μ΄ν°λ² μ΄μ€μ νΈλμμ
μ ν¨κ³Όμ μΌλ‘ κ΄λ¦¬ν΄μ£Όλ©°, μ¬λ¬ λ°μ΄ν°λ² μ΄μ€ μμ
μ νλμ λ¨μλ‘ μ²λ¦¬ν μ μκ² λμμ€λλ€.
5οΈβ£ μλ μ€ν€λ§ μμ±.
Hibernateλ μλ° ν΄λμ€λ₯Ό κΈ°λ°μΌλ‘ λ°μ΄ν°λ² μ΄μ€ μ€ν€λ§λ₯Ό μλμΌλ‘ μμ±νκ³ κ΄λ¦¬ν μ μμ΅λλ€.
2οΈβ£ μ₯μ .
π DB λ
립μ±.
Hibernateλ νΉμ λ°μ΄ν°λ² μ΄μ€μ μ’
μλμ§ μμΌλ©°, μ¬λ¬ λ°μ΄ν°λ² μ΄μ€μ μ½κ² μ μ©ν μ μμ΅λλ€.
π μμ°μ± ν₯μ.
SQLμ μ§μ μμ±ν νμκ° μμΌλ―λ‘ κ°λ°μμ μμ°μ±μ λμΌ μ μμ΅λλ€.
π μ μ§λ³΄μ μ©μ΄.
κ°μ²΄μ§ν₯μ μΈ μ½λλ₯Ό μ μ§νλ©° λ°μ΄ν°λ² μ΄μ€ μμ
μ μ²λ¦¬ν μ μμ΄, μ½λμ κ°λ
μ±κ³Ό μ μ§ λ³΄μμ±μ΄ λμ΅λλ€.
3οΈβ£ κ°λ¨ν μ.
@Entity
@Table ( name = "User" )
public class User {
@Id
@GeneratedValue ( strategy = GenerationType . IDENTITY )
private Long id ;
private String name ;
private String email ;
// Getters and Setters
}
μμ μμμμ User
ν΄λμ€λ λ°μ΄ν°λ² μ΄μ€ ν
μ΄λΈμ λ§€νλ©λλ€.
@Entity
μ @Table
μ λ
Έν
μ΄μ
μ ν΅ν΄ ν΄λμ€κ° ν
μ΄λΈκ³Ό λ§€νλκ³ , @Id
μ λ
Έν
μ΄μ
μ κΈ°λ³Έ ν€(Primary Key)λ₯Ό λνλ
λλ€.
Hibernateλ μλ° μ ν리μΌμ΄μ
μ΄ λ°μ΄ν°λ² μ΄μ€μ μνΈμμ©ν λ κ°μ²΄ μ§ν₯μ μΌλ‘ λ°μ΄ν°λ₯Ό μ²λ¦¬ν μ μλλ‘ λμμ£Όλ©°, λ°μ΄ν°λ² μ΄μ€μ 볡μ‘ν μμ
μ μ½κ² κ΄λ¦¬ν μ μκ² ν΄μ€λλ€.