하이버네이트/JPA - 자바의 ORM.

01. 하이버네이트 소개와 환경설정

목차(환경설정에 필요한 것)

1. 외장 라이브러리 관리 - Maven 에서 Hibernate-core 와 derby db 설정

2. 하이버네이트 설정파일 : hibernate.cfg.xml

3. HibernateUtil 파일(세션팩토리 제공) : Ctrl+ CV

4. 참고주소

준비물 ( 혹은 개발환경 ) : Eclipse EE Luna 버젼. Java 1.8 버젼에서 작성 중입니다.
이클립스 환경설정 General - workspace- utf-8환경입니다.

 

1. 외장 라이브러리 관리

영상참조. 메이븐으로 외부 라이브러리를 불러들입니다. Junit까지 불러온 Pom.xml 은 다음과 같습니다.

derby DB가 싫으신 분들은 다른 Database를 쓰셔도 됩니다 :) Database설정은 영상을 참조해주세요.
 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.arahansa</groupId>
	<artifactId>HibernateTutorial</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<dependencies>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>4.3.6.Final</version>
		</dependency>
		<dependency>
			<groupId>org.apache.derby</groupId>
			<artifactId>derbyclient</artifactId>
			<version>10.11.1.1</version>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
		</dependency>
	</dependencies>
</project>
더비 서버 실행파일이 있는 주소는  c:\Program Files\Java\설치된 자바폴더\db\bin 입니다.

2. 하이버네이트 설정파일

hibernate.cfg.xml 이란 파일을 src/main/resources 폴더에 만들어넣습니다. 다음과 같습니다.
mapping class 부분에 미리 클래스 설정을 해두었습니다
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>
		<!-- Database connection settings -->
		<property name="connection.driver_class">org.apache.derby.jdbc.ClientDriver</property>
		<property name="connection.url">jdbc:derby://localhost:1527/HibernateDb;create=true</property>
		<property name="connection.username">user</property>
		<property name="connection.password">password</property>
		<property name="dialect">org.hibernate.dialect.DerbyDialect</property>

		<!-- JDBC connection pool (use the built-in) -->
		<property name="connection.pool_size">1</property>

		<!-- Enable Hibernate's current session context -->
		<property name="current_session_context_class">thread</property>

		<!-- Disable the second-level cache -->
		<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

		<!-- Echo all executed SQL to stdout -->
		<property name="show_sql">true</property>
		<property name="hbm2ddl.auto">create</property>

		<mapping class="chap01.crud.Member" />
	</session-factory>

</hibernate-configuration>

3. HibernateUtil 파일(세션 팩토리 제공)

util패키지를 만들고 세션팩토리를 제공하는 HibernateUtil 클래스를 만듭니다. 소스는 다음과 같습니다.

package util;

import org.hibernate.SessionFactory;

import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.boot.registry.StandardServiceRegistry;

/**
 * @author Deepak Kumar * Web: http://www.roseindia.net 
 *  Update by arahansa@naver.com
 */
public class HibernateUtil {
    private static SessionFactory sessionFactory;
	private static String configFile = "hibernate.cfg.xml";

	static {
		try {
			Configuration cfg = new Configuration().configure(configFile);
			StandardServiceRegistryBuilder sb = new StandardServiceRegistryBuilder();
			sb.applySettings(cfg.getProperties());
			StandardServiceRegistry standardServiceRegistry = sb.build();
			sessionFactory = cfg.buildSessionFactory(standardServiceRegistry);
		} catch (Throwable th) {
			System.err.println("Enitial SessionFactory creation failed" + th);
			throw new ExceptionInInitializerError(th);
		}
	}

	public static SessionFactory getSessionFactory() {
		return sessionFactory;
	}

	public void shutdown() {
		sessionFactory.close();
	}
}

4. 참고주소

하이버네이트 4.3.6 버젼 하이버네이트 util 클래스를 참고하였습니다. 인도의 장미님께 감사를.

Deepak Kumar * Web: http://www.roseindia.net

 

댓글

댓글 본문
작성자
비밀번호
  1. Scratchback
    잘 보고 있습니다. 감사합니다(1)
버전 관리
아라한사
현재 버전
선택 버전
graphittie 자세히 보기