2014년 3월 9일 일요일

Hibernate

Hibernate은 ORM(Object-relational mapping) 프레임워크라고 부르는 프레임워크의 한 종류입니다.

많이 사용하는 iBatis도 같은 부류의 프레임워크입니다.

ORM 이란 객체와의 관계를 맵핑시킨다는 뜻인데,

객체와 DB 정보의 관계를 맵핑시켜, 좀더 효율적으로 데이타를 처리하고자 하는

프레임워크입니다.


OR mapping툴

자바의 객체 와 데이터베이스 관계형 객체 를 매핑하는 툴입니다.
책보는 것이 아마 나을텐데, 국내서는 딱한권 책이 나왔죠. 얼마전에...

간단히 아래와 같은 의미 인데,
자바BEAN(POJO) <---> 테이블

다른 O/R툴과 차별되는 것이 조인되는 부분까지 매핑할 수 있습니다.

자바
class A
 private List<B> bs;

테이블
Tabe B
..

Table A
..
fk a_Id

그리고 사용할 때 아래와 같은 식으로 조인된 B테이블 정보까지 얻을 수있음.
ADao.load(pk).getBs()

일 반 RDB를 XML DB처럼 사용하게 하는 것이죠. Hibernate기술보다는 UML의 클래스다이어그램/DB설계가 중요하죠. 그것 제대로 하고 보조툴이, 유틸클래스 만들면 , select,update,insert,delete,외부조인은 손델 필요가 없죠. 다만, 데이터 대량 대량처리 대량 데이터복사갱신프로그램, 데이터의 구조와 관계없는 레포트프로그램은 JDBC사용하는 것이 좋습니다.

데이터베이스 프로그램 작성시 고려할 사항이 이미 구현되어있고, 유연하게 적용할 수 있습니다.
베타제어; A유저가 C데이터갱신, B유저가 재빨리 C데이터 갱신.
복합키; cpk객체를 생성하는 방식
UML컴포지션관계; 주소1,주소2,주소3
예열형; 1.남자 2.여자

관련툴/기술
Middlegen IDE; 이미 존재하는 DB스키마 정보를 뽑아서 하이버네이트 매핑화일 생성
ArgoUML; 클래스 다이어그램을 그리고, 하이버네이트 매핑화일 생성
안드로메다MDA; 자동화(이건 개념이 아주 방대함)

Spring; 오픈소스JEE(트랜젝션관리, 하이버네이트와 유연하게 연결시킬 수 있음.)
추천웹프레임형태
Spring Webflow + Spring DI + Spring Test+ Hibernate
추천콘솔/SWT어플리케이션
Spring DI + Hibernate / Spring JDBC


댓글 없음:

댓글 쓰기