38

chapter 07 : CMP 2.0

  • Upload
    masao

  • View
    40

  • Download
    6

Embed Size (px)

DESCRIPTION

chapter 07 : CMP 2.0. 학습목표. CMP 2.0 개요 EJB-QL select 메소드. EntityBean 개요. CMP 작업 순서 탐색기에 작업 디렉토리 생성 소스파일 작성 ( 2 개의 interface, 1 개의 빈 클래스 ) 컴파일 작업 설정파일 ( xml 파일 ) 작성 jar 파일로 압축 클라이언트 컴파일용 jar 파일 작성 클라이언트 소스파일 작성 컴파일 배치 ( Deployment ) 실행. - PowerPoint PPT Presentation

Citation preview

Page 1: chapter 07  : CMP 2.0
Page 2: chapter 07  : CMP 2.0

chapter 07chapter 07 : :

CMP 2.0CMP 2.0

Page 3: chapter 07  : CMP 2.0

학습목표학습목표

CMP 2.0 CMP 2.0 개요개요

EJB-QL EJB-QL

select select 메소드메소드

Page 4: chapter 07  : CMP 2.0

EntityBean EntityBean 개요개요

CMP CMP 작업 순서작업 순서

탐색기에 작업 디렉토리 생성탐색기에 작업 디렉토리 생성

소스파일 작성 소스파일 작성 ( 2( 2 개의 개의 interface, 1interface, 1 개의 빈 클래스개의 빈 클래스 ))

컴파일 작업컴파일 작업

설정파일 설정파일 ( xml ( xml 파일 파일 ) ) 작성작성

jar jar 파일로 압축파일로 압축

클라이언트 컴파일용 클라이언트 컴파일용 jar jar 파일 작성파일 작성

클라이언트 소스파일 작성클라이언트 소스파일 작성

컴파일컴파일

배치 배치 ( Deployment )( Deployment )

실행실행

Page 5: chapter 07  : CMP 2.0

EntityBean EntityBean 개요 개요 - CMP- CMP

spec.spec.

Home InterfaceHome Interface 에는 반드시 에는 반드시 findByPrimaryKey( String pk) findByPrimaryKey( String pk)

메소드가 필요하다메소드가 필요하다 . .

선언만 하고 빈클래스에서 구현할 필요가 없다선언만 하고 빈클래스에서 구현할 필요가 없다 ..

빈 클래스에서는 가상 지속성 필드를 선언해야 한다빈 클래스에서는 가상 지속성 필드를 선언해야 한다 ..

( setter , getter ( setter , getter 메소드를 추상메소드로 선언해야 한다메소드를 추상메소드로 선언해야 한다 . ). )

빈의 클래스를 추상클래스로 선언한다빈의 클래스를 추상클래스로 선언한다 ..

테이블 생성 및 테이블 생성 및 SQL SQL 작업은 빈클래스가 아닌 작업은 빈클래스가 아닌 builder builder 툴에서툴에서

작업한다작업한다 ..

Page 6: chapter 07  : CMP 2.0

작성 방법작성 방법

2 2 개의 인터페이스를 작성한다개의 인터페이스를 작성한다 ..

EntityBeanEntityBean 을 구현한 을 구현한 1 1 개의 클래스를 작성한다개의 클래스를 작성한다 ..

소스 파일 작성소스 파일 작성

인터페이스 작성인터페이스 작성

Home Interface Home Interface javax.ejb.EJBHome javax.ejb.EJBHome 인터페이스를 상속받는다인터페이스를 상속받는다 ..

빈의 생성빈의 생성 // 소멸소멸 // 검색 작업관련검색 작업관련 ..

Component InterfaceComponent Interface javax.ejb.EJBObject javax.ejb.EJBObject 인터페이스를 상속받는다인터페이스를 상속받는다 ..

비즈니스 메소드 작업관련비즈니스 메소드 작업관련 ..

빈 클래스 작성빈 클래스 작성

javax.ejb.EntityBean javax.ejb.EntityBean 인터페이스를 구현한다인터페이스를 구현한다 ..

Home Interface Home Interface 선언된 추상 메소드를 구현한다선언된 추상 메소드를 구현한다 ..

Component Interface Component Interface 선언된 추상 메소드를 구현한다선언된 추상 메소드를 구현한다 ..

Page 7: chapter 07  : CMP 2.0

소스 파일 작성소스 파일 작성

<<Home Interface>>

<<EJBHome>>

UserBean

<<EntityBean>>

<<Component Interface>>

<<EJBObject>>

: 빈의 생성 , 검색 , 삭제 관련 작업

: 빈의 비즈니스 로직 관련 작업

: Home Interface 메소드 구현 . Component Interface 메소드 구현 . SessionBean Interface 메소드 구현 .

Page 8: chapter 07  : CMP 2.0

빈 생성 실습 예제빈 생성 실습 예제

Page 9: chapter 07  : CMP 2.0

빈 생성 실습 예제빈 생성 실습 예제

<<AppUserHome>>

<<EJBHome>>

AppUserEJB

<<EntityBean>>

<<AppUser>>

<<EJBObject>> : 빈의 비즈니스 로직 관련 작업

: EntityBean 인터페이스 callback 메소드 구현

Page 10: chapter 07  : CMP 2.0

빈 생성 실습 예제빈 생성 실습 예제

소스 작성소스 작성

Page 11: chapter 07  : CMP 2.0

빈 생성 실습 예제빈 생성 실습 예제

Page 12: chapter 07  : CMP 2.0

빈 생성 실습 예제빈 생성 실습 예제

컴파일컴파일

설정파일설정파일 ( xml( xml 파일 파일 ) ) 작성작성

Page 13: chapter 07  : CMP 2.0

빈 생성 실습 예제빈 생성 실습 예제

Page 14: chapter 07  : CMP 2.0

빈 생성 실습 예제빈 생성 실습 예제

BMP 용

EJB-QL에서 사용 .

Page 15: chapter 07  : CMP 2.0

빈 생성 실습 예제빈 생성 실습 예제

Jar Jar 파일 작성파일 작성

클라이언트 실행클라이언트 실행

Page 16: chapter 07  : CMP 2.0

빈 삭제 실습 예제빈 삭제 실습 예제

Page 17: chapter 07  : CMP 2.0

빈 삭제 실습 예제빈 삭제 실습 예제

소스 작성소스 작성

Page 18: chapter 07  : CMP 2.0

빈 삭제 실습 예제빈 삭제 실습 예제

설정파일 설정파일 ( xml ( xml 파일 파일 )) 작성작성

Jar Jar 파일 작성파일 작성

서버실행 과 클라이언트 실행서버실행 과 클라이언트 실행

Page 19: chapter 07  : CMP 2.0

빈 수정 실습 예제빈 수정 실습 예제

Page 20: chapter 07  : CMP 2.0

빈 수정 실습 예제빈 수정 실습 예제

동기화 동기화 ( Synchronization )( Synchronization )

엔티티빈의 멤버변수 값과 데이터베이스의 레코드 값이 엔티티빈의 멤버변수 값과 데이터베이스의 레코드 값이

항상 일치되어야 한다항상 일치되어야 한다 ..

ejbLoad ejbLoad 메소드와 메소드와 ejbStore ejbStore 메소드가 동기화 작업을 자동메소드가 동기화 작업을 자동

으로 설정한다으로 설정한다 . .

DB

EntityBeanClient

ejbLoad()

빈수정 ()

빈수정 ()

ejbStore()

SELECT

UPDATE

Page 21: chapter 07  : CMP 2.0

소스 작성소스 작성 빈 수정 실습 예제빈 수정 실습 예제

Page 22: chapter 07  : CMP 2.0

빈 수정 실습 예제빈 수정 실습 예제

설정파일 설정파일 ( xml ( xml 파일 파일 ) ) 작성작성

Jar Jar 파일 작성파일 작성

서버 실행 및 클라이언트 실행서버 실행 및 클라이언트 실행

Page 23: chapter 07  : CMP 2.0

빈 검색 실습 예제빈 검색 실습 예제

Page 24: chapter 07  : CMP 2.0

specspec

Home Interface Home Interface 에서 에서 findXXX( args ) findXXX( args ) 이용한다이용한다 ..

finder finder 메소드는 빈 클래스에서 구현하지 않는다메소드는 빈 클래스에서 구현하지 않는다 ..

builder builder 툴에서 툴에서 EJB-QL EJB-QL 를 이용하여 작성한다를 이용하여 작성한다 . .

EJB-QLEJB-QL 에서 사용하는 테이블 이름은 에서 사용하는 테이블 이름은

Abstract Schema name Abstract Schema name 을 이용한다을 이용한다 ..

빈 검색 실습 예제빈 검색 실습 예제

single finder single finder

검색 결과가 하나의 레코드인 경우검색 결과가 하나의 레코드인 경우

예예 > findByPrimaryKey( pk ) > findByPrimaryKey( pk )

multiple finder multiple finder

검색 결과가 여러 개의 레코드인 경우검색 결과가 여러 개의 레코드인 경우

예예 > findByAll() , findByName( name ) , findByAllName()> findByAll() , findByName( name ) , findByAllName()

Page 25: chapter 07  : CMP 2.0

특징특징 SQLSQL 문은 문은 DBMS DBMS 마다 종속적이다마다 종속적이다 ..

( ( 각 각 vendor vendor 마다 확장된 기능의 마다 확장된 기능의 SQL SQL 지원 지원 ))

EJB-QL EJB-QL 은 은 DBMSDBMS 에 독립적이다에 독립적이다 ..

EJB-QLEJB-QL 은 특정 은 특정 DBMSDBMS 에 최적화된 에 최적화된 SQLSQL 문 지원이 어렵다문 지원이 어렵다 ..

EJB-QLEJB-QL

기본 문법 기본 문법

SELECT OBJECT ( o ) FROM SELECT OBJECT ( o ) FROM 추상스키마이름 추상스키마이름 As oAs o

SELECT OBJECT ( o ) FROM SELECT OBJECT ( o ) FROM 추상스키마이름 추상스키마이름 oo

SELECT OBJECT (o) FROM SELECT OBJECT (o) FROM 추상스키마이름 추상스키마이름 o WHERE o WHERE

o.name = ?1o.name = ?1

SELECT o.pass FROM SELECT o.pass FROM 추상스키마이름 추상스키마이름 As o WHERE As o WHERE

o.name = ?1 AND o.id = ?2o.name = ?1 AND o.id = ?2

Page 26: chapter 07  : CMP 2.0

소스 작성 과 컴파일소스 작성 과 컴파일 빈 검색 실습 예제 – 빈 검색 실습 예제 – single findersingle finder

설정파일설정파일 ( xml ( xml 파일 파일 ) ) 작성작성

Page 27: chapter 07  : CMP 2.0

빈 검색 실습 예제빈 검색 실습 예제

Page 28: chapter 07  : CMP 2.0

Jar Jar 파일 작성파일 작성 빈 검색 실습 예제빈 검색 실습 예제

클라이언트 작성클라이언트 작성

Page 29: chapter 07  : CMP 2.0

실행실행 빈 검색 실습 예제빈 검색 실습 예제

Page 30: chapter 07  : CMP 2.0

소스 작성소스 작성 빈 검색 실습 예제 – 빈 검색 실습 예제 – multiple findermultiple finder

설정파일설정파일 ( xml ( xml 파일 파일 ) ) 작성작성

Page 31: chapter 07  : CMP 2.0

Jar Jar 파일 작성파일 작성 빈 검색 실습 예제빈 검색 실습 예제

클라이언트 작성클라이언트 작성

Page 32: chapter 07  : CMP 2.0

실행실행 빈 검색 실습 예제빈 검색 실습 예제

Page 33: chapter 07  : CMP 2.0

select select 메소드 실습 예제메소드 실습 예제

Page 34: chapter 07  : CMP 2.0

특징특징

빈 클래스에서 빈 클래스에서 ejbSelectXXX( args ) ejbSelectXXX( args ) 이름으로 추상 메소드로 이름으로 추상 메소드로 선언한다선언한다 ..

예예 > ejbSelectName( String key )> ejbSelectName( String key )

반드시 반드시 FinderException FinderException 을 선언한다을 선언한다 ..

builder builder 툴에서 툴에서 EJB-QL EJB-QL 을 이용하여 작성한다을 이용하여 작성한다 ..

select select 메소드 사용은 메소드 사용은 Home Home 메소드 또는 메소드 또는 Component Component 메소드에서 사용한다메소드에서 사용한다 ..

select select 메소드 실습 예제메소드 실습 예제

Page 35: chapter 07  : CMP 2.0

실습실습

select select 메소드 실습 예제메소드 실습 예제

Page 36: chapter 07  : CMP 2.0

select select 메소드 실습 예제메소드 실습 예제

설정파일설정파일 ( xml ( xml 파일 파일 ) ) 작성작성

클라이언트 작성클라이언트 작성

Page 37: chapter 07  : CMP 2.0

실행실행

Home Home 메소드 실습 예제메소드 실습 예제

Page 38: chapter 07  : CMP 2.0

공부한 내용공부한 내용

CMP 2.0 CMP 2.0

EJB-QL EJB-QL 사용법사용법