본문 바로가기

Framework/Hibernate

(9)
PK 두개 이상시 매핑 위와 같은 PK(Primary Key)가 두개인 테이블이 있습니다. 이 테이블을 매핑시켜봅시다. PK가 하나일때는 태그를 써서 쓰면 되지만, 두개일때는 태그를 사용합니다. 코드 언어 코드 설명 그리고 클래스 파일은 Serializable 인터페이스를 구현해야 한답니다.... package model; import java.io.Serializable; public class Code implements Serializable { private static final long serialVersionUID = -14882784587978705L; private String code; // PK1 private String lang; // PK2 private String codeDesc; // getter..
Reverse Engineering 이미 만들어져 있는 데이터베이스의 테이블을 이용해 java 파일과 매핑 xml 파일을 생성시켜봅시다~ 일단 http://antop.tistory.com/53 에서 아래 3단계까지는 하셔야 합니다 ㅎㅎ - 하이버네이트 플러그인 설치 - 하이버네이트 라이브러리 세팅 - 하이버네이트 기본 설정파일 작성 설정파일(hibernate.cfg.xml)까지 만들었으면 File - New - Other... - Hibernate - Hibernate Console Configuration - Next 하이버네이트 콘솔 정보는 hibernate.cfg.xml 설정 파일을 사용합니다. 하이버네이트 콘솔이 뭐냐... 하면 하이버네이트 플러그인을 설치하면 볼 수 있는 Hibernate Perspective 에서 사용하는 데이터..
Hibernate 시작하기 하이버네이트를 시작하기 위한 기본설정을 해봅시다. Eclipse Galileo Java 1.6.0_16 Tomcat 6.0.14 http://www.hibernate.org 에서 라이브러리와 플러그인을 다운로드 받습니다. 왼쪽 메뉴에서 'Download' 를 클릭 후 zip 파일을 다운로드 합니다. 하이버네이트 플러그인(Hibernate Tools)은 이클립스 플러그인 설치를 이용해서 합니다. 업데이트 주소는 하이버네이트 홈페이지에서 HIBERNATE Tools 부분에 링크 되어있습니다. 업데이트 주소 : http://download.jboss.org/jbosstools/updates/stable 플러그인이 잘 설치 되었습니다... ㄷㄷ; 이제 하이버네이트를 하기위한 최소한의 라이브러리를 세팅합시다. 다..
Criteria 사용하여 질의 하기 #2 JOIN http://docs.jboss.org/hibernate/stable/core/api/org/hibernate/Criteria.html 부서와 사원의 1:n 관계에 JOIN 쿼리를 날려봅시다. 원래 하이버네이트에서는 매핑을 잘 맺어주면, 단순 getter 로도 관계를 가지는 테이블의 내용을 가져올 수 있습니다. Criteria crit = sess.createCriteria(Emp.class); List emps = crit.list(); int size = emps.size(); for(int i=0 ; i < size ; i++) { Emp emp = emps.get(i); Dept dept = emp.getDept(); String empName = emp.getName(); String ..
Criteria 사용하여 질의 하기 #1 Hibernate에서는 HQL에 익숙하지 못하거나 HQL 작성시 발생할 수 있는 오타로 인한 오류를 최소화 하기 위해 org.hibernate.Criteria API를 사용할 수 있도록 합니다. Creteria API 호출을 통해 특정 객체에 대한 조회가 가능하고 org.hibernate.criterion.Restrictions API 호출을 통해 WHERE문에 해당하는 기본 조회 조건을 정의할 수 있습니다.. 쉽게 말해서 select 쿼리입니다. 우편번호 데이터(50353건)로 여러가지 조회를 해봅시다! (Type 4 사용) package com.tistory.antop; public class Zipcode { // 데이터 순서(5) private int seq; // 우편번호(7) private S..
다대다(n:m) 관계 설정하기 이번에는 사람과 세미나 사이의 다대다(n:m) 관계를 설정해보겠습니다. ^^;; 사람은 여러개의 세미나를 등록할 수 있고, 세미나는 여러 사람이 올 수 있죠~ Java 1.6.0_15 Eclipse 3.5 Hibernate 3.3.2.GA Apache Tomcat 6.0.18 MySQL 5.1 (HSQLDB 1.9.0 rc4) 사람(Person)과 세미나(Person) 을 매핑 합시다~ Person.java package com.tistory.antop; public class Person { private int seq; private String name; private Gender gender; private enum Gender { 남, 여 } // constructor, getter and se..
일대다(1:n) 관계 설정하기 전 포스핑에서 1:1 관계를 설정해봤습니다. 테스트 업무는 고객(cutomer)이 문의(support)를 올리고, 관리자가 그 문의에 답변(reply)을 다는 업무입니다. 고객은 문의를 여러번 할 수 있고, 관리자는 그 문의에 여러번 답변할 수 있습니다. Java 1.6.0_15 Eclipse 3.5 Hibernate 3.3.2.GA Apache Tomcat 6.0.18 MySQL 5.1 (HSQLDB 1.9.0 rc4) 먼저 아무 관계가 없는 매핑을 만들어 봅시다. Customer.java package com.tistory.antop; public class Customer { private String id; private String name; private String pwd; private S..
일대일(1:1) 관계 설정하기 바로전 포스트에서 아주 기본적인 하이버네이트 매핑하는 걸 했었는데... 이번에는 이 매핑된 클래스끼리 관계 설정하는 것을 해보겠습니다!! 두개의 테이블이 PK(Primary Key)와 FK(Foreign Key)로 관계(Relation)가 형성되어 있는데 ORM(Object-Relational Mapping) 이랍시고 클래스와 매핑 시켰는데 테이블간의 관계를 클래스에서 제대로 사용할 수 없다면 쓰나 마나겠죠... -_-/ 먼저 일대일(1:1) 관계를 해봅시다. Java 1.6.0_15 Eclipse 3.5 Hibernate 3.3.2.GA Apache Tomcat 6.0.18 MySQL 5.1 (HSQLDB 1.9.0 rc4) 먼저 일단 기본적인 클래스와 매핑 XML 을 만듭니다.(1:1관계가 설정 안된..