Skip to end of metadata
Go to start of metadata

 

 

개요 


본 문서는 Hibernate, Hibernate+Spring 환경에서 Altibase와 연동하는 방법에 관해 기술한다.

Altibase를 위한 dialect인 AltibaseDialect 클래스를 포팅하는 방법을 설명한다.

 

 

Icon

이 문서와 관련된 오류 및 개선사항은 기술지원포털 또는 기술지원센터로 문의주시기 바랍니다.

Icon

이 문서는 정보 제공을 목적으로 제공되며, 사전에 예고 없이 변경될 수 있습니다. 이 문서는 오류가 있을 수 있으며, 상업적 또는 특정 목적에 부합하는 명시적, 묵시적인 책임이 일절 없습니다.

이 문서에 포함된 Altibase 제품의 특징이나 기능의 개발, 발표 등의 시기는 Altibase 재량입니다.

Altibase는 이 문서에 대하여 관련된 특허권, 상표권, 저작권 또는 기타 지적 재산권을 보유할 수 있습니다.

 

 

Hibernate 개요


본 장에서는 Hibernate의 개념과 특징, 다운로드 및 사용 방법에 대해 간단히 살펴보도록 한다.

 

Hibernate란?


Hibernate란 프로그래머가 DBMS를 보다 편리하게 사용할 수 있게 해주는 ORM(Object Relational Mapping) 프레임워크로서 DBMS 테이블과 Java 객체와의 관계를 매핑시켜 persistence logic 처리를 도와주는 역할을 한다. 즉, Hibernate를 이용하면 DBMS의 테이블과 Java Persistence Object(JavaBean)를 매핑시켜 DBMS 에 CRUD(삽입, 조회, 수정, 삭제) 를 위한 DML을 쉽게 수행 할 수 있다.

다음은 Hibernate Architecture를 나타내는 그림이다.

Data Access Layers

 

Hibernate의 더욱 자세한 아키텍처는 아래 사이트에서 참고할 수 있다.

http://www.hibernate.org

 

Hibernate 다운로드


Hibernate를 사용하기 위해서 Hibernate 관련 jar 파일이 필요하다. 이 jar 파일은 http://hibernate.org/orm/releases/5.4/ 사이트에서 다운로드 받을 수 있다. 다운로드 한 파일을 압축 해제하면 여러 디렉토리가 있으며, 특히 lib 디렉토리의 하위 디렉토리 내에 여러 가지 jar 파일들이 존재하는데 이 파일들을 이용하여 Hibernate와 연동한다.

본 문서에서는 Hibernate 5.4.8 버전을 사용하였으며 이 버전의 압축을 푼 디렉토리의 이름은 'hibernate-release-5.4.8.Final'이다.

 

 

Hibernate를 이용한 sample 작성


Hibernate를 이용하여 DBMS와 연동하기 위해서는 hibernate-configuration XML 파일과 hibernate-mapping XML 파일을 작성해야 한다.

  • hibernate-configuration XML : DBMS와 연동하기 위한 접속 정보 및 고유 기능을 사용하기 위한 dialect를 정의 파일
  • hibernate-mapping XML : Java Persistence Object와 DBMS 테이블 간의 매핑을 정의한 파일

 

본 장에서는 hibernate-configuration XML 파일, hibernate-mapping XML 파일을 작성하는 방법과 응용 프로그램에서 이 파일을 이용하여 실제로 DML 수행하는 방법에 대해 설명한다.

Sample 프로그램을 작성하는 자세한 방법은 부록을 참고한다.

 

hibernate-mapping 파일 작성 


hibernate-mapping XML 파일은 DBMS 테이블과 Java Object 사이의 매핑 정보를 담고 있는 설정 파일이다.

다음은 person 테이블과 Person 클래스 간의 매핑을 정의한 hibernate-mapping XML 파일을 작성한 예제이다.

Person.hbm.xml
  • <class> 태그를 이용해 Java 클래스와 DBMS 테이블, 그리고 <property> 태그에 테이블의 컬럼과 이 컬럼에 대응하는 Java 변수에 대한 매핑을 지정한다.
  • Hibernate 버전에 따라 sequence 객체는 sequence_name 또는 sequence 로 param name 을 정의해야 한다.


각각의 태그에 대한 보다 자세한 설명은 http://www.hibernate.org 사이트를 참고한다.

 

hibernate-configuration 파일 작성


hibernate-configure 파일은 DBMS 연결을 위한 여러 가지 접속 정보와 고유 기능을 사용하기 위한 dialect 클래스 및 hibernate-mapping 파일들을 설정하는 파일이다.

다음은 hibernate-configuration 파일 예제이다.

Hibernate.cfg.xml
  • <session-factory> 태그 
    DBMS 접속 정보를 설정하고 dialect 프로퍼티에 연결하고자 하는 DBMS에 알맞은 dialect 클래스 이름을 명시한다.
  • <mapping resource> 태그 
    hibernate-mapping 파일들을 명시해준다.

각각의 태그에 대한 보다 자세한 설명은 http://www.hibernate.org 사이트를 참고한다.

 

응용 프로그램 작성


응용 프로그램에서 Session 객체를 이용하면 매핑 된 객체와 연동하여 DBMS 테이블에 DML을 수행할 수 있으며 방법은 다음과 같다.

  1. hibernate-configuraion 파일을 통해 SessionFactory 객체를 얻어온다.
  2. SessionFactory 객체를 통해 Session 객체를 얻어온다.
  3. Session 객체의 각 DML에 해당하는 메소드를 호출한다.

다음은 DBMS의 person 테이블에 데이터를 삽입, 변경, 삭제, 조회하는 응용프로그램이다.

AltibaseConnection의 PersonApp.java
  • 먼저 hibernate-configuration 파일을 읽어 들여 SessionFactory 객체를 얻어온다. 
    SessionFactory sessionFactory = new Configuration().configure("Hibernate.cfg.xml").buildSessionFactory();
  • 그리고 SessionFactory 객체를 통해 Session 객체를 얻어온다.
    Session session = sessionFactory.openSession();
  • 이후 각 DML에 해당하는 Session 클래스의 각각의 메소드를 호출한다. 
    session.save()
    session.update()
    session.delete()
    session.get()
    session.createCriteria()

각각의 태그에 대한 보다 자세한 설명은 http://www.hibernate.org 사이트를 참고한다.

 

 

Hibernate와 Altibase 연동


Hibernate에서 Altibase를 연동하기 위해서는 Altibase JDBC 드라이버를 설정하고 hibernate-configuration 파일에 Altibase를 위한 dialect 클래스를 지정해야 한다.

본 장에서는 Altibase에 특정되는 AltibaseDialect 클래스를 Hibernate jar 파일에 포함시키는 방법과 Altibase JDBC 드라이버를 얻는 방법, JDBC 드라이버를 설정하는 방법, hibernate-configuration 파일에 dialect를 설정하는 방법에 대해 설명한다. 또한, FailOver 기능을 사용하는 방법, 여러 버전의 Altibase를 연동하는 방법에 대해서도 살펴본다.

 

AltibaseDialect 클래스를 Hibernate jar 파일에 추가


DBMS 벤더는 제품의 특성에 맞는 비 표준 SQL을 제공할 수 있다.

Hibernate 에서는 비 표준 SQL문을 수행할 수 있도록 dialect 클래스를 제공하지만, Altibase를 위한 dialect 클래스를 기본적으로 제공되지 않는다.

배포된 Hibernate jar 파일에 Altibase 전용 dialect 클래스를 포함해야 Altibase에서 제공하는 여러 가지 비 표준 SQL(limit절, sequence 구문 등)을 사용할 수 있다.

Altibase 전용 dialect 클래스는 아래의 URL을 통해 제공하고 있다.

 

https://github.com/ALTIBASE/hibernate-orm/blob/master/ALTIBASE_DIALECT_PORTING.md

 

Hibernate 버전에 맞는 AltibaseDialect 클래스와 연관 파일을 다운로드 받은 후 Hibernate jar 파일에 포함시키는 방법은 다음과 같다.

 

  1. Hibernate jar 파일의 압축을 푼다.

    Hibernate jar 압축 풀기
  2. 배포되는 AltibaseDialect.java, AltibaseLimitHandler.java, SequenceInformationExtractorAltibaseDatabaseImpl.java 파일을 Hibernate jar 압축 푼 디렉토리에 위치하고, 컴파일 한다.

    AltibaseDialect 컴파일
  3. AltibaseDialect 클래스가 포함된 Hibernate jar를 생성한다.

    AltibaseDialect 포함하는 Hibernate jar
  4. 위에서 생성 된 hibernate-core-x.x.x.Final.jar  파일을 Hibernate jar 파일로 사용한다.

Altibase JDBC 드라이버를 구하는 방법


Altibase에서 제공하는 JDBC 드라이버는 Altibase.jar 파일이다. 이 파일은 Altibase가 설치되어있는 서버의 $ALTIBASE_HOME/lib 디렉토리에 위치한다.

Altibase v5 버전부터는 $ALTIBASE_HOME/lib 디렉토리에 Altibase.jar 파일과 Altibase5.jar 과 같이 메이저 버전을 같이 명기한 두 가지 파일을 제공한다.

Altibase.jar는 일반 JDBC 드라이버 파일이고, Altibase5.jar는 Altibase v5와 그 외의 버전을 함께 연동할 때 사용하는 JDBC 드라이버 파일이다. 따라서 하나의 Altibase와 연동하거나, 버전이 동일한 여러 대의 Altibase와 연동할 경우에 Altibase.jar 파일을 사용한다.

Altibase JDBC 드라이버를 사용하기 전 Altibase와 Altibase JDBC 드라이버 간 호환 여부를 확인해야 한다. Altibase의 통신 프로토콜 버전과 Altibase JDBC 드라이버의 통신 프로토콜(CMP) 버전을 비교하여 호환 가능 여부를 확인할 수 있다. 

 

  • Altibase JDBC 드라이버 버전을 확인하는 방법

    Altibase JDBC 드라이버 버전 확인 방법
  • Altibase의 통신 프로토콜 버전 확인 방법

    Altibase의 통신 프로토콜 버전 확인 방법

JDBC 드라이버를 설정하는 방법


Altibase JDBC 드라이버, Altibase.jar 파일을 classpath에 추가하거나 웹 서버의 적절한 디렉토리에 위치시킨다.

만약, Eclipse를 사용하여 개발한다면 다음과 같이 해당 프로젝트에 Altibase JDBC 드라이버를 추가할 수 있다.

프로젝트 – JRE System Library [J2SE-1.5] - Properties – Installed JREs – 항목 중 jre를 클릭 – Edit – Add External JARs 를 클릭하여 Altibase.jar를 추가한다.

 

hibernate-configuration 파일에 dialect를 설정하여 Altibase와 연동 


hibernate-configuration 파일의 <sessionFactory> 의 <property>태그를 이용하여 Altibase 연동을 위한 접속 정보와 dialect 클래스를 지정한다.

이 때, 정의된 각각의 속성은 다음과 같다.

속성
설명
connection.driver_class

Altibase JDBC driver class Name

connection.url

Altibase와 연결을 위한 접속 문자열 정보

connection.username데이터베이스 계정
connection.password데이터베이스 패스워드
dialect

AltibaseDialect 클래스이름


다음은 hibernate-configuration 파일에서 Altibase 접속 정보들을 설정하는 예제이다.

Hibernate.cfg.xml
  • Altibase 접속을 위한 프로퍼티 4가지를 설정한다.
    connection.driver_class
    connection.url
    connection.username
    connection.password 
  • dialect 프로퍼티에 AltibaseDialect 클래스를 지정한다.
  • hibernate-mapping 파일인 Person.hbm.xml 파일을 설정한다.

위의 AltibaseConnection 프로젝트를 실행하기 Hibernate 관련 jar 파일들과 Altibase.jar 파일이 필요하다.

 

FailOver를 이용한 Connection


Altibase v5.3.3 부터 FailOver를 지원하는데, FailOver 기능을 사용하기 위해서는 hibernate-configuration 파일의 connection.url 프로퍼티에 FailOver 관련 속성을 설정하면 된다.

다음은 FailOver를 이용하여 Altibase에 연결하는 예제이다.

FailoverSample의 Hibernate.cfg.xml 파일

 

위의 파일에 지정한 Connection url 부분에 정의하는 FailOver 관련 property는 다음과 같다.

Property
설명
AlternateServer

장애 발생시 접속하게 될 가용 서버를 나타내며 (IP Address1:Port1, IP Address2:Port2,...) 형식으로 기술한다.

ConnectionRetryCount가용 서버 접속 실패 시, 접속 시도 반복 횟수
ConnectionRetryDelay

가용 서버 접속 실패 시 다시 접속을 시도하기 전에 대기하는 시간(초 단위)

LoadBalance

on으로 설정하면 최초 접속 시도 시에 기본 서버와 가용 서버를 포함하여 랜덤으로 선택한다.

off로 설정하면 최초 접속 시도 시에 기본 서버에 접속하고 기본 서버로의 접속이 실패하면 AlternateServer로 기술한 서버에 접속한다.

SessionFailOver

STF(Service Time Fail-Over)를 사용할 것인지 설정한다. on : STF, off : CTF

CTF(Connection Time Fail-Over)는 DBMS 접속 시점에 장애를 인식하여 장애가 발생한 DBMS대신 다른 가용 노드의 DBMS로 접속을 재시도한다.

STF(Service Time Fail-Over)는 DBMS 서비스하는 도중에 장애를 감지하여 다른 가용 노드의 DBMS에 다시 접속하여 세션의 프로퍼티를 복구해 주어, 사용자 응용 프로그램의 업무 로직이 계속 수행될 수 있도록 하는 것을 의미한다.

STF는 DBMS접속에 대해서만 Fail-Over를 수행해 주기 때문에, 실패한 트랜잭션은 사용자에 의해 재처리되어야 한다.

 

위의 FailoverSample 프로젝트를 실행하기 위해서는 'hibernate-configuration 파일에 dialect를 설정하여 Altibase와 연동' 부분과 동일한 jar 파일들이 필요하다.

 

Altibase 2개의 버전을 동시에 접속


Altibase v5 부터는 하나의 어플리케이션에서 2개 이상의 버전을 동시에 연결할 수 있도록 Altibase v5 전용의 JDBC 드라이버를 제공한다. 이 드라이버를 이용하면 Altibase v5 – Altibase v7, Altibase v5 – Altibase v6 간 두 버전의 Altibase에 접속이 가능하다.

기존의 Altibase.jar와 구별하기 위해 별도로 Altibase v5 전용의 Altibase5.jar 가 필요하며, 각기 버전에서는 메이져 버전을 파일에 같이 명기하는 형태로 제공된다. 또한 hibernate-configuration 파일의 connection.driver_class 프로퍼티에 지정하는 JDBC 드라이버 클래스 이름도 기존의 Altibase.jdbc.driver.AltibaseDriver 대신 Altibase v5 전용의 Altibase5.jdbc.driver.AltibaseDriver과 같이 지정해야 한다.

Hibernate에서 다른 버전의 Altibase와 연동하기 위해서는 각 버전에 해당하는 hibernate-configuration 파일을 별도로 작성하여 응용 프로그램에서 각각의 hibernate-configuration 파일을 읽어오면 된다.

이 때 주의할 점은 응용 프로그램에서 Altibase5.jdbc.driver.AltibaseDriver를 먼저 로딩한 후에 Altibase.jdbc.driver.AltibaseDriver를 로딩해야 한다는 것이다.


다음은 Altibase.jar와 Altibase5.jar 파일을 이용하여 두 버전의 Altibase의 드라이버를 로딩하는 예제이다.

 

예) MultiVersionConnection의 Hibernate.Altibase5.cfg.xml 파일
Altibase v5 버전에 대한 설정

 

예) MultiVersionConnection의 Hibernate.Altibase7.cfg.xml 파일
Altibase v5 이외 버전에 대한 설정

예) MultiVersionConnection의 PersonApp.java파일
PersonApp.java


위의 PersonApp.java 예제를 보면 Altibase5.jdbc.driver.AltibaseDriver를 Altibase.jdbc.driver.AltibaseDriver보다 먼저 로딩하기 위해 Altibase5.jdbc.driver.AltibaseDriver를 connection.driver_class로 사용하는 Hibernate.Altibase5.cfg.xml 파일을 먼저 읽어오고 있다.

반드시 Altibase v5 전용의 드라이버를 먼저 로딩해야 한다는 것에 유의해야 한다.

 

Hibernate, Spring, Altibase 연동


Altibase와 연동하기 위해서 Hibernate의 설정에 접속 정보와 dialect를 지정해서 연결 할 수도 있고, Spring에 dataSource를 지정해서 연결할 수도 있다.

본 장에서는 이 두 방법을 이용하여 Altibase와 연동하는 방법에 대해 설명한다.

 

Spring에 dataSource를 설정하는 경우 


Hibernate와 Spring을 함께 사용하기 위해서는 다음의 과정이 필요하다.

 

  1. Spring의 applicationContext.xml 파일에 DBMS 연동을 위한 dataSource를 작성한다.
    dataSource를 설정하는 방법은『ALTIBASE_Spring_연동가이드』 문서를 참고하면 된다.
  2. applicationContext.xml 파일에 Hibernate의 sessionFactory bean을 지정해준다.
    이 때 <property name="dataSource">에 1 번에서 설정한 dataSource를 지정하고, < property name="mapping-resource”>에 hibernate-mapping 파일들을 지정한다. 그리고 <property name="hibernate Properties”>를 이용해 Hibernate에 관한 여러 가지 속성들을 정의한다.
  3. applicationContext.xml 파일에서 각각의 DAO bean에 SessionFactory bean을 참조하도록 설정해준다.
  4. DAO 클래스에서 설정한 SessionFactory 객체를 통해 Session 객체를 얻어와 각 DML에 해당하는 메소드들을 호출한다.

 

다음은 applicationContext.xml 파일에서 dataSource와 sessionFactory bean을 지정하는 예제이다.

SpringAltibaseConnection1 의 applicationContext.xml 파일

 

Spring 연동 시 필요한 jar 파일 

위의 예제 SpringAltibaseConnection1 프로젝트를 실행하기 위해서는 'hibernate-configuration 파일에 dialect를 설정하여 Altibase와 연동' 부분에서 필요했던 jar파일들뿐만 아니라 spring 관련된 jar 파일이 더 필요하다.

jar 파일의 자세한 디렉토리 위치는 『Altibase Spring 연동가이드』문서를 참고한다.

 

Hibernate 속성에 접속 정보를 설정하는 경우


Hibernate+Spring 환경에서 Hibernate에 접속 속성을 지정하여 연결할 경우에는 다음의 과정이 필요하다.

 

  1. applicationContext.xml 파일에 Hibernate의 SessionFactory bean을 지정해준다.
    < property name="mapping-resource”>에 hibernate-mapping 파일들을 지정한다. 그리고 <property name="hibernate Properties”> 태그 안에 접속 관련 정보 및 dialect 클래스를 정의한다.
  2. 각각의 DAO bean에 sessionFactory bean을 참조하도록 설정해준다.
  3. DAO 클래스에서 설정한 SessionFactory 객체를 통해 Session 객체를 얻어와 각 DML 에 해당하는 메소드들을 호출한다.

 

다음은 Hibernate에 접속 속성을 설정하여 Altibase와 연동하는 예제이다.

SpringAltibaseConnection2의 applicationContext.xml 파일

필요한 jar 파일

SpringAltibaseConnection2 예제를 실행하기 위해서는 'Spring에 dataSource를 설정하는 경우' 부분과 같은 jar 파일들이 필요하다.

 

Altibase의 ConnectionPool을 이용


Altibase에서 제공하는 AltibaseConnectionPoolDataSource 클래스를 사용하면 Altibase의 ConnectionPool을 이용할 수 있다.

만약, Hibernate + Spring 연동 환경이라면 Spring의 applicationContext.xml 파일에 AltibaseConnectionPoolDataSource 클래스를 이용하여 dataSource bean을 정의하면 된다. 하지만, Spring과 연동 없이 Hibernate만 사용한다면 Altibase의 ConnectionPool을 사용할 수 없다.


Altibase의 ConnectionPool을 이용하는 자세한 내용은 『 ALTIBASE_Spring_연동가이드 』문서를 참고하여 설정한다.

AltibaseConnectionPool의 applicationContext.xml 파일

필요한 jar 파일

AltibaseConnectionPool 예제를 실행하기 위해서는 'Spring에 dataSource를 설정하는 경우' 부분과 같은 jar 파일들이 필요하다.

 

Hibernate 연동 시 고려사항


Hibernate에서 Altibase 연동 시 고려해야 할 사항에 대해 설명한다.

 

Hibernate에서 트랜잭션 관리


Hibernate에서 트랜잭션을 처리할 때는 응용 프로그램에서 Session 클래스의 beginTransaction() 메소드를 호출한 후 Transaction 클래스의 commit() / rollback() 메소드를 호출하면 된다.

beginTransaction() 메소드를 호출할 때 자동으로 setAutoCommit(false)가 호출 되어 트랜잭션이 유지되고, 이 후 commit() / rollback() 메소드를 호출하면 해당 트랜잭션이 종료된다.

 

AltibaseConnection의 PersonApp.java 파일

LOB 데이터 처리


Hibernate에서 LOB을 처리하기 위해서 hibernate-mapping 파일에 컬럼과 변수의 mapping을 정의한 <property> 태그에 CLOB일 경우에는 type=“org.hibernate.type.StringClobType”, sql-type=”clob”으로 정의해주고,

BLOB일 경우에는 type= “org.hibernate.type. PrimitiveByteArrayBlobType”, sql-type=”blob”으로 정의해줘야 한다.

이를 지키지 않을 경우에 길이 제한에 의해 올바르지 않은 데이터를 입력하거나 잘못된 데이터를 질의할 수 있다. 또는 Invalid length 등의 에러가 발생할 수도 있다.


다음은 CLOB과 BLOB 타입의 데이터에 대한 <property>를 정의하는 예제이다.

LobSample의 LobSample.hbm.xml 파일

LOB 처리 시 반드시 주의해야 할 또 다른 사항은 Altibase는 LOB 데이터를 처리하기 위해서는 반드시 autocommit 모드를 false로 바꾼 후 트랜잭션을 관리해야 한다는 것이다.

Hibernate 연동 시 Session의 beginTransaction() 메소드를 호출하면 자동으로 setAutoCommit(false)를 해주기 때문에 LOB을 처리 하기 전 beginTransaction() 메소드를 호출해야한다.
Hibernate와 Spring을 함께 연동할 경우 Spring에서 트랜잭션을 관리해주더라도 aucocommit을 false가 적용되지 않을 수 있으므로 반드시 Java 응용 프로그램에서 beginTransaction() 메소드를 호출하는 방법을 권장한다.


만약 beginTransaction() 메소드를 호출하지 않았다면 다음과 같은 에러 및 현상이 발생할 수 있다.

  1. LOB 데이터 조회 시 
    null 값이 리턴 되거나, “java.sql.SQLException: [0]:LobLocator can not span the transaction 101858625.” 과 같은 에러가 발생
  2. LOB 데이터 입력 시 
    “java.sql.SQLException: [0]: Connection is in autocommit mode. One can not operate on LOB datas with autocommit mode on.” 에러가 발생

다음의 예제는 Hibernate에서 LOB을 처리하는 예제이다.

LobSample의 LobApp.java파일

 

필요한 Jar 파일

위의 LobSample 프로젝트를 실행하기 위해서는 'hibernate-mapping 파일에 dialect를 설정하여 Altibase와 연동' 부분과 같은 jar 파일들이 필요하다.

 

Procedure/Function 호출


Hibernate에서 DBMS에 생성한 Stored Procedure/Function 호출은 지원하지 않기 때문에 Session 객체를 통해 Connection 객체를 얻어와서 일반 JDBC에서 호출하는 방법처럼 CallableStatement를 이용해야 한다.

다음은 Stored Procedure/Function을 호출하는 예제이다.

예) ProcedureSample의 Procedure/Function 생성 구문
ProcedureSample의 Procedure/Function 생성 구문

 

예) ProcedureSample의 ProcedureApp.java
ProcedureSample의 ProcedureApp.java

 

필요한 Jar 파일

ProcedureSample 예제를 실행하기 위해서는 'hibername-mapping 파일에 dialect를 설정하여 Altibase와 연동'과 같은 jar 파일들이 필요하다.

 

NativeSQL 실행


SQL문 중 MOVE 구문은 Altibase에서만 제공하는 문장이다. 이렇게 특정 DBMS가 제공하는 특화된 기능을 실행하는 방법은 다음과 같다.

  1. hibernate-mapping 파일에 nativeSQL 구문을 작성한다.
  2. 응용 프로그램에서 session 객체의 getNamedQuery() 메소드를 호출하여 Query 객체를 얻어온다.
  3. Query 객체의 각각의 SQL문을 실행하는 메소드를 호출한다. (ex. executeUpdate(), list() 등)

다음은 MOVE 문을 실행하는 예제이다.

예) NativeSQL의 NativeSQL.hbm.xml 파일
NativeSQL의 NativeSQL.hbm.xml 파일

 

예) NativeSQL의 NativeSQLApp.java
NativeSQL의 NativeSQLApp.java

 

필요한 Jar 파일

NativeSQL 예제를 실행하기 위해서는 'hibername-mapping 파일에 dialect를 설정하여 Altibase와 연동' 부분과 같은 jar 파일들이 필요하다.

 

부록


AltibaseConnection 예제를 바탕으로 Hibernate에서 Altibase와 연동하는 방법에 대해 좀 더 자세하게 설명한다.

예제에서 개발 도구는 Eclipse를 사용한다.

 

DBMS 테이블 및 시퀀스 생성


DBMS에 다음의 테이블과 시퀀스를 생성한다. 

create_tbl.sql

프로젝트 생성


Eclipse에서 AltibaseConnection 이라는 프로젝트를 생성한다.

  1. 메뉴 – File – New - Java Project 클릭
  2. Project name : 에 AltibaseConnection 입력
  3. Finish 버튼을 클릭

hibernate-mapping 파일 작성


DBMS의 person 테이블과 Person 클래스 사이의 mapping 정보를 정의한 hibernate-mapping 파일을 작성한다.

  1. AltibaseConnection 프로젝트 – src 디렉토리에서 마우스 오른쪽 버튼 클릭하여 New – File을 클릭한다.
  2. File name: 에 Person.hbm.xml을 작성한다.

     

    다음의 내용을 Person.hbm.xml 파일에 작성한다.

     

    Person.hbm.xml

     

    person 테이블의 컬럼과 Person 클래스의 변수를 <property> 태그를 통해 각각 매핑한다.
    Java의 boolean 타입은 DBMS에서 지원하는 타입이 아니므로 0(false), 1(true)의 값으로 저장하도록 컬럼을 CHAR(1)의 타입으로 생성하였다.

hibernate-configuration 파일 작성


Altibase에 접속하기 위한 dialect를 정의하는 hibernate-configuration 파일을 작성한다. 

  1. AltibaseConnection 프로젝트 – src 디렉토리에서 마우스 오른쪽 버튼 클릭하여 New – File을 클릭한다. 
  2. File name: 에 Hibernate.cfg.xml을 작성한다.

 

Hibernate.cfg.xml

응용 프로그램 작성


  1. person 테이블에 대한 DO객체인 Person 클래스를 작성한다.

    1-1. AltibaseConnection 프로젝트의 src 디렉토리에서 마우스 오른쪽 버튼 클릭하여 New – Class를 클릭한다.
    1-2. Package: 에 examples.domain를 입력하고 Name: 에 Person를 입력한다.
     

    다음의 내용을 Person.java 파일에 작성한다.

    Person.java
  2. DBMS에 DML을 실행하는 main 프로그램을 작성한다.

    2-1. AltibaseConnection 프로젝트의 src 디렉토리에서 마우스 오른쪽 버튼 클릭하여 New – Class를 클릭한다.

    2-2. Name: 에 PersonApp를 입력한다.
     

    다음의 내용을 PersonApp.java 파일에 작성한다.

    PersonApp.java

필요한 jar 파일 추가


Altibase.jar와 hibernate 관련 jar 파일을 추가한다.

AltibaseConnection 프로젝트에서 마우스 오른쪽 버튼 클릭하여 Properties를 클릭 – Java Build Path – Libraries 에서 Add External JARS를 클릭하여 필요한 jar 파일들을 추가한다.

 

응용 프로그램 실행


AltibaseConnection 프로젝트를 실행한다.

AltibaseConnection 프로젝트를 클릭한 후 메뉴에서 Run을 실행하거나 Run 실행 단추를 클릭한다.

참고자료


1. 『 ALTIBASE 개발가이드

2. 『 JAVA 개발 가이드 』

3. 『 Altibase JBoss 연동가이드

4. 『 Altibase TOMCAT 연동가이드

5. 『 Altibase WebSphere 연동 가이드 』

6. 『 Altibase WEBLOGIC 연동가이드

7. 『 ALTIBASE Spring 연동가이드

8. 『 Altibase iBatis 연동가이드

 

 

Icon

 

 

 

  • No labels