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λ μλ° μ ν리μΌμ΄μ
μ΄ λ°μ΄ν°λ² μ΄μ€μ μνΈμμ©ν  λ κ°μ²΄ μ§ν₯μ μΌλ‘ λ°μ΄ν°λ₯Ό μ²λ¦¬ν  μ μλλ‘ λμμ£Όλ©°, λ°μ΄ν°λ² μ΄μ€μ 볡μ‘ν μμ
μ μ½κ² κ΄λ¦¬ν  μ μκ² ν΄μ€λλ€.