lê~åäé= qçéiáåâ= NMÖENMKNKPF Volume1 Creation Date: Mar 04, 2005 Last Update: Aug 23, 2005 Version 1.0
...3... 3 TopLink 10.1.3 È... 3 TopLink...5 TopLink åø... 6 TopLink å... 7... 8 Workbench O/R ~... 8 Workbench À ~... 8 Foundation Library å... 8 TopLink O/R...10... 11 Customer.java... 12 Address.java... 14 Phone.java... 15... 16 setupsample.sql... 18 O/R ~... 19 À ~... 36...41 Oracle TopLink 10g(10.1.3) È Volume1 2
Oracle TopLink TopLink Java - TopLink Java ~ O/R Java å JDBC š TopLink TopLink gå å Ò å p{ /URL toplink.jar java -version Ø nç < > Windows Ø Ê UNIX/Linux TopLink 10.1.3 TopLink 10g 10.1.3 È Developer Preview 4 åø TopLink å Workbench JDK1.4 1. toplink_1013dp4.zip <ORACLE_HOME> 2. <ORACLE_HOME> toplink bin setenv.cmd JAVA_HOME JRE DRIVER_CLASSPATH JDBC ~ ñ set JAVA_HOME=C: j2sdk1.4.2 jre set DRIVER_CLASSPATH=C: oracle product 10.1.0 db jdbc lib ojdbc14.jar Oracle TopLink 10g(10.1.3) È Volume1 3
TopLink 10g 10.1.3 È åø ~ Oracle TopLink 10g(10.1.3) È Volume1 4
TopLink Java å o JDBC ² å JDBC SQL p å š š š JDBC JDBC SQL p åí å o j m å TopLink JDBC å å ² p ~ Ì å TopLink JDBC SQL Java å Java TopLink 1 Oracle TopLink TopLink Ê o O/R Ž Ø GUI å š Oracle TopLink 10g(10.1.3) È Volume1 5
TopLink TopLink å TopLink Workbench O/R ~ ÀØ ³ ³ À ~ GUI Java Java ~ Java ~ ~ 2 Workbench O/R ~ 3 Workbench ÀØ ~ Oracle TopLink 10g(10.1.3) È Volume1 6
Oracle TopLink 10.1.2 ÀØ ~ GUI Sessions Editor Workbench 10.1.3 Sessions Editor Workbench Workbench XML ÀØ ~ Sessions Editor ñ Foundation Library À TopLink å Foundation Library API TopLink TopLink å g å 4 4 TopLink å Oracle TopLink 10g(10.1.3) È Volume1 7
ñ å ~ Java m Customer Order CUSTOMER ORD o Workbench ~ Workbench p Java åø Workbench O/R ~ Workbench O/R ~ Workbench O/R ~ ~ l å XML XML À Workbench Workbench À l ~ l ~ XML l À SQL å ~ À å XML XML À Foundation Library XML XML Foundation Library Oracle TopLink 10g(10.1.3) È Volume1 8
Foundation Library Java å API å JDBC XML XML XML ³ XML {š å À ~ ¾ Oracle TopLink 10g(10.1.3) È Volume1 9
TopLink O/R TopLink å TopLink O/R ~ À SampleApp lib JDBC ojdbc14.jar TopLink toplink.jar Oracle XML xmlparserv2.jar EJB QL antlr.jar JDBC Oracle Database 10g ~ 5 Windows È Oracle TopLink Ê Oracle TopLink 10g(10.1.3) È Volume1 10
ñ Customer Phone Address Customer Phone Customer Address ñ ~ 6 ñ 3 Oracle TopLink 10g(10.1.3) È Volume1 11
Customer.java package sample; import java.util.collection; import java.util.vector; public class Customer { /** ( ) */ private int id; /** */ private String name; /** 1 1 */ private Address address; /** 1 */ private Collection phones; /** * */ public Customer() { this.name = ""; this.address = new Address(); this.phones = new Vector(); public void setid(int id) { this.id = id; public int getid() { return id; public void setname(string name) { this.name = name; public String getname() { return name; public void setaddress(address address) { this.address = address; public Address getaddress() { return address; public void setphones(collection phones) { this.phones = phones; public Collection getphones() { return phones; /** * * Phone * Customer Oracle TopLink 10g(10.1.3) È Volume1 12
*/ public void addphone(phone newphone) { getphones().add(newphone); newphone.setowner(this); /** * * Phone * Customer null */ public void removephone(phone phonetoremove) { getphones().remove(phonetoremove); phonetoremove.setowner(null); /** * tostring() */ public String tostring() { return "[ " + getid() + ": " + getname() + "]"; Oracle TopLink 10g(10.1.3) È Volume1 13
Address.java package sample; public class Address { /** */ private int id; /** */ private String street; /** */ private String city; /** * */ public Address() { this.street = ""; this.city = ""; public void setid(int id) { this.id = id; public int getid() { return id; public void setstreet(string street) { this.street = street; public String getstreet() { return street; public void setcity(string city) { this.city = city; public String getcity() { return city; /** * tostring() */ public String tostring() { return "[ " + getid() + ": " + getcity() + " " + getstreet() + "]"; Oracle TopLink 10g(10.1.3) È Volume1 14
Phone.java package sample; public class Phone { /** */ private int id; /** */ private String pnumber; /** 1 1 */ private Customer owner; /** * */ public Phone() { this.pnumber = ""; this.owner = new Customer(); public void setid(int id) { this.id = id; public int getid() { return id; public void setpnumber(string pnumber) { this.pnumber = pnumber; public String getpnumber() { return pnumber; public void setowner(customer owner) { this.owner = owner; public Customer getowner() { return owner; /** * tostring() */ public String tostring() { return "[ " + getid() + ": " + getpnumber() + "]"; Oracle TopLink 10g(10.1.3) È Volume1 15
sample ~ SampleApp src sample» UNIX Ø { ( ) ( ) D: SampleApp>javac -sourcepath src -classpath stage;lib toplink.jar -d stage src sample *.java SampleApp stage sample 3 ñ 3 CUSTOMER ADDRESS o PHONE CUSTOMER o 7 SQL ñ SQL ñ 3 Ž Ž SEQUENCE À Ž Ž Oracle TopLink 10g(10.1.3) È Volume1 16
Ž Ž Ž 1 Ž 10 ~ m Ž 11 Ž Ž Ž TopLink Devevloper's Guide 20. Understanding Projects Understanding Sequencing in Relational Projects Oracle TopLink 10g(10.1.3) È Volume1 17
setupsample.sql DROP TABLE PHONE; DROP TABLE CUSTOMER; DROP TABLE ADDRESS; DROP TABLE SEQUENCE; -- CREATE TABLE ADDRESS( ID NUMBER(15,0), -- STREET VARCHAR2(40), -- CITY VARCHAR2(20), -- CONSTRAINT ADDRESS_ID_PK PRIMARY KEY(ID) ); -- CREATE TABLE CUSTOMER( ID NUMBER(15,0), -- NAME VARCHAR2(20), -- ADDR_ID NUMBER(15,0), -- CONSTRAINT CUSTOMER_ID_PK PRIMARY KEY(ID), CONSTRAINT CUSTOMER_ADDR_ID_FK FOREIGN KEY(ADDR_ID) REFERENCES ADDRESS(ID) ); -- CREATE TABLE PHONE( ID NUMBER(15,0), -- P_NUMBER VARCHAR2(20), -- CUST_ID NUMBER(15,0), -- CONSTRAINT PHONE_ID_PK PRIMARY KEY(ID), CONSTRAINT PHONE_CUST_ID_FK FOREIGN KEY(CUST_ID) REFERENCES CUSTOMER(ID) ); -- CREATE TABLE SEQUENCE( SEQ_NAME VARCHAR2 (20), -- SEQ_COUNT NUMBER (15,0), -- CONSTRAINT SEQUENCE_SEQ_NAME_PK PRIMARY KEY(SEQ_NAME) ); -- INSERT INTO ADDRESS VALUES(1, ' ', ' '); INSERT INTO ADDRESS VALUES(2, ' ', ' '); INSERT INTO ADDRESS VALUES(3, ' ', ' '); INSERT INTO CUSTOMER VALUES(1, ' ', 1); INSERT INTO CUSTOMER VALUES(2, ' ', 2); INSERT INTO CUSTOMER VALUES(3, ' ', 3); INSERT INTO PHONE VALUES(1, '03-1111-1111', 1); INSERT INTO PHONE VALUES(2, '03-2222-2222', 1); INSERT INTO PHONE VALUES(3, '03-3333-3333', 2); INSERT INTO PHONE VALUES(4, '03-4444-4444', 3); -- INSERT INTO SEQUENCE VALUES('ADDRESS_SEQ', 10); INSERT INTO SEQUENCE VALUES('CUSTOMER_SEQ', 10); INSERT INTO SEQUENCE VALUES('PHONE_SEQ', 10); COMMIT; Oracle TopLink 10g(10.1.3) È Volume1 18
O/R Workbench ~ XML ~ 1. Workbench O/R <ORACLE_HOME>/toplink/bin/workbench.cmd Workbench [ ] [ ] [ ] TopLink Workbench ñ [ ] SampleProject [ ] Oracle [OK] 8 Workbench [ ] [ {] { { ~ { SampleApp mw ~ SampleProject Oracle TopLink 10g(10.1.3) È Volume1 19
9 { 2. ~ ~ Workbench ñ SampleProject ñ [ ] [ ] SampleApp stage [ ] [ {] { Ê ñ { 3. SampleProject [ ] 10 / Oracle TopLink 10g(10.1.3) È Volume1 20
[ / ] sample [>] sample 11 [OK] ñ ~ ~ ñ 12 Oracle TopLink 10g(10.1.3) È Volume1 21
TopLink Ê ~ ~ ~ ~ l TopLink Devevloper's Guide 26. Understanding Descriptors 4. ~ ~ ~ Database ñ [~ ] [ ] SampleLogin [OK] 13 [~ ] SampleLogin ³ l JDBC ³ URL ~ Oracle TopLink 10g(10.1.3) È Volume1 22
14 l ~ [ {] [ å ] [ ] SampleLogin ~ Oracle TopLink 10g(10.1.3) È Volume1 23
å å å Ø TopLink 2 å Ø ³ l 1 Workbench å Development Login Deployment Login å Ø ~ å XML ³ l 1 À ~ À XML ~ XML ~ XML ~ XML À ~ ³ Àå nç ~ À XML ~ ³ ~ l ~ ñ 15 Oracle TopLink 10g(10.1.3) È Volume1 24
5. ~ ~ Database [ { /Ç ] 16 /Ç [ ] ~ [ ] [ ] SEQUENCE o 3 [OK] Oracle TopLink 10g(10.1.3) È Volume1 25
17 ñ 18 Databese Ì Oracle TopLink 10g(10.1.3) È Volume1 26
19 6. ~ ~ Address [ l] ñ [ ] ñ Address ADDRESS ñ 20 Customer CUSTOMER Phone PHONE Oracle TopLink 10g(10.1.3) È Volume1 27
7. Address ~ Address Address š ñ ADDRESS city š [ ] [ ³] 21 ñ ~ [ ] city š CITY 22 id š ID street š STREET ID ~ Address ñ Oracle TopLink 10g(10.1.3) È Volume1 28
8. Customer id š name š ~ Address Customer id š ID name š NAME [ ³] 9. Customer Address 1 1 ~ Customer address š Address 1 1 ~ address š [ ] [ ] 23 1 1 ñ [ ] [ ] Address [ ] Oracle TopLink 10g(10.1.3) È Volume1 29
24 Customer Address 1 1 ~ privately owned ~ Address Customer { o ~ [ ] [ ] CUSTOMER ~ ADDRESS o Oracle TopLink 10g(10.1.3) È Volume1 30
25 ~ 10. Customer Phone 1 o ~ Customer phones š Phone 1 o ~ phones š [ ] [ o] 26 1 o ñ [ ] [ ] Phone [ ] [ ] Oracle TopLink 10g(10.1.3) È Volume1 31
27 Customer Phone 1 o ~ TopLink Customer Phone 1 o ~ TopLink Devevloper's Guide 33. Understanding Mappings Mapping Concepts - Indirection o ~ [ ] [ ] PHONE ~ CUSTOMER o Oracle TopLink 10g(10.1.3) È Volume1 32
28 ~ 11. Phone id š pnumber š Address Customer Phone id š pnumber š [ ³] ~ id š ID pnumber š P_NUMBER 12. Phone Customer 1 1 ~ Phone owner š Customer 1 1 ~ [ ] [ ] Customer Phone Customer [ ] Phone Customer Phone Customer Oracle TopLink 10g(10.1.3) È Volume1 33
29 Phone Customer 1 1 ~ [ ] PHONE CUSTOMER o [ ] 30 ~ 13. Ž ~ Ž ~ SampleProject [ Ž ] Ž Ž SEQUENCE Ž SEQ_NAME Ž Oracle TopLink 10g(10.1.3) È Volume1 34
SEQ_COUNT [ Ž ] Ž [ ] 50 ~ 31 Ž ~ 14. Ž ~ Ž ~ Address [ Ž ] [ ] ADDRESS_SEQ Ž Ž Ž ~ [ ] ADDRESS [ ] ID 32 Ž ~ Customer Phone Ž ~ Ž CUSTOMER_SEQ PHONE_SEQ ID Oracle TopLink 10g(10.1.3) È Volume1 35
15. XML ~ XML ~ { SampleProject [ ] [ XML] XML { SampleApp stage SampleProject [ {] 33 XML ~ SampleApp stage XML ~ Workbench À ~ XML À ~ 1. Workbench [ ] [ ] [ ] ñ [ ] [ {] { sessions.xml { SampleApp stage { Oracle TopLink 10g(10.1.3) È Volume1 36
34 sessions [ ] [ ] 35 ñ [ ] SampleSession [ ] [ ] Oracle TopLink 10g(10.1.3) È Volume1 37
36 Java m Web 3 m ~ TopLink Devevloper's Guide 75. Understanding TopLink Sessions [OK] SampleSession ñ ~ ~ ñ ñ Oracle TopLink 10g(10.1.3) È Volume1 38
37 [ ] [ {] À { Ê ñ { TopLink À Ò 1 ³ l ~ XML l ~ À 2. XML ~ XML ~ SampleSession [ ] [ ] ñ [ ] [ ] XML ~ XML [m ] SampleProject.xml 38 XML ~ Oracle TopLink 10g(10.1.3) È Volume1 39
3. ~ À ³ l ~ [ ] [³ ] JDBC ³ URL 39 ~ sessions.xml ~ Workbench ~ ~ XML { Workbench SampleApp stage sessions.xml Oracle TopLink 10g(10.1.3) È Volume1 40
Oracle š O/R Oracle TopLink TopLink O/R ~ Volume2 ~ O/R Oracle TopLink 10g(10.1.3) È Volume1 41
ò Copyright 2005 Oracle Corporation Japan. All Rights Reserved. ô ³ l nç ò Oracle ò å Oracle8 Oracle8i Oracle9i Oracle10g Net8 ò å ³ m Oracle TopLink 10g(10.1.3) È Volume1 42