코틀린은 자바 플랫폼에서 동작하는 현대적인 정적 언어이며, Hibernate는 객체-관계 매핑(ORM) 프레임워크로써 자바 언어로 개발 및 사용되어왔습니다. 코틀린 언어를 사용하여 Hibernate와 데이터베이스를 연동하는 방법에 대해 알아보겠습니다.
Hibernate 및 데이터베이스 의존성 추가
먼저, Gradle을 사용하는 프로젝트의 경우 build.gradle
파일에 Hibernate 및 데이터베이스 드라이버 의존성을 추가해야 합니다.
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
implementation "org.hibernate:hibernate-core:5.5.7.Final"
runtimeOnly "com.h2database:h2"
}
위의 예시에서는 H2 데이터베이스를 위해 com.h2database:h2
를 사용하였습니다. 적절한 데이터베이스 드라이버를 선택하여 의존성을 추가해주십시오.
Hibernate 설정 파일 작성
다음으로, Hibernate를 설정하기 위한 hibernate.cfg.xml
파일을 작성해야 합니다. 이 파일은 데이터베이스 연결 및 Hibernate 설정을 정의하는 데 사용됩니다.
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">org.h2.Driver</property>
<property name="hibernate.connection.url">jdbc:h2:mem:test</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.dialect">org.hibernate.dialect.H2Dialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">create-drop</property>
</session-factory>
</hibernate-configuration>
Entity 클래스 정의
이제 데이터베이스의 테이블과 매핑될 엔티티 클래스를 작성해야 합니다. 코틀린에서는 일반적인 자바 엔티티 클래스와 유사한 형태로 작성할 수 있습니다.
import javax.persistence.Entity
import javax.persistence.Id
@Entity
data class Product(
@Id
val id: Long,
val name: String,
val price: Double
)
위의 예시에서 @Entity
어노테이션은 해당 클래스가 엔티티임을 나타내고, @Id
어노테이션은 엔티티의 식별자(primary key)를 나타내는 필드임을 나타냅니다.
Hibernate 세션 및 연산 수행
마지막으로, Hibernate 세션을 사용하여 데이터베이스 연산을 수행할 수 있습니다. 아래는 Hibernate를 사용하여 Product
엔티티를 데이터베이스에 저장하는 예시입니다.
fun main() {
val sessionFactory = Configuration().configure("hibernate.cfg.xml").buildSessionFactory()
val session = sessionFactory.openSession()
val product = Product(1, "Example Product", 9.99)
session.transaction.use {
session.save(product)
it.commit()
}
session.close()
sessionFactory.close()
}
위의 코드에서 sessionFactory
는 hibernate.cfg.xml
파일을 사용하여 만들어지고, session
을 통해 데이터베이스 연산이 수행됩니다. 세션을 사용한 이후에는 세션 및 세션 팩토리를 모두 닫아 주어야 합니다.
이제 코틀린에서 Hibernate와 데이터베이스를 연동하는 기본적인 방법을 알아보았습니다. 추가적으로 더욱 복잡한 쿼리, 관계 매핑 및 성능 최적화에 대해 더 알아보려면 Hibernate와 JPA 관련 문서를 참고하시기 바랍니다.
참고 자료
관련 블로그 포스트: 코틀린에서 JPA 및 Hibernate 사용하기