[java] Hibernate에서 데이터베이스 테이블과 관련된 CRUD(Create, Read, Update, Delete) 작업하는 방법은?
Hibernate는 자바 어플리케이션에서 데이터베이스와 상호작용을 쉽게할 수 있는 ORM(Object-Relational Mapping) 프레임워크입니다. 이를 사용하여 데이터베이스 테이블과 관련된 CRUD 작업을 수행할 수 있습니다.
- 의존성 추가
Hibernate를 사용하기 위해 먼저 의존성을 추가해야 합니다. Maven을 사용한다면 pom.xml 파일에 다음과 같이 Hibernate 의존성을 추가합니다.
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.4.32.Final</version> </dependency>
-
Hibernate 설정 Hibernate는 데이터베이스와 연결하기 위해 설정 파일이 필요합니다. 보통 hibernate.cfg.xml이라는 파일에 설정을 작성합니다. 설정 파일에는 데이터베이스 URL, 사용자명, 비밀번호 등의 정보가 포함되어야 합니다.
-
엔티티 클래스 생성 Hibernate에서는 데이터베이스 테이블과 매핑되는 엔티티 클래스를 작성해야 합니다. 이 클래스는 @Entity 어노테이션으로 표시되며, 클래스의 필드는 데이터베이스 테이블의 컬럼에 매핑됩니다.
-
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();
- Create 작업:
위의 예제에서 MyEntity
는 데이터베이스 테이블과 매핑되는 엔티티 클래스입니다. HibernateUtil
은 Hibernate 세션 팩토리를 생성하기 위한 유틸리티 클래스입니다.
이렇게 Hibernate를 사용하여 데이터베이스 테이블과 관련된 CRUD 작업을 쉽게 수행할 수 있습니다. Hibernate는 자동으로 적절한 SQL 쿼리를 생성하여 데이터베이스와 통신하므로 개발자는 직접 SQL 쿼리를 작성할 필요가 없습니다.
더 자세한 내용은 Hibernate 공식 문서를 참조하시기 바랍니다.
- Hibernate 공식 문서: https://hibernate.org/orm/documentation/