[java] Hibernate에서 데이터베이스 테이블과 관련된 CRUD(Create, Read, Update, Delete) 작업하는 방법은?

Hibernate는 자바 어플리케이션에서 데이터베이스와 상호작용을 쉽게할 수 있는 ORM(Object-Relational Mapping) 프레임워크입니다. 이를 사용하여 데이터베이스 테이블과 관련된 CRUD 작업을 수행할 수 있습니다.

  1. 의존성 추가 Hibernate를 사용하기 위해 먼저 의존성을 추가해야 합니다. Maven을 사용한다면 pom.xml 파일에 다음과 같이 Hibernate 의존성을 추가합니다.
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-core</artifactId>
      <version>5.4.32.Final</version>
    </dependency>
    
  2. Hibernate 설정 Hibernate는 데이터베이스와 연결하기 위해 설정 파일이 필요합니다. 보통 hibernate.cfg.xml이라는 파일에 설정을 작성합니다. 설정 파일에는 데이터베이스 URL, 사용자명, 비밀번호 등의 정보가 포함되어야 합니다.

  3. 엔티티 클래스 생성 Hibernate에서는 데이터베이스 테이블과 매핑되는 엔티티 클래스를 작성해야 합니다. 이 클래스는 @Entity 어노테이션으로 표시되며, 클래스의 필드는 데이터베이스 테이블의 컬럼에 매핑됩니다.

  4. CRUD 작업 수행 Hibernate를 사용하여 CRUD 작업을 수행하려면 다음과 같은 메소드를 사용할 수 있습니다.

    • Create 작업:
      Session session = HibernateUtil.getSessionFactory().openSession();
      session.beginTransaction();
      
      MyEntity entity = new MyEntity();
      entity.setProperty1(value1);
      entity.setProperty2(value2);
      // 필요한 프로퍼티 설정
      
      session.save(entity);
      
      session.getTransaction().commit();
      session.close();
      
    • Read 작업:
      Session session = HibernateUtil.getSessionFactory().openSession();
      
      MyEntity entity = session.get(MyEntity.class, id);
      
      session.close();
      
    • Update 작업:
      Session session = HibernateUtil.getSessionFactory().openSession();
      session.beginTransaction();
      
      MyEntity entity = session.get(MyEntity.class, id);
      entity.setProperty1(newValue1);
      entity.setProperty2(newValue2);
      // 업데이트할 프로퍼티 값 설정
      
      session.getTransaction().commit();
      session.close();
      
    • Delete 작업:
      Session session = HibernateUtil.getSessionFactory().openSession();
      session.beginTransaction();
      
      MyEntity entity = session.get(MyEntity.class, id);
      session.delete(entity);
      
      session.getTransaction().commit();
      session.close();
      

위의 예제에서 MyEntity는 데이터베이스 테이블과 매핑되는 엔티티 클래스입니다. HibernateUtil은 Hibernate 세션 팩토리를 생성하기 위한 유틸리티 클래스입니다.

이렇게 Hibernate를 사용하여 데이터베이스 테이블과 관련된 CRUD 작업을 쉽게 수행할 수 있습니다. Hibernate는 자동으로 적절한 SQL 쿼리를 생성하여 데이터베이스와 통신하므로 개발자는 직접 SQL 쿼리를 작성할 필요가 없습니다.

더 자세한 내용은 Hibernate 공식 문서를 참조하시기 바랍니다.