Download - Oracle Application Server 10g Oracle Developer Suite 10g

Transcript
Page 1: Oracle Application Server 10g Oracle Developer Suite 10g

1

Oracle Application Server 10gOracle Developer Suite 10g

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

Oracle Application Server

TopLink 10g

Page 2: Oracle Application Server 10g Oracle Developer Suite 10g

2

Agenda

� TopLink��

� TopLink��������

� TopLink ����

� � ��� ��

� ���

Page 3: Oracle Application Server 10g Oracle Developer Suite 10g

3

Agenda

� TopLink��

� TopLink��������

� TopLink ����

� � ��� ��

� ���

Page 4: Oracle Application Server 10g Oracle Developer Suite 10g

4

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

Application

Server Database

� Java ������� !"DB# �$%&

- J2EE���������� ����������

� TopLink'()*�+�,

- ���������

- �� ����

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

Client

TopLink

Oracle Application Server TopLink�Java����������DB� ��������������������� J2EE�������!"�#���$%&'�DB� ��()�*+�,�-./0�123�.4TopLink�56�7893:;�<=�%>�?78

9.3@��

•#"A���B�

•#"()CDE

• Java()F�9G�HIJK�"()�LMN

Page 5: Oracle Application Server 10g Oracle Developer Suite 10g

5

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

� JDBC��������

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

� DB������SQL�������������� !"etc.

- #$%&'()*+�,-./0�12�34

� J2EE5� �67�SQL8�9:;<"etc.

� ��� ������������������- =>EJB ? @�@�Bean�JDOAB�C�D�E FAB

- GH�I.JKLM�NO �

�GHP� – �QR �SP��TUV*�WX7

�5YZ[ P – \]R ��^_

�`a+ –(bcdeSQL�P�fghijkl�m7�[�n �

Java�������3DB� �����OP�7QR��4JDBC�ST,�UVW�7QR94�X�YZ� [\�56�7QR�2]^._^��

JDBC�ST,�UVW�7QR�`abc'�d6ef�"�� ���JDBC,�UV

W�Sg@'3hi�,�UVW./03_7jk4lmn������()�!"�#"()CDE4opq��rse4�j�BNt uM�-vw3�#"A���B��x.0yef7z{��4OPQR����|}./0��^��

JDBC,�UVW�`~����()CDE���e�7jk��4�X�YZ� �56����7/0._^�� �9���EJB�pVpVBean4JDO�Java Data Objects��x�����K�������[\�x._^48f��Java���� -��g��X�YZ

� 4�g�XM��x9��f��

8f���X�YZ� �������4��,�-KA���B�4��LBM����E�x� 2����7/0._^��

Page 6: Oracle Application Server 10g Oracle Developer Suite 10g

6

TopLink��������

� Java��� �!�"#$�%&

- Javaopkqr�stuvw�.��x�yz

� JDBC�� �{|0�SQL���{/0}~�

- ������s�eopkqr�

�j h��Javaopkqr��? @�@�Bean

- 12�fh��j� �m7yz

����Javafh��j�

� J2EE @���pQ��S @�

� '()*+,-./0�12- ���O-R[�n �5�

- ��z�opkqr�S�l�j]

- 5YZ[ P}6��,-��z

- GUI��

TopLink�¡¢�<=��X�YZ� [\4Java���� -��g�XM�9£¤¥¦�f�� $�^JDBC,�UVW��789���DBU�L�������356�K�"§�¨©efj���� -9��ª?�4�j���� -�«��¬­�j®¯�DB�°±e�

789.²���^��

O³vw9���TopLink�´�7Java� u�uM�u�3_7jk/µ�a������¶·�¸��3T­e�7/0�_^��¹ ´º3O³²��Java��������a56²�34�jJ2EE,pq»¦3�+Tomcat�<=�·��X¼-¶,pq��a56�

789.3@��

Page 7: Oracle Application Server 10g Oracle Developer Suite 10g

7

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

� ()*-32456*�7- 1994�"}����P�Smalltalk��

- 1997�"Java���P

- 2002�"'(\���-o�r�� !

TopLink�2002½�WebGain¾��()t�Ya¿k�À�u N¾.ª?���j Java

Á�Âû¦3aÄ�7½��^4*+�OÅ�Æ��"��

ÇÈ�u N9���TopLink 10g�9.0.4�.ÉÊ����9�^��

Page 8: Oracle Application Server 10g Oracle Developer Suite 10g

8

Agenda

� TopLink89

� TopLink:;<=>*?@�A

� TopLink�BCDE

� '���*�FG

� H*I

Page 9: Oracle Application Server 10g Oracle Developer Suite 10g

9

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

� TopLinkJKLM<N�OPQ:R�ST

- Mapping Workbench O-R[�n ��;<��

- Sessions Editor �b���� ;��

- Foundation Library � �O�S�Op���toplink.jar�

Mapping Workbench Sessions Editor

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

XML$%&��'���#(�GUI)*�+,-*.��/01��� 23��45675&

859:;���"<��

Page 10: Oracle Application Server 10g Oracle Developer Suite 10g

10

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

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

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

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

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

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

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

"#$��%#��"#$��%#��"#$��%#��"#$��%#��

Foundation Library

J2EEJ2SE

Sessions Editor��������������������

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

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

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

Foundation

Library��������������������

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

TopLink�����23"#=>?:��,@A�3B CD�E<��

• Mapping Workbench�23"#O-R������FG

• Sessions Editor�23"#������FG

• Foundation Library�23"#H�9I*�J���

TopLink�23"#KLM���$N*O PQRST"RQE<��

U.V&�7456

WWH�9I*�J��XYZL�[*\+[*\]�^_�`�456a

Page 11: Oracle Application Server 10g Oracle Developer Suite 10g

11

O-R�� �� �� ��

&'&'&'&'

()�*+�*�,()�*+�*�,()�*+�*�,()�*+�*�,*1

*�,�-./#0��*�,�-./#0��*�,�-./#0��*�,�-./#0��

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

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

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

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

- $�%&'''etc.

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

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

etc.

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

O-R�Object-Relational��������� �������������������DB��

!"#�$���%

&'(�� ������)*+�,�-./01)*23)*456789:+�,�;<)*����=>?/�?@�%$8���AB=>CD/)*EFGH�I8+�,�DB

�1JK��1)*���89:+�,LM8�8M8N1JKCD�A� !"#OPQRSLTU@�%V1$8 !"#1WUDBABXYZ/+�,�[�1\]^1)*

EFGH�I�=>��$�[_`1aU@�%

�TopLink1bBc�defg�h8iaj`klCD/O-R�����1mnoOJavaE

FGH�I�DB+�,p8qUYU�rs^1t.$���%�� �����u�DB�8v

w�xy��$�aQJavaEFGH�I�z?/+�,{=�_`1?@�%

���������DB�8�����11<8���L1<8�1 !��W.a���|a[

8AB���p8}5�DB�8~��������[8q��vw�;<����8��

���aMW.1��a[8@�����%M$@���a���������I��AM.A

�D�D8��1WZO�aU@�%

Page 12: Oracle Application Server 10g Oracle Developer Suite 10g

12

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

� �������

- Direct-To-Field

- ���

- �����etc.

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

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

- Aggregation

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

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

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

- ��������XML��

� ��������XML

TopLink�������O-R��� �����������

TopLink��Mapping Workbench���GUI����� �!O-R����"#����"

#�$���%&��'()*�+,XML�-./0XML12����!3*4���5/�

��

67�'()*�+,XML

<?xml version = '1.0' encoding = 'UTF-8'?><project>

<project-name>OrderProject</project-name>....<descriptors>

<descriptor><java-class>examples.model.Customer</java-class><tables>

<table>CUSTOMER</table></tables><primary-key-fields>

<field>CUSTOMER.CUST_ID</field></primary-key-fields>....<mappings>

<database-mapping><attribute-name>custId</attribute-name><read-only>false</read-only><field-name>CUSTOMER.CUST_ID</field-name>....

Page 13: Oracle Application Server 10g Oracle Developer Suite 10g

13

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

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

- ����������XML ������

- ���DB���

- ��������

- �������

- � !"#$��%&'etc.

� Sessions Editor�� �� – �����XML

�����A

��������������������XML������������

����� XML 1

�����B ����� XML 2

TopLink���������� ������������������������� !"#XML$%&'()�*+��,-./��0�1�2��$3�4����

������Sessions Editor���GUI567�./�8��������4�9�����:;������XML���XML<=>7��8? @A6!4����1BC�����XML��DEC����������F�$�G���

Page 14: Oracle Application Server 10g Oracle Developer Suite 10g

14

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

� Foundation Library�API��������� ���

- ������API���� ��������������

� ������

- �������

- � ����

- !"#$%�&'

- � ��()

TopLink�./�9H�IJ6����CK6LH �@�*Foundation LibraryCAPI�./�8�M����NOP4�9Foundation LibraryCAPI�./��F��*QRGSTJDBCCU6KV�2�WX8YZTU6[\�]^�_T`T-*aBJavabcd��e8fgSTh

C�T-���

Foundation Library�./�8ijSTK6Lkl��mn��7U6[�op����

Page 15: Oracle Application Server 10g Oracle Developer Suite 10g

15

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

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

- *+������',-.*+������/0123��

� ���� �./DB��'�01-2��'�034�(

5����+,-- �����',4567�DB89��:

- JDBC; <�SQL=:�>?

- @�A�B',4567�0123���=:�C�DDB�)E

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

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

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

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

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

H�IJ6���a)TopLinkCqr��st�H �@����*�u�vw���������xy�� !�z{��YZ$|-���FC�����}xy�� !�*�����XML

���4�91BC�������a)~Bl�4����

H�IJ6�����z{�9�����}xy�� !��v8K6LCz{}kl�����$*+C�CDB�R:;�JDBCU67*SQLC���,�O-R0�1�2���i��9xy�� !C���DB��CK6LC��T�������}xy�� !�,e8��4�8����+��,-H�IJ6������DBK6L�xy�� !��8��S�z{}kl��

F�$�G����9z{4��xy�� !�[�>�} �@����9 �@�CI�6������h��4�9����4����

�������*H�IJ6���CL>��,e8.��(�9w��`BaC��$|-����ThC�� C��-���

[����������������������������������������]

2¡H�IJ6����./4����@L�[H��¢£�¤l4¥�9wCstC¦�§B*

¨hijST��������

[�� ������������������ ������������������ ������������������ ����������������]

FC2BC������DE �>H�!a)C©�H �@�nA6!��,mT3¡H�IJ6����./4����n6ª6}��������������«�81B��$* �>H�!}������¬ �>H�!�1BuB­®8)���� �>H�!}������K6Lkl�¯

8n6ª6}������°±��,mT²\xy�� !�*n6ª6}�����a)��4����n6ª6}�������R�67������}³´��µ�¶·����

Page 16: Oracle Application Server 10g Oracle Developer Suite 10g

16

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

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

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

Session session= SessionManager.getManager().getSession(“������”);

//����������������...

�����������}0¸6�´�./�8z{����

K<¹7!C<=>7º»sessions.xml¼�l��9�����XML<=>7� �@½@¾�"

¿�9ÀÁ*ÂC,m������ºÃ(�������z{��F�$�G���

Page 17: Oracle Application Server 10g Oracle Developer Suite 10g

17

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

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

//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 Order

firstName

lastName

orders

orderDate

cost

1 *

���������� ���������Customer����������� !��"

��#$%&'()*+�,-%./�DB0!1��������2��3%./4�5$%

&$678!)*+)(9�1!:(�������;..��Order������<=>?�'�%

./4�5$%&

��@-AB(�=�readObject�C=>�DE���������readAllObjectsF�G"

H=IJ�6���������KL%executeQueryAB(�4�@$%&

MNexecuteQueryAB(��,-O

ReadObjectQuery query = new ReadObjectQuery(); //����������

query.setReferenceClass(Customer.class); //��� ������

query.setSelectionCriteria(expression); //�������

Customer cust = (Customer)session.executeQuery(query); //�����

Page 18: Oracle Application Server 10g Oracle Developer Suite 10g

18

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

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

//lastName�“����”����� ����������Expression����

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

//����������Customer� !"�#�$%Customer c =

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

Customer Order

firstName

lastName

orders

orderDate

cost

1 *

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

�������������Expression���������������������

���� !"#$%&�'��equal�#()*+,�-�.�/0���

Expression123$%&��4�5greaterThan, in, between, like, toUpperCase, and, or

�-678���

Page 19: Oracle Application Server 10g Oracle Developer Suite 10g

19

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

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

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

//cost�100���������� ������Expression����//������������ �! "#$%�&'"����()

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

Customer Order

firstName

lastName

orders

orderDate

cost

1 *

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

����������� ������������� !"#� $%&!'���(��)*+����������,-�./+0� �����"#� 1+2get�345+

anyOf67���8

Page 20: Oracle Application Server 10g Oracle Developer Suite 10g

20

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

Customer Order OrderItem Product

firstName

lastName

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.FIRST_NAME, t3.LAST_NAME, t3.STREET, t3.CITY,

t3.STATE, t3.ZIP 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))))

������SQL� �����

����������� ��������������������SQL���

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

TopLink�*�(+�,-��./�0.�123SQL�45��60Java7893/:;<=

>?�6@A�B-�;C�D�*�(�EF��./�G'��

Page 21: Oracle Application Server 10g Oracle Developer Suite 10g

21

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

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

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

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

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

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

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

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

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

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

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

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

#��$%&�����#��$%&�����#��$%&�����#��$%&�����

TopLink���������� �������������������� !

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

�340� !�����2�5�/��6789:;)$�<= �>���&��'��DB?�����@A.�5�89:;)$�BC(D�'��E0� !DBB)& -89:

;)$FG�H $�IJ��������� ������K-��L� !

Page 22: Oracle Application Server 10g Oracle Developer Suite 10g

22

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

� �� !�"#UnitOfWork$���

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

- SQL���������

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

''''()*+��()*+��()*+��()*+��

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

#��$%&�����#��$%&�����#��$%&�����#��$%&�����

,-./��,-./��,-./��,-./��0000 *+���12�!�*+���12�!�*+���12�!�*+���12�!�

33()456��33()456��33()456��33()456��

7777,1,1,1,1

8888()9:;�<������=>()9:;�<������=>()9:;�<������=>()9:;�<������=>????,-*@� 9�A���B,,-*@� 9�A���B,,-*@� 9�A���B,,-*@� 9�A���B,CCCC �D%E��$%F*+���D%E��$%F*+���D%E��$%F*+���D%E��$%F*+��

,-./��&�����,-./��&�����,-./��&�����,-./��&�����

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

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

� !"��� !"��0� ����12*.�/� !"��3��45��������

67��#� 89�#:��;�<089�=� !"��0� ����3�>?&.�/;<

@A��BC� 89�34*+������,DEF�� !"��38G���HI*.�/

8G���HI?&E� !"��� 89�#:��;�<089��JK*����LDEMN�O�DB38G��*.�/DB3SQL�P,��3�QRSTUVW3XY*�-Z[

3SQL�P,\]=^S?&.�/_`a3DBb�8G��=>c*EF���MN�d��

BC0� ���3e��*.�/

� !"����f2�,[3d��BCghi>*+jk*.�/3l;<@A��BC�

mT3n�op;C��qr�st3uv+�Ew�xy�op;C�3Z�;<@A��BC

���oCz��BCf2�{,*+,[|#�}~3*.�/

Page 23: Oracle Application Server 10g Oracle Developer Suite 10g

23

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

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

//Customer��������Customer cust =

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

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

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

//�� ���custCopy.setFirstName(“�!�"”);

//�!#$�%&#��'��uow.commit();

Customer Address

firstName

lastName

address

street

city

1 1

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

"�#$%&'(�)*+,-.+/*0!123���

�4��������,��������� !#$�-.+/*

//��������

UnitOfWork uow = session.acquireUnitOfWork();

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

//����������������� �� !"�#$�%

Customer custCopy = (Customer)uow.readObject(Customer.class, /*&'()**/);

0�562%��7�������8,���9:�;�<=>&9?��.+%@>A�BC1D���=>���@��EreadAllObjects2FG���������HI+%&JK��L

�������2��7,L�LMNO;JK2��

Page 24: Oracle Application Server 10g Oracle Developer Suite 10g

24

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

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

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

//���������Address newAddrs = new Address(“newStreet”, “newCity”);

//�������� ���custCopy.setAddress(newAddrs);

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

Customer Address

firstName

lastName

address

street

city

1 1

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

������� ��!"#$%&��'()*�+!"#$%&�,-�./�0���������,12345�6789,./:;<=>?@ABC,DEF01G,SQL6HI

:;���

J����FK'()�� ������L�<�� ��)��MN�����OPQ6

R2���

Page 25: Oracle Application Server 10g Oracle Developer Suite 10g

25

Agenda

� TopLink��

� TopLink��������

� TopLink ����

� � ��� ��

� ���

Page 26: Oracle Application Server 10g Oracle Developer Suite 10g

26

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

� �������������Optimistic� ���

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

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

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

� �����������Pessimistic�����

- SELECT FOR UPDATE [NOWAIT]0*12

Tim

e

Begin Txn

Commit

Pess Lock������������

End Txn

Opt Lock������������

End Txn

��Web�������� ��������������������� � �!"# $%&'(TopLink )*'+� �!,�-./0-. �1� �23�/0-. �1� ��45678'(

,�-./0-. �1� �!��9�� :/ �;����� <=>?@A'B�CDEFG<=;@A'��H0��D@,ICJ��2DB���2&KLM���� FGNOP;Q6 R< ST@�J �M8'(UU&R<VWXYZ[!OptimisiticLockExceptionV0��\78'(B�CD���H0��D!Mapping WorkbenchQ6]^'+U2V&_�`76 <=!TopLink��X�abc�de78'(KL�fg'+D�!h D@i^'+U2j&_8'klmR<no2�+D@KLp(U ���Z[!������ qrs:�t&� �1u���@]^'+"vVWP8'(

,�-./0-. �NOP� �!,�-./0-. �1� � wx�fgy&'(��9��z&{|'+ }&R<no&!�����klm~������pVFGNOP;Q6R<\7��+Q��Q@��'+U2V&_8'(

3�/0-. �1� �!��9��z& ���NOP;�FOR UPDATE�8Y!FOR UPDATE NOWAIT�@fgM�DB��� � �@O�M8'(

fg'+� � ����P�DB���9�� ���V��P8'(� ��DB����0@fgM��,�-./0-. �1� � �V�����0c�!�� ���y2��8'(

Page 27: Oracle Application Server 10g Oracle Developer Suite 10g

27

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

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

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

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

� ������SoftReference) – OutOfMemoryError !����

�"���WeakReference� – GC��

- #$%&'('(�)*���

� 1+�DB%,-./0123�45678�9�:��

;<=9>?@A?

����Full Identity Map ����Soft Cache Weak Identity Map

����Cache Identity Map ����Hard Cache Weak Identity Map

����Weak Identity Map

TopLink�5����������� �����������������������

!"

�����GC#$%&'()*��+,�-.���������/0!12342#5 6��78&��9:15�DB�&;<=�>?@�AB'C*DE.FG�1HIJEK12

342+ELM6 !"

• Full Identity Map

NOP:Q>�AB'C*D�����

• Cache Identity Map

RS@�AB'C*D�NOP:����

• Weak Identity Map

TOP�UV�>Q>�AB'C*D�����

• Soft Cache Weak Identity Map#�WXYD+

Weak Identity Map<Z[>�\]UV�^AB'C*D�_`!1aB���� �

b5"aB���� �cWDOP�UV!1"

• Hard Cache Weak Identity Map

Soft Cache Weak Identity Map�aB���� �OPENOP<Md^e�"

Cache Identity Mapfg��������E/0G� !"hij/b!1kl�MmnopV�&;�q4<�������Erl:Mmst��Cache Identity Map�uv!1��

e:w !"

Page 28: Oracle Application Server 10g Oracle Developer Suite 10g

28

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

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

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

�� ���������XML��������

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

- +,-./012345678�9:/;:$< ��

� ���

- =>?@ABCDEFGAHC=>?IJKALCMCFull Identity Map

�NO+,-./5GC��PQ

- =>?@AHCDEFGAHCMCSoft Cache Weak Identity Map

�01FGIRQ4I$STU�+,-./5V�GCIWX

- Y-Z[\5]��DEFG*BPQCMC� ^PQ

�+,-./^PQ

TopLink���������� �������������������Mapping

Workbench��� !"#�$%�������&'(�)*+���,-.��/�01!2

3�������45���������'

6� !78�9:;<��=>�?@!AB ���CD ����� !@�EF�GH

!I��'CD,-.�,-.�JK�LMNO(AB,-.OPQRST�UV�W@�G

HPT��'X�YZN[V,-.�\]^!_`STYabcd e�f!�����g�h

i ! !?M���jk�\])lmn-o���pPT��'AB,-.�,-.q�rH

stNSP�u @v��w@v����UV�xP(��y�YZN��UV�W@v��

z{|�����������}~|������������������'

�Y����������vN�F����������d� 3@N������I��d�

��N�F����������hi 3@N3�����$%�������'

Page 29: Oracle Application Server 10g Oracle Developer Suite 10g

29

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

Customer

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

- _`�?>a-�b4NO6785"c���

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

- deIf�g�2�e�O6785���?��h���

Customer �������������������������������� �� �������� �������� �������� ������

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

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

�������� �!�������� �!�������� �!�������� �!%&�'&�(����%&�'&�(����%&�'&�(����%&�'&�(����

)*�+,-./)*�+,-./)*�+,-./)*�+,-./ '*0��+,-1/'*0��+,-1/'*0��+,-1/'*0��+,-1/

Address

Address

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

�'()*�+,%� �-./���012(�34�567�8�$09:;(�3

4�<'()

TopLink��./���-=�>=�����4?@A'()�����B������C"�#$

DE��FGH�����������IJKA'()

Page 30: Oracle Application Server 10g Oracle Developer Suite 10g

30

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

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

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

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

���*+,-��./

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

SQL x 1 SQL x N

“N + 1��������”

��������� ��������� ��������� ��������� ��������N + 1 ��������SQL������������������������

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

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

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

��$

%���1&1'()*+,*-.���������/!"�01�2��$34�5)67

89:;<=����>1?�SQL@)ABC2����D�E�F)G-=789:;<=��

���H>D�I�JK�SQL@)A�������$5)6�NJLM��D�N�O�

�F)G-=����/!">"PBN+1?�SQL@)A��������Q��$R�S

O��F)G-=T<U6� R��#NVWXYV��Q !">�34����Z["�����O��\)F��]��^SQL@)A>1?BC�_ R��B`��$

TopLink>R�S �ab&c� /X����3de8.*+,�fg���$

Page 31: Oracle Application Server 10g Oracle Developer Suite 10g

31

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

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

SQL x 1 SQL x 1

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

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

SQL x 1

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

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

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

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

����SQL��������������������

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

����SQL��������������������

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

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

$%&'()*+�,-.�/01��2�� ��34��5�65789:+�;,�<=>��2�� ��?@()*+ABXML8CD:�34����EF���

[����������������������������]

G�HIJ=�K LM+�N*OP������QR=��S$�(TDU���V�2<������ �SQL� :V1W�X�%���������(TDU���1Y1Z[ \TU

\M?��2����������

[����������������]

�]�^ P����.�5K LM+�N*OP��Q_/�5Q`N*OP��S$

G�HIJ=�K LM+V�2��S$abcdeKUVf<6�K LM+�ZP+Vg0�� �hN?Zi \TUhIj��2<������ �SQL� :V2WaK LM+�N*OP

<h�S$1Wj�����������1Y1k l1YmZ[ \TU\M?��2����

������

Page 32: Oracle Application Server 10g Oracle Developer Suite 10g

32

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

� ���������

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

� �� ��������

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

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

� � ��!"#

- ������ !

- TopLink�� !"#$%SQL &'

TopLinkn�o�Epqh����Vrs<���

TopLink�P+N!t?@\ (uETopLink�#$%&'()*+�<=� :�������

5vwxyVz{�|2����������

Page 33: Oracle Application Server 10g Oracle Developer Suite 10g

33

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

� $%&���

- ()� *+,-.�/0�12345'67�

��/8#$%DB�/

- 9:;<�=>?@ �/0�)AB=CDE

��/0��F 5G.DB9�HI�JK

� '()�*+

- L��MN?�O5P4QRBS�T�U

�����V&PWXYZ[\Z&']

� DB^�_`PW�a?b�=>?��cZde��F6fghetc.]

� TopLink SDK

- RDBij����I�9k����9�HI�lmDE

- XMLnoMU����I�9^p.;noq?Ilmrs�

TopLink�}~g�6DB}~Q���<6}~�V5�� ��<=�;1��2��

��������

[�� ����� ����� ����� ���]

}~�V����gV,-<=�2<���}~g�}~�V������}~�V��

���V,-<5*�P����2���}~�U+Z��V,-<=k���������?@()*+��2��}~g�}~�U+Z��4Mapping Workbench����������

}~g�b�

SEQUENCE (SEQ_NAME VARCHAR2(50), SEQ_COUNT NUMBER(38))

}~�U+Z�b�

SEQ_NAME SEQ_COUNT

CUSTOMER_SEQ 0

ADDRESS_SEQ 0

[DB��������������������]

DB��D��'}~V�2<���!�DUt*�P����2��DB}~VMapping

WorkbenchV�2<=34�����

�65�89 �UPV���%�6��}~�'@M*a789:+�50��}~�jVN?

Zi \TU���uM\�<=k����F��a}~g�6Oracle�DB}~V�2.�

 j�Oracle�DB}~V�2<=}~�V�uM\���S$5DB}~�¡��a

INCREMENT�j�}~�'@M*�¢D£�¤¥����������

Page 34: Oracle Application Server 10g Oracle Developer Suite 10g

34

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

� ,-.�/)����-0'1

- ��������

��� �������������� ����� ��!etc.

- Web Client" #$�%&'()*'+,-.

� TopLink Web Client

- �/0�1 2��,Web3456�78�

- 9:;<=�>?����������@-.

TopLink Web Client�M¦U§��P+2WebN?Zi \TU���,-<6�M¦U§V

�2<6¨©1h7 Kª,�5#$%hI��<6.«hI��89 �UP¬4V���

�������

Page 35: Oracle Application Server 10g Oracle Developer Suite 10g

35

TopLink Web Client

Page 36: Oracle Application Server 10g Oracle Developer Suite 10g

36

Agenda

� TopLink23

� TopLink456789:;<=

� TopLink�>?@A

� B�CD9�EF

� G9H

Page 37: Oracle Application Server 10g Oracle Developer Suite 10g

37

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

� J2EEI)JKL�M�9�EF

- J2EE$�2A =�>BC�� +,

- JTA�D�E�78�F GH

� EJB

- I�2J2JBean KLMNOPQR

STU;�#OC4J CMP KL�V��WPQR

� JDeveloper 10g

- TopLink XYZ[@\�

- Oracle ADF�Application Development Framework�] \�

TopLink��J2EE��������� ��J2EE������������������

JDBC���� ��!"��#$�%$&�'()*+,�,-�./01��JTA,-�./0

1�"234�!"567��%

TopLink89��:�:Bean�;�<=75��>$���TopLink 10g?9.0.4@��CMP9�

�:�:Bean�;�AB�CD�EF�,8�BEA WebLogic?6.1, 7.0, 8.1@"IBM

WebSphere?4.0@�G��%HIJK8OC4J CMP�;�AB�CD5����LM��

%

$&�N-/O�JavaPQR�O�S�JDeveloper�T3U�C1��8TopLink�PQV

W�X���LM��%�KJDeveloper 10g������YZ[\�01�PQ]^�

_`�/ADF?Application Development Framework@��TopLink�=7�ab��!"��

#$�(Tc�Cd)%

Page 38: Oracle Application Server 10g Oracle Developer Suite 10g

38

Oracle ADF������������

� Oracle ADF – “Productivity with Choice”

- ^_<�`�ab��c2�de�fgh�i(��

� EJB + Struts + JSP : j�]��4�C��

� BC4J + Struts + uiXML : kN.<l=m]kN.UI!etc.

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

- nopTopLink + Struts + JSP

qr<3456�78�XY@st�

Model

Rich Clients

Controller

Business Services

Web & Wireless

TopLink BC4J EJB etc.

ADF����������� �����������J2EE��������� !"#$%&�����'"(EJB)JSP�*&+,-.�/01&23"#�����

&456789�:$;&���"#<=>'?@"(

ADF'�)��������&A�BC�D�ACEF=G�TopLink���"#<=>HI9�

J@"(

Page 39: Oracle Application Server 10g Oracle Developer Suite 10g

39

BC4J������������������������

� BC4J�Business Components for Java����

- ����������� ��UI����������

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

�� "�#$� %&�

���' �� $�(

� UI�)*���+,- �./���0"� "123

� JAAS�4'$56���

�789�O-R:�;�(<<<etc.

- J2EE�=>��?" ��@ABC��� ��!DEFG

- HIJKLM�N>OPQRS�+TUJavaVW�X�! or EJB3

/01�BC4JKBusiness Components for JavaL=MNO#P�Q�RC&�����;23G�S@"( !"#��������&TU9VW�)BC4J=TopLink&XY�Z5

"[\9]O6�^SF_#<=>`a9�J@"(

Page 40: Oracle Application Server 10g Oracle Developer Suite 10g

40

BC4J������������������������

� TopLink - Java�������� ��

- ����LM�N>O

�YZ�O-R:�;�(

�VW�X�![\4]�%'<<etc.

- ^_����LM�N>O`a�$b %&�_cd�ef

- g_hGijk0>���,��HIBlLM����@ABCmef

� BC4J – ���������������

- ����������UI��n����� ��!D

- a�$b %&�opqrst�uvJKw_BC4JxyJKz{j_|}~�EBC4J���� _�IJK�}�Hm�

- ��9_PLM�N>O_TopLink CMP EJBnHIS�

� >�"�X �PBC4J�:�;�(PTopLink�m}Hm�n

TopLink�bc�O-Rdef�g�Dh�iG)j69kl�mne�o�*&p�q�d�CrstuI�23"#)Java/v�wi&kuI�xyt�z{=|}~_#<=>'?@"(

<O6&X9kuI�xytuI>��������9�a���)@$��9����&��z��0C�^7G�xytuI���G$S���*&^79�S�S@"(

BC4J�xyt�z{&uI=G��+,�'">)A�BC���e&�����&������UI���*�23"#kuI��P1���h�B�i'"(<O6&uI��19�7G

�����������&��� !��\��9�S�S@"(

Page 41: Oracle Application Server 10g Oracle Developer Suite 10g

41

Agenda

� TopLink��

� TopLink��������

� TopLink ����

� � ��� ��

� ���

Page 42: Oracle Application Server 10g Oracle Developer Suite 10g

42

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

� OracleAS TopLink

- ����JavaVW�X�!LM�N>O

�YZ�O-R:�;�(

����4]�%'s�

�?�� :�����V�%&�<<etc.

- Hm�JmGUI� nxy

- �m���YZ�@�

Page 43: Oracle Application Server 10g Oracle Developer Suite 10g

43

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

� �����- OracleAS 10gol��6%&�_��

���CD�BlOracleAS 10g_��

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

� FL�MW�SE���� � k���uvI,>W,$

- :�;�(���� kuv

��o>��! qr��� � k��mCn

- � kuv

��o>��! qrMW�SE���� � k��mCn

- ,�">�

�@�_cd�,�">��,>W,$jFL: Foundation Library

MW: Mapping Workbench

SE: Sessions Editor

TopLink 10g�OracleAS 10g���������� �CD����������

������������� !�"#������$�%&'140MB"($�)�*&

�10MB+,�-.�/!&��

Page 44: Oracle Application Server 10g Oracle Developer Suite 10g

44

日本オラクル株式会社日本オラクル株式会社日本オラクル株式会社日本オラクル株式会社

無断転載を禁ず

この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることがあります。日本オラクル社は本書の内容に関していかなる保証もいたしません。また、本書の内容に関連したいかなる損害についても責任を負いかねます。

Oracleは米国Oracle Corporationの登録商標です。文中に参照されている各製品名及びサービス名は米国Oracle Corporationの商標または登録商標です。その他の製品名及びサービス名はそれぞれの所有者の商標または登録商標の可能性があります。