Java Hibernate5에서 hbm.xml 파일 없이 사용하는법에 대해 알아보자.
작업 환경은 다음과 같다.
* 운영체제 : Window10
* DB 버전 : Mariadb10.2.5
* Java 버전 : Java 1.8
작업 순서는 다음과 같다.
1. 프로젝트 설정
2. Maven 설정
3. Eclipse, JBoss 설치
4. *.cfg.xml 생성 및 설정
5. Console Configuration 설정
6. reveng.xml 생성 및 설정
7. Code Generator
8. 프로그램 작성
1. 프로젝트 설정
1.1 Project 명 : Hibernate5
1.2 Jre 설정 : JreSE-1.8
2. Maven 설정
2.1 'Hibernate5' 프로젝트 선택 후 우클릭 -> 'Configure' -> 'Convert To maven Project' 선택한다.
2.2 'Create new POM' 화면에서 그냥 Finish 버튼을 클릭한다.
2.3 pom.xml 파일이 생기는데 여기서 아래의 소스 <dependencies> ..... </dependencies>여기 내용을 복사하여 붙여 넣는다.
<version>....</version>
<dependencies>
<dependency>
<groupId>mysql</groupId><!--mysql 접속을 위한 lib(jar) -->
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId> <!--hibernate5 lib(jar) -->
<artifactId>hibernate-core</artifactId>
<version>5.2.8.Final</version>
</dependency>
</dependencies>
<build>......</build>
2.4 'Hibernate5' 프로젝트명을 클릭 후 우클릭 -> [Run as] -> [Maven Build] 클릭한다.
2.5 프로젝트에 [Maven Dependencies] 가 생성되어 관련 lib(jar)가 프로젝트에 자동으로 추가된다.
3. Eclipse, JBoss 설치
3.1 [Eclipse] -> [Help] -> [Eclipse Marketplace] 클릭
3.2 검색란에 JBoss 검색 후 설치 한다.
3.3 제대로 설치가 되었다면 [Eclipse - Window - Perspective - Open Perspective - Others ...]에 Hibernate 가 있을것이다.
4. *.cfg.xml 생성 및 설정
4.1 Hibernate 창을 오픈한 뒤 Hibernate Configurations 이 있는걸 확인해보자.
4.2 프로젝트를 우클릭하여 New - Hibernate Configuration File(cfg.xml) 을 클릭한다.
4.3 생성될 위치를 선택한 후(난 프로젝트/src로 했다) Next 클릭. 후 Finish 버튼을 누른다.(밑에 내용 붙여넣기 위해 패스)
4.4 그럼 생성된 cfg.xml 파일을 열어 Source 탭으로 이동한다.
4.5 Source 탭에서 아래의 내용을 복사 붙여 넣기 한다.
<session-factory >
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://DB주소:3306/DB명</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">비밀번호</property>
<property name="hibernate.connection.pool_size">10</property>
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.current_session_context_class">thread</property>
</session-factory>
4.6 DB주소, 포트,DB명,아이디,비밀번호를 수정하자.
5. Hibernate Console Configuration 설정
5.1 Name : 적당히 .... 맘에드는걸로..
5.2 Main 탭의 Type 은 Core로, Hibernate Version은 5.2(17.4.11 - 최신버전)
5.3 Project에는 Hibernate 적용하고자 하는 프로젝트
5.4 Database connection은 [Hibernate configured connection] 선택
5.5 Property file 은 패스~
5.6 Configuration file 은 4번에서 만든 *.cfg.xml 선택
5.7 Finish 버튼 클릭~!
6. reveng.xml 생성 및 설정
6.1 Open Perspective 창에서 Hibernate 를 클릭 한 뒤 -> 프로젝트 우클릭 -> New -> Hibernate Reverse Engine File(reveng.xml) 클릭 한다.
6.2 reveng.xml 이 생성될 위치를 선택한 후 Next.
6.3 Console configuration 에서 5번에서 만든 Console 파일 선택
6.4 왼쪽 Database schema 밑의 Refresh 버튼 누르면 Db의 Table 목록이 나온다.
6.5 Hibernate로 적용하여 클래스 생성할 table을 Database schema 에서 선택 후 Include 버튼을 누른다.
6.6 끝나면 Finish 버튼
7. Code Generator
7.1 메뉴에 존재하는 Code Generator 를 클릭하자
7.2 Hibernate Code Generation Configurations ... 을 클릭!
7.3 Hibernate Code Generation 을 더블 클릭하면 Run Program의 속성 정보가 뜬다.
7.4 아래의 사진과 같이 설정하자
7.5 Run 버튼 클릭
8. 프로그램 작성
아래 소스 코드를 복사 붙여넣기 하여 활용하자.
*.cfg.xml 파일 위치를 잘 알고 입력하자. (src 밑에 두면 아래 소스처럼 입력하면 된다.)
import org.hibernate.SessionFactory;
import org.hibernate.boot.Metadata;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.service.ServiceRegistry;
public class HibernateUtil {
private static final SessionFactory sessionFactory;
private static ServiceRegistry serviceRegistry;
static {
try {
StandardServiceRegistry standardRegistry =
new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build();
Metadata metaData = new MetadataSources(standardRegistry).getMetadataBuilder().build();
sessionFactory = metaData.getSessionFactoryBuilder().build();
} catch (Throwable th) {
System.err.println("Enitial SessionFactory creation failed" + th);
throw new ExceptionInInitializerError(th);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
public static void main(String[] args){
try{
SessionFactory sessFact = HibernateUtil.getSessionFactory();
Session session = sessFact.getCurrentSession();
org.hibernate.Transaction tr = session.beginTransaction();
MyTable a = new MyTable (88); // 자동으로 만들어진 Table을 이와 같이 선언하여
a.setData("999a");
session.save(a); //session에 저장하고
tr.commit(); // commit 하면 끝
System.out.println("Successfully inserted");
sessFact.close();
}catch(Exception e){
System.out.println(e.getMessage());
}finally{
}
}
'DB&Hibernate' 카테고리의 다른 글
SDB table DDL 스키마 쿼리(Mysql, Mariadb 용) (0) | 2017.12.26 |
---|---|
Hibernate에서 sql error 1064 sqlstate 42000 나는 경우... (0) | 2017.12.12 |
mssql 2012 테이블 리스트 (0) | 2016.08.31 |
[mysql] column 개수 확인하는 방법 (0) | 2011.12.10 |
[DB] Unable to convert MySQL date/time value to System.DateTime (0) | 2011.05.24 |