otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/jc2005_b3... · 2005-04-14 · 11...

44
1 䉥䊤䉪䊦䈱⠨䈋䉎 䉥䊤䉪䊦䈱⠨䈋䉎 䉥䊤䉪䊦䈱⠨䈋䉎 䉥䊤䉪䊦䈱⠨䈋䉎 O/R䊙䉾䊏䊮䉫䈫䈲䋿 䊙䉾䊏䊮䉫䈫䈲䋿 䊙䉾䊏䊮䉫䈫䈲䋿 䊙䉾䊏䊮䉫䈫䈲䋿 Java Computing 2005 Spring ᣣᧄ䉥䊤䉪䊦ᩣᑼળ␠ ᣣᧄ䉥䊤䉪䊦ᩣᑼળ␠ ᣣᧄ䉥䊤䉪䊦ᩣᑼળ␠ ᣣᧄ䉥䊤䉪䊦ᩣᑼળ␠ 䊁䉪䊉䊨䉳䊷䊒䊨䉻䉪䊃ᛛⴚᧄㇱ 䊁䉪䊉䊨䉳䊷䊒䊨䉻䉪䊃ᛛⴚᧄㇱ 䊁䉪䊉䊨䉳䊷䊒䊨䉻䉪䊃ᛛⴚᧄㇱ 䊁䉪䊉䊨䉳䊷䊒䊨䉻䉪䊃ᛛⴚᧄㇱ 㒙ㇱ䇭ᙗᐘ 㒙ㇱ䇭ᙗᐘ 㒙ㇱ䇭ᙗᐘ 㒙ㇱ䇭ᙗᐘ

Upload: others

Post on 26-Mar-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

1

��������������������������������O/R�� ����� ����� ����� ���

Java Computing 2005 Spring

��������������������������������

��� ��� ���������� ��� ���������� ��� ���������� ��� �������

��������������������

Page 2: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

2

Agenda

� O/R��������

� �� O/R�����

- Oracle TopLink

�TopLink O/R�������

�TopLink ����

- ADF Business Components

� ���

Page 3: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

3

O/R����Object/Relational��������������������������������

� Java��DB�������� ���

� �����JDBC���������

- ���������� ��������

� O/R�������� !"#$%&'�()

- JDBC ��������JDBC ������

- Java���� !"#$%&'()�DB* +,

- -./�0�,�12�34567�8�9

AP���� ���������

O/R0:;��

<�=

Page 4: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

4

O/R����������������������������������������

� O/R���������� �����

- Java����������O/R��� �����

- O/R����������Java���������� !"#��JDBC�SQL�$%&'� ()*+,�-.��

� O/R�����������������������

- /012����3*45�67)�89:

- ������67)�89;)<=>9:

- ���?@�Java����ABC>9:

- ()*3DE�FG

- H-I09SQL�J�*�4K=L�:

- ()*�M��

- N)OP3Q���

- Lazy Loading

- RG)�S�M)�T��UV

- W�XY()FZ

- [\]^�_`

- ab�cdef…ggh/

Page 5: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

5

Agenda

� O/R��������

� �� O/R�����

- Oracle TopLink

�TopLink O/R�������

�TopLink ����

- ADF Business Components

� ���

Page 6: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

6

��������������������O/R������������

� ����������O/R� ����������

- Oracle TopLink - ���O/R�������

� POJO Plain Old Java Object�����������

� ����������DB������ �!"#"$����� Meet-in-the-Middle�%&"�����'()�

� *)+,�-.�/0��12�3�-4"5�%&"6�'(789

- ADF Business Components - SQL�:�;<=>?O/R�������

� @A>?SQLBCTransfer Object Value Object��DEFG

� :HIBCJKL�������FG��Transfer Object=�����

*1

TopLink

����� �����

����� �Transfer Object

��

SQL������ADF BC

�� ������Transfer Object������ !

Page 7: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

7

Agenda

� O/R��������

� �� O/R�����

- Oracle TopLink

�TopLink O/R�������

�TopLink ����

- ADF Business Components

� ���

Page 8: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

8

Oracle TopLink� �������O/R��� ���

- �������*1

� Java Developer’s Journal Readers’ Choice Awards: Best Java Persistence Architecture

� Editor’s Choice JavaWorld 2003 Award: Best Java Data Access Tool

� 2003 Java Pro Readers Choice Award: Best Java Data Access Tool or Driver

- ���� ����

� 1994����������Smalltalk��

� 1997��Java�����

� 2002������� !"#$%&'()

� ���DB�AP�������

- JDBC2.0*+�,$-.�/012DB

- 3452J2EE6789:;<=>�JTA?EJB@A�B;<�CDEF3G�

*1:��� http://www.oracle.com/appserver/toplink_award.html

Page 9: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

9

TopLink

JDBC

DB���

����

SQL/JDBC

TopLink����������������������������

DB

��������

JavaBeans

�����

TopLink�

�����

Mapping Workbench

Sessions Editor

���������

O/R�������

��� ������DB

������

����������

Page 10: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

10

Agenda

� O/R��������

� �� O/R�����

- Oracle TopLink

�TopLink O/R�������

�TopLink ����

- ADF Business Components

� ���

Page 11: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

11

����������������JavaBeans��������O/R������������

� TopLink������JavaBeans���� ���

- �� + setter/getter����

- EJB Entity Bean���� ���������

- �������������� !"#���

� POJO������

- Plain Old Java Object$%�&'Plain Ordinary Java Object(

Customer

id

name

email

public class Customer {public class Customer {public class Customer {public class Customer {

private Integer id;private Integer id;private Integer id;private Integer id;

private String name;private String name;private String name;private String name;

private String email;private String email;private String email;private String email;

public Customer() { }public Customer() { }public Customer() { }public Customer() { }

public String public String public String public String getNamegetNamegetNamegetName(){(){(){(){

return this.name;return this.name;return this.name;return this.name;

}}}}

public void public void public void public void setNamesetNamesetNamesetName(String name) {(String name) {(String name) {(String name) {

this.name = name;this.name = name;this.name = name;this.name = name;

}}}}

������������������������

}}}}

Page 12: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

12

TopLink����������������������������O/R��� ������ ������ ������ ���

� ���Direct-to-Field�����

- String VARCHAR�Integer NUMBER� ������������

� �������������

- 1�1�1������

-���

-� !"�#�$%�&����

� '()�*+,� �-./01

� ��2�������

-3!���

� String NUMBER� �456����

-789:;#&3!�

� <=String�2“Male”�”Female”/>?@?‘M’�’F’A2��BCDBDEFG

-# �(HI�J����

� KL�M2NOPQ�RS2/TUVWXY�KZ����

� >�[

-\]

� \]/^_B`JavaBeans�����

-��a !b&789:;#

� �9789:;#� /��a !bBCEF

-c!�;#&d�;���

� String� �d�;���RS/efDEF

- Aggregation�gh&gi�

� 1Q�f/KLJavaBeansD����

-KLf

� 1Q�JavaBeans/KL�fD����

Page 13: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

13

jkl�[�JavaBeansm����������/5VnnRSo��������f5

Order LineItem

id

orderDate

lineItems

id

product

quantity

1 *

CUSTOMER

ID NAME A_ID

ADDRESS

ID CITYSTREET

ORD

ID ORDERDATE

LINEITEM

ID QTYPROD O_ID

1�������� ��������� ����������� ����������� ����������� ��

Customer

id

name

address

Address

id

street

city

1 1

1����1 ������������ ������������ ������������ ������������

Address������

Vector����� ����

1������ �������������java.util.Collection�java.util.Map

�����������

TopLink����O/R���������������������������� – ����

Page 14: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

14

TopLink����O/R���������������������������� – ����

CustomerAddress

id

name

address

id

street

city

customer

1 1

1 1 Employee

id

name

manager

����������������������������������������� ���������� ���������� ���������� ���������

SALARY

ID SAL

EMPLOYEE

ID NAMEEmployee

id

name

salary

��������������������������������

EMPLOYEE

ID NAME START_DATE END_DATE

Aggregation����������������������������

Employee Period

id

name

period

startDate

endDate

1 1

CUSTOMER

ID NAME

ADDRESS

ID CITYSTREET

EMPLOYEE

ID NAME MGR_ID

Page 15: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

15

Employee

id

name

FullTimeEmp

salaly

ContractEmp

hourlyPay

EMPLOYEE

ID NAME TYPE SAL H_PAY����������������������������

EMPLOYEE

ID NAME TYPE

FULLTIME_EMP

ID SALARY

CONTRACT_EMP

ID H_PAY

2���������� ��

��������������������������������������

TopLink����O/R���������������������������� – ����

Single Table per Class Hierarchy

Joined Subclass

Page 16: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

16

GUI������������������������O/R���� ���� ���� ����

� Mapping Workbench�����O/R������

- GUI��������XML�� ������

- ��������������� �!�"�#�$%&

� GUI ���������Java��������������

- '()*�+,-.!�"�#/0�XML1234

$�56!�"�#/0�Java(7)8��9�����:;

TopLink Mapping Workbench

���������� � �� ������������ � �

���������������

Page 17: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

17

TopLink����O/R������������������������������������

� Mapping Workbench�����������

- Bottom-Up

� ���������JavaBeans� ������������ �JavaBeans��������������

- Top-Down

� ���JavaBeans�������� �������/�����

- Meet-in-the-Middle

� ���JavaBeans����������� – ��������������������������������

� Mapping Workbench����������� �

Bottom-Up Top-Down Meet-in-the-Middle

Page 18: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

18

Agenda

� O/R��������

� �� O/R�����

- Oracle TopLink

�TopLink O/R�������

�TopLink ����

- ADF Business Components

� ���

Page 19: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

19

����������������������������

� ������������� �����������������

� ������� !��"#�����$ !��"%�&'$()

- ��������JavaBeans�� ��������

- ������ ���������� !"#$

� �%&�'()�� *+��� ����� ,-�.

������������������������������������

������������

DB ��� ��� ��� ���

DB����������������������������

��������������������������������

����� ��������� ��������� ��������� ����

����� !"������ !"������ !"������ !"�

������������

��������������������������������������������

��������������������

Page 20: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

20

TopLink��������������������������������

� TopLink�5��������� – ����������

- GC������� – ���� ���������

� ���������� – GC����

� ������java.lang.ref.SoftReference� – OutOfMemoryError !����

� "���java.lang.ref.WeakReference� – GC��

� Full Identity Map

-���������

� Cache Identity Map

-� �������������

� Weak Identity Map

-���������

� Soft Cache Weak Identity Map

-�������������������JavaBeans�� �������� ��

����

� Hard Cache Weak Identity Map

-�������������������JavaBeans�� ����������

���

Page 21: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

21

JavaBeans������������������������������������

� TopLink�������JavaBeans��� �

- Mapping Workbench����������

- �����������������/�������

� ���

- �� !"#$%&'(")$�� *+,"-$.$Full Identity Map

� /0����GC1234

- �� !")$%&'(")$.$Soft Cache Weak Identity Map

� ��'(*54�*�678�����9:GC*;<

- =�>?@�AB:%&'(C#34$.$D�E34

� ���E34

Page 22: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

22

����������������������������

� �����

//Customer��������Customer cust = (Customer)session.readObject(Customer.class, /*�� �*/);

//���������������Order��������Vector orders = cust.getOrders();

//������ for(int i=0; i<orders.size(); i++) {totalCost += ((Order)orders.get(i)).getCost();

}

CUSTOMER

ID NAME

Customer Order

id

name

orders

id

orderDate

cost

1 *

ORD

ID C_IDO_DATE COST

���JavaBeans��������� ����

Page 23: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

23

Lazy Loading����������������������������

� �� 1�1�������� ���

- ���������� ��������

� ����� - �TopLink�����������������

- ������������ ��� !��!�"���

�������������������������������� � ��������

� ������ �����DB����

����� ������� �

����� ����� �! �"�� �

#$�%&'() !$*�+%&',)

Address

Address

Customer

Customer

Page 24: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

24

� �����

- #$%name&'“()�*”+,�-./01

TopLink��������������������

//name�“����”����� ����������Expression����

ExpressionBuilder builder = new ExpressionBuilder();Expression exp = builder.get(“name”).equal(“����”);

//����������Customer� !"�#�$%Customer c = (Customer)session.readObject(Customer.class, exp);

Customer

id

name

CUSTOMER

ID NAME

SELECT ID, NAME FROM CUSTOMER

WHERE (NAME = ‘����’�

��������

builder.get(“��”).< ������>()

�� ������

equal(), greaterThan(), greaterThanEqual(),between(), containsAllKeyWords()��

Page 25: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

25

����������� �� ������������ �� ������������ �� ������������ �� � – ����

� 1�1���������� – ��

- ������city��“”��

�����

Expression exp = builder.get(“address”).get(“city”).equal(“��”);

Customer c = (Customer)session.readObject(Customer.class, exp);

CUSTOMER

ID NAME A_ID

ADDRESS

ID CITYSTREET

Customer Address

id

name

address

id

street

city

1 1

����������� ��������get(“��”)����

Page 26: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

26

����������� �� ������������ �� ������������ �� ������������ �� � – ����

� 1����������� – ���

- cost�100����������

Expression exp = builder.anyOf(“orders”).get(“cost”).greaterThanEqual(100);

//��������Customer�� ������

Customer c = (Customer)session.readObject(Customer.class, exp);

CUSTOMER

ID NAME

Customer Order

id

name

orders

id

orderDate

cost

1 *

����������� �����anyOf(“� �”)���

ORD

ID C_IDO_DATE COST

Page 27: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

27

����������� �� ������������ �� ������������ �� ������������ �� � – ����

Customer Order OrderItem Product

id

name

orders

orderDate

cost

orderItems

quantity

discount

product

productName

cost

weight

1 1 1 1* *

� ���������� �������������

- “����”�������� �

Expression exp = builder.anyOf(“orders”).anyOf(“orderItems”).get(“product”).get(“productName”).equal(“����”);

SELECT t3.ID, t3.NAME FROM CUSTOMER t3, ORD t2, ORD_ITEMS t1, PRODUCT t0 WHERE ((t0.PRODUCT_NAME = ‘����’) AND ((t2.CUST_ID = t3.ID) AND ((t1.ORD_ID = t2.ID) AND (t0.ID = t1.PRODUCT_ID))))

Attribute Traversal�����“��”

Page 28: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

28

����������� ��������������� ��������������� ��������������� ����

� �������UnitOfWork��

- ����������� ������DB������

� �������

- �������� !"�������#$%&

- SQL'()�*+(,-

- ./01�23��4��5%(6!�78

��������������������������������

��������������������������������

������������

����� ����� ����� ��������� ����������������������������������������

����������������������������������������

���� � � � �

������ !"#$%&�'(��)*�� !"#$%&�'(��)*�� !"#$%&�'(��)*�� !"#$%&�'(��)*++++ ��,�- �./�01 ��,�- �./�01 ��,�- �./�01 ��,�- �./�01 2222 �345(�647�����345(�647�����345(�647�����345(�647����

�����8��� �����8��� �����8��� �����8������������� ����������� ����������� ����������� �

������������

Page 29: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

29

����������������������������

� �������������� ����

- UPDATE����������� �

����� �������

� ������������ ����

- ������SELECT ... FOR UPDATE [NOWAIT]����

UPDATE CUSTOMER

SET NAME = ‘����', VERSION = 2

WHERE ((ID = 100) AND (VERSION = 1))

��������

��������WHERE�� ��

�����������������

c:Customer

id=100

name=“oracle”

version=1

c:Customer

id=100

name=“����”

version=1

��!"

#$�%&'

()*'

Page 30: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

30

������������������������

� ��������

//��������

UnitOfWork uow = session.acquireUnitOfWork();

//�� �������

Customer cust = new Customer(1, “������”);

//���������

uow.registerObject(cust);

//�������������

uow.commit();

Customer

id

name

CUSTOMER

ID NAME

���������� ������������DB������

�� ������ !"

Page 31: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

31

������������������������

� ��������

//Customer��������Customer cust = (Customer)session.readObject(...); //

//�� �����UnitOfWork uow = session.acquireUnitOfWork();

//����������������������Customer custCopy = (Customer)uow.registerObject(cust); //�

//������custCopy.setName(“����”);

//�� !�"# ��$��uow.commit();

Customer

id

name

CUSTOMER

ID NAME

//���������� �������Customer custCopy =

(Customer)uow.readObject(...);

����������������� !

Page 32: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

32

������������������������

� ��������

UnitOfWork uow = session.acquireUnitOfWork();

//���������� ����������

Customer custCopy = (Customer)uow.readObject(...);

//������uow.deleteObject(custCopy);

//�������� !uow.commit();

Customer

id

name

CUSTOMER

ID NAME

Page 33: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

33

TopLink��������������������

� O/R�������

-������

-�� �� �������������…

������� !"#$%&'

� O/R�����()�*�+

- Top Down

- Bottom Up

- Meet-in-the-Middle

� ,�-

- Mapping Workbench

- Sessions Editor

-./0���!(�*/1#"

� 2"�34 ��

-5�67(+8�4

- SQL 9:;< =>

- JTA2"�34 ��? @A

� *�4

-B�67C!67�4(*�4DE�F��GHI

-B�67C!67�4(�$(*�4DJKLMNOPQ�R �J%+8�4I

-S C!67�4(*�4DFOR UPDATETI

� Q�R(UV� W

- GCX YZ[\O]UV� W ^_`

- JavaBeansabNcde�

� fgh

- Attribute Traversalij]�klfgh

-fgh m�dnDWorkbenchNdnI

-9:op]SQL qrs

-!2)$(�* �FV tA

� ./0���!uvw

-xyz{|�F�#�z{|

-E�+z{|�!2�}z{|

-!4*�-e�~��-z{|

-��z{|

-E�+r��

-!6�2��2(UV� W

� � �

-�U� �Y��DDB ���!���� ���!�I

-�U�� UV� W�m����

- TopLink SDKij]RDB��? )4�!

-��UV� W� ��w

Page 34: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

34

TopLink������������������������

� TopLink 10.1.3

- 2005/����������

- ����

� OC4J�CMP Entity Bean����

� JAXB������O/X�Object/XML����� !����

� "#�$%�&'(

-Time-to-Live)*+,-.�

� FlashBack/01�2

� EJB 3.0

- EJB 3.0 Entity Bean���345%�6789

TopLink 10.1.3����EJB 3.0������������������������

��� ������������� ������������� ������������� ����������!!

Page 35: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

35

Agenda

� O/R��������

� �� O/R�����

- Oracle TopLink

�TopLink O/R�������

�TopLink ����

- ADF Business Components

� ���

Page 36: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

36

ADF Business Components����ADF BC����

� ADF Business Components���

- MVC���������� ���������������������

- �� ������������ADF BC� !��"#

� $%&'O/R()*�+"#

� ��, -������

� ./�0 1/)�2�3�45678�������

� UI59:"#;��,<=�>?@AB'C���������DEF

� JAAS3GH�IJ59:

- JDeveloper 10g�KLMN�OP

- QDRSTUVW;Oracle EBS'CF

� ��O/R������� ��

- SQL�$X�YZ�O/R()*�+"#

Page 37: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

37

ADF BC��������������������������������

� ADF BC����������� ������

DB

������������������������

��������������������������������������������•���� ������ ������ ������ ��• DB��������������������������������

ApplicationModule

EntityObject

ViewObject

� ������� ������� ������� ������•����� ������� ������� ������� ��•��������������������SQL���� ���� ���� ����

!����"#!����"#!����"#!����"#

����������� ������������� ������������� ������������� ��• Facade�� ���� ���� ���� ��• $�%&'(����)*$�%&'(����)*$�%&'(����)*$�%&'(����)*

Row����������������•+�+�+�+�Transfer Object

Page 38: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

38

ADF BC�������������������� – ��������������������

ADDRESS

ID CITYSTREET

EMPLOYEE

ID NAME A_IDSALARY BONUSid

name

street

city

totalIncome

Row

SELECTEmp.ID,Emp.NAME,Addr.STREET,Addr.CITY,12*Emp.SALARY

+ NVL(Emp.BONUS, 0)AS TOTAL_INCOME

FROMEMP Emp, ADDRESS Addr

EmpInfoView

��������������������������������

• ��������������������������������

• ����� ������ ������ ������ �SQL������������

Row����������������

• ������������Transfer Object

• ViewObject����SQL������������������������������������

String name = (String)row.getAttribute(“name”);

Page 39: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

39

ADF BC�������������������� – ����������������

ADDRESS

ID CITYSTREET

EMPLOYEE

ID NAME A_IDSALARY BONUS

id

name

street

city

totalIncome

Row

EmpInfoView

11

id

street

city

Address

id

name

salary

bonus

address

Employee

��������������������������������������������

• ��������������������������������

• ADF BC�� �� ������� �� ������� �� ������� �� �����

�������� ������������� ������������� ������������� ������������

�����

����

row.setAttribute(“name”, “���”);

Page 40: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

40

ADF BC��������������������

� O/R�������

-��� ���������

- Oracle����������������

-����������1�1�1������� !"#

- SQL 92$%���&���'(�)

- SQL*�$+,-�����

- DB��.��+/012��3456

-78/9:;�<�=>?@�'(�)

� ��������

-A?@B�CDEF;G�<*HI,-J�K�LM������NOP�#

-QRLM�EFST�U��)�U�VW�X#�=>�Y@

-Z[��\]^)U*_LB�

-EFST`EFab�O�c�G�d�c^e

-����f6g hij�kl

� mn��o�);�bp`�qr

-U�b&^�s�^t��gu2�)v/wxyz{�d�c^e

-|}~`���������^�LM`������^*�,-����f�b&^�X�UIz{����Oracle ADF`�qr+/0#

-���.����g�Gn�^+LM��-mG���;G�<`UI`��P�����

� ��8

-���.����g�Gn�^g�����

- JDBC�������

-\�P^g�����-��c����g�u�)���e�DB�,��\�P^#

-���.����g�Gn�^g��^`����^+��0��z{���`;���

- Oracle Enterprise Manager Application Server Control*Y@,-���.������

 ¡��¢����

- JAASc2n�u�`qr,-�����f6�h£ij�kl

Page 41: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

41

TopLink����ADF BC������������

� TopLink

- ���O/R�������

� ����JavaBeans�����

� � ��������

� �����������������

- TopLink�� �!"#

� $%&'()�*+,-DB#�"��./01�234�256

� 789"�#�:;<=�56

� >�?!"�@;ABCDE",F��G"H0IJK;L3256

� ADF BC

- SQL��������O/R�� +�����������������

� SQL���Transfer Object��

� ����� UI�������

� Oracle ADF���������������� !"#�

- ADF BC$%&�'�

� Oracle ADF�()*+, -.�'��/0123456789:)

� SQL1;<=�,DB�>�Java5�?@1AB89:)

Page 42: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

42

Agenda

� O/R��������

� �� O/R�����

- Oracle TopLink

�TopLink O/R�������

�TopLink ����

- ADF Business Components

� ���

Page 43: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

43

������������

� ���������� ����O/R�����������

- Oracle TopLink - ���O/R�������

� POJO Plain Old Java Object�����������

� ����������DB������ �!"#"$����� Meet-in-the-Middle�%&"�����'()�

� *)+,�-.�/0��12�3�-4"5�%&"6�'(789

- ADF Business Components - SQL�:�;<=>?O/R�������

� @A>?SQLBCTransfer Object Value Object��DEFG

� :HIBCJKL�������FG��Transfer Object=�����

TopLink -http://otn.oracle.co.jp/products/ias/toplink/index.html

JDeveloper -http://otn.oracle.co.jp/products/jdev/index.html

��������������������������������!!

Page 44: otndnld.oracle.co.jpotndnld.oracle.co.jp/products/ias/toplink/pdf/JC2005_B3... · 2005-04-14 · 11 JavaBeans O/R TopLink JavaBeans -+ setter/getter - EJB Entity Bean - ˘ˇˆ˘ ˙˝

����������������gObbgObb���������������������������������������� >>>>

gaÉîÉäçéÉê=NMÖ=gaÉîÉäçéÉê=NMÖ=��������NMKNKPNMKNKP�������� l`Qg=NMÖ=l`Qg=NMÖ=((((((((NMKNKPNMKNKP))))))))qçéiáåâ=NMÖ=qçéiáåâ=NMÖ=((((((((NMKNKPNMKNKP))))))))

SQLSQL��������JDBCJDBC��������������������������������������������������������

����������������OO--RR ������� ������� ������� ������� ������� ������� ������� �������

√ ����������� �����√ ������^mf����������

√ �� √ !"#

√ N$N%N$&%&$&√ '())ÉíÅK

����� ������� ������� ������� ������� ������� ������� ������� �� ��������������������������������������������������������

������ ������ ������ ������ ������ ������ ������ ������

√ j~ééáåÖ=tçêâÄÉåÅÜ

√ pÉëëáçåë=bÇáíçê

√ mÉêÑçêã~åÅÉ=mêçÑáäÉê

√ *+,�-√ .�/0123√ 4,5678

√ 9:123√ ;<123√ =>?/@) ÉíÅK

J2EE 1.4 J2EE 1.4 !"!"!"!"!"!"!"!" J2EEJ2EE���#���#���#���#���#���#���#���#

JSF JSF $%&'()$%&'()$%&'()$%&'()$%&'()$%&'()$%&'()$%&'()

*+��,�-./�01234*+��,�-./�01234*+��,�-./�01234*+��,�-./�01234*+��,�-./�01234*+��,�-./�01234*+��,�-./�01234*+��,�-./�01234√√ ABCDE�F�GHIJF�K/LABCDE�F�GHIJF�K/L

√√ MNOPMNOP

√√ QRSQRS

√√ ���T��UV���T��UV

√ bg_=OKNLpÉêîäÉí OKQLgpm=OKM

√ WXYgjuZ/.[\]^/@_gpoTTLgpoUU$`a

√ qçéiáåâ=`jm[b�

√ cG�^/�cG%U/dZ/.eC[f?g/���_��.d�ha

√ ijkOm`����_��������

l/Umn/da

√ o�-G@gpc=rf=C=poq/���rs

√ tugpcl�v/n��_^ac=c~ÅÉëaw

eCxy

J2EE 1.4 J2EE 1.4 $%$%$%$%$%$%$%$% 56&'()56&'()56&'()56&'()56&'()56&'()56&'()56&'()

√ bg_=OKNLpÉêîäÉí OKQLgpm=OKM

√ o�-G@bi�Umd ÉíÅK

789:;�<����789:;�<����789:;�<����789:;�<����789:;�<����789:;�<����789:;�<����789:;�<����

√ rji=�/g�.z%{/.g/.z√ U/dZ/.�VU�h ÉíÅK

<�=�><����?@AB<�=�><����?@AB<�=�><����?@AB<�=�><����?@AB<�=�><����?@AB<�=�><����?@AB<�=�><����?@AB<�=�><����?@AB

√ fab|}~b����&"[

E��d�y���

����������������������������������������

OTN-Japan: http://otn.oracle.co.jp/

��������� ��

OC4J����TopLink������������

EJB 3.0 ������ �������� �������� �������� ��!!