본문 바로가기

JavaFX

[JavaFX] Eclipse + JavaFX + Hibernate 연동

Eclipse로 JavaFX와 Hibernate 연동하는 방법입니다.

 

ORM(Object Relational Mapping)이란?

자바 애플리케이션 내의 객체를 관계형 데이터베이스의 테이블로 자동으로 영속화 하는것입니다.

 

하이버네이트(Hibernate) 란?

하이버네이트는 객체/관계형 매핑 도구로서 ORM 프레임워크 입니다.

하이버네이트를 사용하면 데이터베이스가 변경되더라도 SQL 스크립트를 따로 수정해야 하는 수고로움을 덜어줍니다.

DB가 다른 DB(ORACLE, MYSQL, CUBRID, TIBERO 등)로 변경이 되더라도 JPA가 애플리케이션과 DB사이에서 자동으로

매핑을 해주기 때문에 개발자들이 따로 쿼리를 수정할 필요가 없습니다.

 

JPA(Java Persistent API) 란?

ORM 표준기술로서 인터페이스의 모음으로 JPA의 인터페이스를 구현한 것이 Hibernate 입니다.

JDBC가 JAVA 애플리케이션과 DB 사이의 중간에서 동작한다면 JPA는 JDBC와 JAVA 애플리케이션 중간에서 동작하게 됩니다.

 

이런 ORM 기술을 사용하게 되면

생산성(개발에 소요되는 시간)과 유지보수성이 좋아집니다.

단점으로는 ORM은 구현이 복잡하며 표현방식을 변환해서 동작하기 때문에 JDBC보다 느리다고 합니다.

 

 

 

그럼 이제 eclipse에서 hibernate를 설치하는 방법입니다.

 

hibernate jar 파일을 다운받습니다.

hibernate-commons-annotations, hibernate-envers, hibernate-jpamodelgen, hibernate-osgi, hibernate-spatial, hibernate-core 파일을 다운받아서 Libraries에 import 해줍니다.

 

이클립스 메뉴에서 Help > Install New Software로 이동합니다.

Add 버튼 클릭 후 Location 에 아래의 url을 복사해서 넣고 Add 합니다.

 

http://download.jboss.org/jbosstools/photon/stable/updates/

 

 

Index of /jbosstools/photon/stable/updates

This folder contains an update site which composites the JBoss Tools update site and JBoss Central discovery site into a single URL. Other child folders include the JBoss Tools

download.jboss.org

 

 

Abridged JBoss Tools 에서 Hibernate Tools를 체크합니다.

Next 버튼을 클릭합니다.

 

 

I accept the terms of the license agreements 체크 후 Finish 하고 eclipse 재시작을 합니다.

 

 

New 파일 추가로 이동하면 Hibernate 파일을 생성할 수 있게 됩니다.

 

 

cfg.xml 파일을 생성하면 xml 파일이 아래와 같이 생성됩니다.

hibernate.properties 파일은 애플리케이션의 클래스패스 최상단에 만들어야 합니다. 최상단에 위치해 놓으면 자동으로 hibernate.properties를 찾게 됩니다.

 

hibernate.connection.driver_class

<hibernate-configuration>
  <session-factory>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/스키마명?serverTimezone=UTC</property>
    <property name="hibernate.connection.username">이름</property>
    <property name="hibernate.connection.password">비밀번호</property>
    <property name="hibernate.connection.CharSet">EUC-KR</property>
    <property name="hibernate.connection.pool_size">1</property>
  </session-factory>
</hibernate-configuration>