1
Oracle Application Server 10gOracle Developer Suite 10g
����������������
Oracle Application Server
TopLink 10g
2
Agenda
� TopLink��
� TopLink��������
� TopLink ����
� � ��� ��
� ���
3
Agenda
� TopLink��
� TopLink��������
� TopLink ����
� � ��� ��
� ���
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
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._^��
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������¶·�¸��3Te�7/0�_^��¹ ´º3O³²��Java��������a56²�34�jJ2EE,pq»¦3�+Tomcat�<=�·��X¼-¶,pq��a56�
789.3@��
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�^��
8
Agenda
� TopLink89
� TopLink:;<=>*?@�A
� TopLink�BCDE
� '���*�FG
� H*I
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:;���"<��
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
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@�%
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>....
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���
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����
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������}³´��µ�¶·����
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���
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); //�����
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���
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
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'��
21
��������������������������������������������
� �����������������
- ���������� ���
� ��������������������
- ����������������� ����
������������������������������������������������
DB ��� ��� ��� ���
DB����������������������������
��������������������������������
����� ��������� ��������� ��������� ��������� !"������ !"������ !"������ !"�
������������
����������������������������������������������������
#��$%&�����#��$%&�����#��$%&�����#��$%&�����
TopLink���������� �������������������� !
"�#$��%&��'������()* $�+,�-�./����01�����2
�340� !�����2�5�/��6789:;)$�<= �>���&��'��DB?�����@A.�5�89:;)$�BC(D�'��E0� !DBB)& -89:
;)$FG�H $�IJ��������� ������K-��L� !
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*.�/
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��
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���
25
Agenda
� TopLink��
� TopLink��������
� TopLink ����
� � ��� ��
� ���
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'(
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 !"
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�����$%�������'
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'()
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���$
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����
������
32
������������������������������������
� ���������
- ���������� ���
� �� ��������
- ������������������
� ��������������
� � ��!"#
- ������ !
- TopLink�� !"#$%SQL &'
TopLinkn�o�Epqh����Vrs<���
TopLink�P+N!t?@\ (uETopLink�#$%&'()*+�<=� :�������
5vwxyVz{�|2����������
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£�¤¥����������
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���
�������
35
TopLink Web Client
36
Agenda
� TopLink23
� TopLink456789:;<=
� TopLink�>?@A
� B�CD9�EF
� G9H
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)%
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@"(
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@"(
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@"(
41
Agenda
� TopLink��
� TopLink��������
� TopLink ����
� � ��� ��
� ���
42
������������
� OracleAS TopLink
- ����JavaVW�X�!LM�N>O
�YZ�O-R:�;�(
����4]�%'s�
�?�� :�����V�%&�<<etc.
- Hm�JmGUI� nxy
- �m���YZ�@�
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+,�-.�/!&��
44
日本オラクル株式会社日本オラクル株式会社日本オラクル株式会社日本オラクル株式会社
無断転載を禁ず
この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることがあります。日本オラクル社は本書の内容に関していかなる保証もいたしません。また、本書の内容に関連したいかなる損害についても責任を負いかねます。
Oracleは米国Oracle Corporationの登録商標です。文中に参照されている各製品名及びサービス名は米国Oracle Corporationの商標または登録商標です。その他の製品名及びサービス名はそれぞれの所有者の商標または登録商標の可能性があります。
Top Related