S01L09 – Hibernate CURD μž‘μ—… – 읽기

“`html

Hibernate CRUD μž‘μ—… λ§ˆμŠ€ν„°ν•˜κΈ°: Read κΈ°λŠ₯에 λŒ€ν•œ μ’…ν•© κ°€μ΄λ“œ

λͺ©μ°¨

  1. μ†Œκ°œ
    1. Hibernateλž€?
    2. CRUD μž‘μ—…μ˜ μ€‘μš”μ„±
    3. Read μž‘μ—…μ— λŒ€ν•œ 집쀑
    4. CRUDλ₯Ό μœ„ν•œ Hibernate μ‚¬μš©μ˜ μž₯단점
    5. Hibernate Read μž‘μ—…μ„ μ‚¬μš©ν•  μ‹œκΈ°μ™€ μž₯μ†Œ
  2. CRUD μž‘μ—…μ„ μœ„ν•œ Hibernate μ„€μ •
    1. ν•„μˆ˜ 쑰건
    2. ν”„λ‘œμ νŠΈ ꡬ쑰 κ°œμš”
    3. hibernate.cfg.xml μ„€μ •
  3. μ—”ν‹°ν‹° 클래슀 μ΄ν•΄ν•˜κΈ°
    1. Users μ—”ν‹°ν‹° 생성
    2. μƒμ„±μž, Getters 및 Setters
    3. toString λ©”μ†Œλ“œ μ˜€λ²„λΌμ΄λ“œ
  4. Read μž‘μ—… κ΅¬ν˜„
    1. Hibernate μ„Έμ…˜ μ΄ˆκΈ°ν™”
    2. νŠΈλžœμž­μ…˜ μ‹œμž‘
    3. session.get을 μ‚¬μš©ν•œ 데이터 검색
    4. νŠΈλžœμž­μ…˜ 컀밋
    5. κ²€μƒ‰λœ 데이터 ν‘œμ‹œ
  5. μ½”λ“œ μ„€λͺ…
    1. μ™„μ „ν•œ Java μ½”λ“œ
    2. 단계별 μ„€λͺ…
    3. 좜λ ₯ 뢄석
  6. κ²°λ‘ 
    1. 핡심 λ‚΄μš©
    2. λ‹€μŒ 단계: μΆ”κ°€ CRUD μž‘μ—… 탐색
    3. μΆ”κ°€ 자료

μ†Œκ°œ

1.1 Hibernateλž€?

HibernateλŠ” Java μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μœ„ν•œ κ°•λ ₯ν•œ 객체-관계 맀핑(Object-Relational Mapping, ORM) ν”„λ ˆμž„μ›Œν¬μž…λ‹ˆλ‹€. HibernateλŠ” Java 클래슀λ₯Ό λ°μ΄ν„°λ² μ΄μŠ€ ν…Œμ΄λΈ”μ— λ§€ν•‘ν•˜μ—¬ κ°œλ°œμžκ°€ λ³΅μž‘ν•œ SQL 쿼리λ₯Ό μž‘μ„±ν•˜λŠ” λŒ€μ‹  Java 객체λ₯Ό μ‚¬μš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€μ™€ μƒν˜Έ μž‘μš©ν•  수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ μΆ”μƒν™”λŠ” λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ„ λ‹¨μˆœν™”ν•˜κ³  생산성을 ν–₯μƒμ‹œν‚΅λ‹ˆλ‹€.

1.2 CRUD μž‘μ—…μ˜ μ€‘μš”μ„±

CRUDλŠ” Create, Read, Update, Delete의 μ•½μžλ‘œ, 영ꡬ μ €μž₯μ†Œμ—μ„œ 데이터λ₯Ό κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ λ„€ 가지 κΈ°λ³Έ μž‘μ—…μ„ μ˜λ―Έν•©λ‹ˆλ‹€. CRUD μž‘μ—…μ„ 효과적으둜 κ΅¬ν˜„ν•˜λŠ” 것은 데이터 μ €μž₯에 μ˜μ‘΄ν•˜λŠ” λͺ¨λ“  μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— 기본적이며, μ›ν™œν•œ 데이터 μ‘°μž‘κ³Ό 검색을 보μž₯ν•©λ‹ˆλ‹€.

1.3 Read μž‘μ—…μ— λŒ€ν•œ 집쀑

λͺ¨λ“  CRUD μž‘μ—…μ΄ ν•„μˆ˜μ μ΄μ§€λ§Œ, 이 κ°€μ΄λ“œλŠ” Read κΈ°λŠ₯에 쀑점을 λ‘‘λ‹ˆλ‹€. Read μž‘μ—…μ€ λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 데이터λ₯Ό κ°€μ Έμ˜€λŠ” 것을 ν¬ν•¨ν•˜λ©°, μ΄λŠ” μ‚¬μš©μžμ—κ²Œ 정보λ₯Ό ν‘œμ‹œν•˜κ³ , λ³΄κ³ μ„œλ₯Ό μƒμ„±ν•˜λ©°, 데이터 뢄석을 μˆ˜ν–‰ν•˜λŠ” 데 μ€‘μš”ν•©λ‹ˆλ‹€.

1.4 CRUDλ₯Ό μœ„ν•œ Hibernate μ‚¬μš©μ˜ μž₯단점

μž₯점:

  • κ°„μ†Œν™”λœ λ°μ΄ν„°λ² μ΄μŠ€ μƒν˜Έ μž‘μš©: λ³΄μΌλŸ¬ν”Œλ ˆμ΄νŠΈ SQL μ½”λ“œλ₯Ό μ œκ±°ν•©λ‹ˆλ‹€.
  • λ°μ΄ν„°λ² μ΄μŠ€ 독립성: μ΅œμ†Œν•œμ˜ ꡬ성 λ³€κ²½μœΌλ‘œ μ—¬λŸ¬ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ§€μ›ν•©λ‹ˆλ‹€.
  • 캐싱 지원: λ°μ΄ν„°λ² μ΄μŠ€ 접근을 쀄여 μ„±λŠ₯을 ν–₯μƒμ‹œν‚΅λ‹ˆλ‹€.
  • μžλ™ μŠ€ν‚€λ§ˆ 생성: μ—”ν‹°ν‹° ν΄λž˜μŠ€μ—μ„œ λ°μ΄ν„°λ² μ΄μŠ€ μŠ€ν‚€λ§ˆλ₯Ό μƒμ„±ν•˜μ—¬ λΉ λ₯Έ κ°œλ°œμ„ μ΄‰μ§„ν•©λ‹ˆλ‹€.

단점:

  • ν•™μŠ΅ 곑선: ORM κ°œλ…κ³Ό Hibernate 고유의 ꡬ성을 이해해야 ν•©λ‹ˆλ‹€.
  • μ„±λŠ₯ μ˜€λ²„ν—€λ“œ: λ‹¨μˆœ 쿼리에 λΉ„ν•΄ 지연 μ‹œκ°„μ΄ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • λ‹¨μˆœ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ λ³΅μž‘μ„±: λ°μ΄ν„°λ² μ΄μŠ€ μƒν˜Έ μž‘μš©μ΄ μ΅œμ†ŒμΈ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—λŠ” 과도할 수 μžˆμŠ΅λ‹ˆλ‹€.

1.5 Hibernate Read μž‘μ—…μ„ μ‚¬μš©ν•  μ‹œκΈ°μ™€ μž₯μ†Œ

Hibernate의 Read μž‘μ—…μ€ 특히 μ—”ν‹°ν‹° κ°„μ˜ λ³΅μž‘ν•œ 관계λ₯Ό λ‹€λ£° λ•Œ κ²¬κ³ ν•œ 데이터 검색 λ©”μ»€λ‹ˆμ¦˜μ΄ ν•„μš”ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μ΄μƒμ μž…λ‹ˆλ‹€. μ΄λŠ” μ—”ν„°ν”„λΌμ΄μ¦ˆ μˆ˜μ€€μ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜, μ½˜ν…μΈ  관리 μ‹œμŠ€ν…œ, 데이터 μ‘°μž‘μ˜ μš©μ΄μ„±κ³Ό ν™•μž₯성이 μš°μ„ μΈ ν”„λ‘œμ νŠΈμ— μ ν•©ν•©λ‹ˆλ‹€.


CRUD μž‘μ—…μ„ μœ„ν•œ Hibernate μ„€μ •

2.1 ν•„μˆ˜ 쑰건

Hibernate CRUD μž‘μ—…μ— λ›°μ–΄λ“€κΈ° 전에 λ‹€μŒμ„ ν™•μΈν•˜μ‹­μ‹œμ˜€:

  • Java Development Kit (JDK): 버전 8 이상.
  • 톡합 개발 ν™˜κ²½ (IDE): Eclipse λ˜λŠ” IntelliJ IDEA와 같은.
  • Apache Tomcat Server: μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ°°ν¬ν•˜λŠ” 경우.
  • Maven: ν”„λ‘œμ νŠΈ 관리 및 μ˜μ‘΄μ„± 처리λ₯Ό μœ„ν•΄.

2.2 ν”„λ‘œμ νŠΈ ꡬ쑰 κ°œμš”

일반적인 Hibernate ν”„λ‘œμ νŠΈλŠ” κ΅¬μ‘°ν™”λœ 디렉토리 λ ˆμ΄μ•„μ›ƒμ„ λ”°λ¦…λ‹ˆλ‹€:

project-root/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main/
β”‚   β”‚   β”œβ”€β”€ java/
β”‚   β”‚   β”‚   └── org.studyeasy/
β”‚   β”‚   β”‚       β”œβ”€β”€ App.java
β”‚   β”‚   β”‚       └── entity/
β”‚   β”‚   β”‚           └── Users.java
β”‚   β”‚   └── resources/
β”‚   β”‚       └── hibernate.cfg.xml
β”‚   └── test/
β”œβ”€β”€ target/
└── pom.xml

2.3 hibernate.cfg.xml μ„€μ •

hibernate.cfg.xml νŒŒμΌμ€ Hibernate의 ꡬ성에 ν•„μˆ˜μ μž…λ‹ˆλ‹€. 이 νŒŒμΌμ€ λ°μ΄ν„°λ² μ΄μŠ€ μ—°κ²° μ„ΈλΆ€ 정보, λ°©μ–Έ 사양, 맀핑 정보λ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€. λ‹€μŒμ€ μƒ˜ν”Œ κ΅¬μ„±μž…λ‹ˆλ‹€:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC  
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">  

<hibernate-configuration>
    <session-factory>
        <!-- λ°μ΄ν„°λ² μ΄μŠ€ μ—°κ²° μ„€μ • -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/yourdb</property>
        <property name="connection.username">root</property>
        <property name="connection.password">password</property>

        <!-- SQL λ°©μ–Έ -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

        <!-- μ‹€ν–‰λœ λͺ¨λ“  SQL을 stdout에 좜λ ₯ -->
        <property name="show_sql">true</property>

        <!-- μ‹œμž‘ μ‹œ λ°μ΄ν„°λ² μ΄μŠ€ μŠ€ν‚€λ§ˆλ₯Ό μ‚­μ œν•˜κ³  μž¬μƒμ„± -->
        <property name="hbm2ddl.auto">update</property>

        <!-- 맀핑 클래슀 -->
        <mapping class="org.studyeasy.entity.Users"/>
    </session-factory>
</hibernate-configuration>

μ—”ν‹°ν‹° 클래슀 μ΄ν•΄ν•˜κΈ°

3.1 Users μ—”ν‹°ν‹° 생성

Users μ—”ν‹°ν‹° ν΄λž˜μŠ€λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ˜ users ν…Œμ΄λΈ”μ— λ§€ν•‘λ©λ‹ˆλ‹€. 이 ν΄λž˜μŠ€λŠ” λ°μ΄ν„°μ˜ ꡬ쑰λ₯Ό μ •μ˜ν•˜λ©°, κΈ°λ³Έ 킀와 μ—΄ 맀핑을 μ§€μ •ν•˜κΈ° μœ„ν•œ μ–΄λ…Έν…Œμ΄μ…˜μ„ ν¬ν•¨ν•©λ‹ˆλ‹€.

package org.studyeasy.entity;

import javax.persistence.*;

@Entity
@Table(name = "users")
public class Users {
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    
    @Column(name = "username")
    private String username;
    
    @Column(name = "password")
    private String password;
    
    @Column(name = "first_name")
    private String firstName;
    
    @Column(name = "last_name")
    private String lastName;

    // κΈ°λ³Έ μƒμ„±μž
    public Users() {}

    // λ§€κ°œλ³€μˆ˜ μƒμ„±μž
    public Users(String username, String password, String firstName, String lastName) {
        this.username = username;
        this.password = password;
        this.firstName = firstName;
        this.lastName = lastName;
    }

    // Getters와 Setters
    // ...

    @Override
    public String toString() {
        return "Users [id=" + id + ", username=" + username + ", firstName=" + firstName + ", lastName=" + lastName + "]";
    }
}

3.2 μƒμ„±μž, Getters 및 Setters

  • κΈ°λ³Έ μƒμ„±μž: Hibernateκ°€ μ—”ν‹°ν‹°μ˜ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜λŠ” 데 ν•„μš”ν•©λ‹ˆλ‹€.
  • λ§€κ°œλ³€μˆ˜ μƒμ„±μž: νŠΉμ • κ°’μœΌλ‘œ 객체λ₯Ό μ΄ˆκΈ°ν™”ν•˜λŠ” 데 도움이 λ©λ‹ˆλ‹€.
  • Getters와 Setters: μ—”ν‹°ν‹°μ˜ ν•„λ“œμ— λŒ€ν•œ μ ‘κ·Όκ³Ό μˆ˜μ •μ„ μš©μ΄ν•˜κ²Œ ν•©λ‹ˆλ‹€.

3.3 toString λ©”μ†Œλ“œ μ˜€λ²„λΌμ΄λ“œ

toString λ©”μ†Œλ“œλ₯Ό μ˜€λ²„λΌμ΄λ“œν•˜λ©΄ Users 객체가 좜λ ₯될 λ•Œ κΈ°λ³Έ 객체 μ°Έμ‘° λŒ€μ‹  의미 있고 읽기 μ‰¬μš΄ 정보λ₯Ό ν‘œμ‹œν•  수 μžˆμŠ΅λ‹ˆλ‹€.


Read μž‘μ—… κ΅¬ν˜„

4.1 Hibernate μ„Έμ…˜ μ΄ˆκΈ°ν™”

λ°μ΄ν„°λ² μ΄μŠ€μ™€ μƒν˜Έ μž‘μš©ν•˜λ €λ©΄ HibernateλŠ” SessionFactory와 Session을 ν•„μš”λ‘œ ν•©λ‹ˆλ‹€. SessionFactoryλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ‹œμž‘ μ‹œ ν•œ 번 μƒμ„±λ˜λŠ” 무거운 κ°μ²΄μž…λ‹ˆλ‹€. Session은 κ°€λ²Όμš΄ 객체둜 CRUD μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.

4.2 νŠΈλžœμž­μ…˜ μ‹œμž‘

λͺ¨λ“  λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ€ 데이터 무결성을 보μž₯ν•˜κΈ° μœ„ν•΄ νŠΈλžœμž­μ…˜ λ‚΄μ—μ„œ 이루어져야 ν•©λ‹ˆλ‹€. CRUD μž‘μ—…μ„ μˆ˜ν–‰ν•˜κΈ° 전에 νŠΈλžœμž­μ…˜μ„ μ‹œμž‘ν•©λ‹ˆλ‹€.

4.3 session.get을 μ‚¬μš©ν•œ 데이터 검색

session.get λ©”μ†Œλ“œλŠ” κΈ°λ³Έ ν‚€λ₯Ό 기반으둜 μ—”ν‹°ν‹°λ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€. μ—”ν‹°ν‹°κ°€ 발견되면 ν•΄λ‹Ή 객체λ₯Ό λ°˜ν™˜ν•˜κ³ , 그렇지 μ•ŠμœΌλ©΄ null을 λ°˜ν™˜ν•©λ‹ˆλ‹€.

4.4 νŠΈλžœμž­μ…˜ 컀밋

Read μž‘μ—…μ„ μˆ˜ν–‰ν•œ ν›„μ—λŠ” νŠΈλžœμž­μ…˜μ„ μ»€λ°‹ν•˜μ—¬ μž‘μ—…μ„ μ™„λ£Œν•©λ‹ˆλ‹€.

4.5 κ²€μƒ‰λœ 데이터 ν‘œμ‹œ

μ˜€λ²„λΌμ΄λ“œλœ toString λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ κ°€μ Έμ˜¨ 데이터λ₯Ό μ‚¬λžŒμ΄ 읽을 수 μžˆλŠ” ν˜•μ‹μœΌλ‘œ ν‘œμ‹œν•©λ‹ˆλ‹€.


μ½”λ“œ μ„€λͺ…

5.1 μ™„μ „ν•œ Java μ½”λ“œ

package org.studyeasy;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.studyeasy.entity.Users;

public class App {
    public static void main(String[] args) {
        // SessionFactory 생성
        SessionFactory factory = new Configuration()
                                .configure("hibernate.cfg.xml")
                                .addAnnotatedClass(Users.class)
                                .buildSessionFactory();

        // Session 생성
        Session session = factory.getCurrentSession();

        try {
            // νŠΈλžœμž­μ…˜ μ‹œμž‘
            session.beginTransaction();

            // IDκ°€ 2인 μ‚¬μš©μž 검색
            int userId = 2;
            Users user = session.get(Users.class, userId);

            // νŠΈλžœμž­μ…˜ 컀밋
            session.getTransaction().commit();

            // μ‚¬μš©μž 정보 ν‘œμ‹œ
            System.out.println(user);
        } finally {
            factory.close();
        }
    }
}

5.2 단계별 μ„€λͺ…

  1. SessionFactory 생성:
    SessionFactory factory = new Configuration()
                            .configure("hibernate.cfg.xml")
                            .addAnnotatedClass(Users.class)
                            .buildSessionFactory();
        

    hibernate.cfg.xml을 μ‚¬μš©ν•˜μ—¬ Hibernateλ₯Ό κ΅¬μ„±ν•©λ‹ˆλ‹€.
    Users μ—”ν‹°ν‹° 클래슀λ₯Ό λ“±λ‘ν•©λ‹ˆλ‹€.
    SessionFactoryλ₯Ό κ΅¬μΆ•ν•©λ‹ˆλ‹€.

  2. Session μ΄ˆκΈ°ν™”:
    Session session = factory.getCurrentSession();
        

    SessionFactoryμ—μ„œ ν˜„μž¬ μ„Έμ…˜μ„ κ°€μ Έμ˜΅λ‹ˆλ‹€.

  3. νŠΈλžœμž­μ…˜ μ‹œμž‘:
    session.beginTransaction();
        

    – μƒˆ νŠΈλžœμž­μ…˜μ„ μ‹œμž‘ν•©λ‹ˆλ‹€.

  4. 데이터 검색:
    int userId = 2;
    Users user = session.get(Users.class, userId);
        

    session.get을 μ‚¬μš©ν•˜μ—¬ id=2인 Users μ—”ν‹°ν‹°λ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€.
    – κ²°κ³Όλ₯Ό user 객체에 μ €μž₯ν•©λ‹ˆλ‹€.

  5. νŠΈλžœμž­μ…˜ 컀밋:
    session.getTransaction().commit();
        

    – νŠΈλžœμž­μ…˜μ„ λ§ˆλ¬΄λ¦¬ν•˜μ—¬ μž‘μ—…μ„ μ™„λ£Œν•©λ‹ˆλ‹€.

  6. κ²€μƒ‰λœ 데이터 ν‘œμ‹œ:
    System.out.println(user);
        

    – μ˜€λ²„λΌμ΄λ“œλœ toString λ©”μ†Œλ“œλ₯Ό ν™œμš©ν•˜μ—¬ Users 객체λ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.

  7. SessionFactory λ‹«κΈ°:
    factory.close();
        

    SessionFactoryκ°€ λ³΄μœ ν•œ λ¦¬μ†ŒμŠ€λ₯Ό ν•΄μ œν•©λ‹ˆλ‹€.

5.3 좜λ ₯ 뢄석

μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ„±κ³΅μ μœΌλ‘œ μ‹€ν–‰λ˜λ©΄ μ½˜μ†”μ— λ‹€μŒκ³Ό 같은 ν˜•μ‹μœΌλ‘œ κ²€μƒ‰λœ μ‚¬μš©μžμ˜ 정보가 읽기 μ‰½κ²Œ ν‘œμ‹œλ©λ‹ˆλ‹€:

Users [id=2, username=Chand, firstName=Pooja, lastName=Singh]

이 좜λ ₯은 Read μž‘μ—…μ΄ id=2인 μ‚¬μš©μžλ₯Ό λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μ„±κ³΅μ μœΌλ‘œ 가져와 κ΄€λ ¨λœ μ„ΈλΆ€ 정보λ₯Ό ν‘œμ‹œν–ˆμŒμ„ ν™•μΈμ‹œμΌœμ€λ‹ˆλ‹€.


κ²°λ‘ 

6.1 핡심 λ‚΄μš©

  • HibernateλŠ” CRUDλ₯Ό κ°„μ†Œν™”: HibernateλŠ” λ³΅μž‘ν•œ SQL μž‘μ—…μ„ μΆ”μƒν™”ν•˜μ—¬ Java 객체λ₯Ό ν†΅ν•œ 데이터 μ‘°μž‘μ„ 보닀 μ§κ΄€μ μœΌλ‘œ λ§Œλ“­λ‹ˆλ‹€.
  • ν•„μˆ˜ ꡬ성: hibernate.cfg.xml 및 μ—”ν‹°ν‹° 클래슀의 μ μ ˆν•œ 섀정은 μ›ν™œν•œ μž‘μ—…μ„ μœ„ν•΄ μ€‘μš”ν•©λ‹ˆλ‹€.
  • Read μž‘μ—…μ˜ κΈ°λ³Έ: session.get을 ν™œμš©ν•˜μ—¬ κΈ°λ³Έ ν‚€λ₯Ό 기반으둜 효율적인 데이터 검색이 κ°€λŠ₯ν•©λ‹ˆλ‹€.
  • νŠΈλžœμž­μ…˜ 무결성: 데이터 일관성을 μœ μ§€ν•˜κΈ° μœ„ν•΄ 항상 νŠΈλžœμž­μ…˜ λ‚΄μ—μ„œ CRUD μž‘μ—…μ„ μˆ˜ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€.

6.2 λ‹€μŒ 단계: μΆ”κ°€ CRUD μž‘μ—… 탐색

이제 Hibernateμ—μ„œ Read μž‘μ—…μ„ λ§ˆμŠ€ν„°ν–ˆμœΌλ―€λ‘œ λ‹€μŒμ„ κ³ λ €ν•΄ λ³΄μ‹­μ‹œμ˜€:

  • Create: λ°μ΄ν„°λ² μ΄μŠ€μ— μƒˆ λ ˆμ½”λ“œλ₯Ό μΆ”κ°€.
  • Update: κΈ°μ‘΄ λ ˆμ½”λ“œλ₯Ό μˆ˜μ •.
  • Delete: λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ λ ˆμ½”λ“œλ₯Ό μ‚­μ œ.

각 μž‘μ—…μ€ 이 κ°€μ΄λ“œμ—μ„œ 닀룬 κΈ°λ³Έ κ°œλ…μ„ λ°”νƒ•μœΌλ‘œ κ΅¬μΆ•λ˜μ–΄ Hibernate에 λŒ€ν•œ μˆ™λ ¨λ„λ₯Ό λ”μš± ν–₯μƒμ‹œν‚΅λ‹ˆλ‹€.

6.3 μΆ”κ°€ 자료


μ°Έκ³ : 이 κΈ°μ‚¬λŠ” AI에 μ˜ν•΄ μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.






“`

Share your love