• 検索結果がありません。

ValueHolder... 9 Customer.java Oracle TopLink 10g(10.1.3) È Volume3 2

N/A
N/A
Protected

Academic year: 2021

シェア "ValueHolder... 9 Customer.java Oracle TopLink 10g(10.1.3) È Volume3 2"

Copied!
15
0
0

読み込み中.... (全文を見る)

全文

(1)lê~ÅäÉ= qçéiáåâ= NMÖENMKNKPF ファーストステップ・ガイド Volume3 プレビュー版. Creation Date:. Mar 04, 2005. Last Update:. Aug 23, 2005. Version. 1.0.

(2) 目次 ........................................................................................................... 3  ......................................................................................................... 3. 

(3) .......................................................................... 4 

(4) .

(5)  ................................................................................................ 4 .................................................................................................... 6 ValueHolder .............................................................................. 9 . !

(6) "Customer.java ............................................................................... 10. ............................................................................................................. 14 . Oracle TopLink 10g(10.1.3)   .

(7)  Volume3. 2.

(8) はじめに Oracle TopLink#$% TopLink&'(Java )*+,--

(9) . /

(10) 0

(11) 1234 56

(12) 78

(13) 9:;TopLink ' Java )*+,</

(14) 0

(15) 1=>?@ABC:D O/R EFGHIJK(LMNOFPQR 6S

(16) E1TU5IJAVWX(YZA[ :D<9 Java \-]

(17) ^Z-

(18) . /

(19) 0

(20) 1_`ab^cdef g\h1IJA(JDBC !

(21) /iHA:D<Qjkglmn9op:D<q9rs:; '(TopLink A[Xt/

(22) 0

(23) 1_\h1:D. Q\-]

(24) u. vAwxt(TopLink Agyz{bQ|}~YA€:D<Ab<Xs:;. この資料の表記方法 9XtgD'‚wƒ9:; 表記方法. 説明. 例. .  /URL. toplink.jar. .  . java -version. .  !"#$%&'() *+. < >. Q„(9'(Windows †A‡Vˆ‰ŠAXtgs:q(‹ˆŒqQg ƒ(UNIX/Linux 9Ž9:;. Oracle TopLink 10g(10.1.3)   .

(25)  Volume3. 3.

(26) アプリケーションのカスタマイズ Oracle TopLink 10g(10.1.3) 6‘

(27) 1,1’F“ Volume2 9'(O/R EFGHBCA Xt”•Q/

(28) –uA—˜ TopLink \-]

(29) AuvXsXy;9'

(30) K*AXy(„™š›œžƒIJAXt\-]

(31)  ŸuA 1 E¡:DA€‰Xs:;. $¢£¤'(6‘

(32) 1,1’F“ Volume1 „™š Volume2 ¥t u¦A§¨tgD<A‡V<Xtgs:;. パラメータ・バインドの使用 uvXy. \-]

(33) ©Hª«A¬t­^D™˜ˆ(TopLink '/6. S ,9'

(34) ®Yy SQL AXs¯;Y'¥t JDBC   q

(35) A°¥ˆ±

(36) ,XtgD<'ZQgy²9:;:D JDBC  q

(37) A±

(38) ,XtgD³'

(39) A X(®Zˆ-´\1’

(40) , ,NOFPIJAµ:D<9( 6S

(41) E 1A¶·®D<q9rs:;. -´\1’

(42) , ,NOFPIJ'(Web \-]

(43) QR 3 ¸\-]

(44) ˆ„@D 6S

(45) E1¶·y²ˆ‹ˆMdˆ:D <q9rs:;. TopLink 9

(46) „™š-´\1’

(47) , ,NOFPA:D ™˜ˆ¹v:Dˆ'$%qºƒs:; •. !

(48) »9¼<ˆ½B. •. hF XML 9hF¥¾ˆ=Xt½B. 9'¿Àˆ/Á½BqÂJQ™˜ˆhF XML ˆ½B:DA Xs:;sà Workbench 9¥SampleApp¥stage¥sessions.xml A|r([©H ] Ä [] )A|rs:;[JDBC ][¥t

(49) A. Oracle TopLink 10g(10.1.3)   .

(50)  Volume3. 4.

(51) ]<[:ÅtÆANOFP]ˆÇ+FAÈYthF6‘. AÉÊXs. :;.  1

(52) 

(53)   

(54) 

(55)   ‚ˆ SampleClient.java  main ËF try )©FA$%™˜ˆÌÍX(6 c  ËFA:Åto—:D™˜ˆXs:; try { sampleClient.readAllSample(); sampleClient.querySample(); sampleClient.cacheSample(); sampleClient.createSample(); sampleClient.updateSample(); sampleClient.deleteSample(); } catch (Exception e) { (省略). SampleClient.java AÎÏ! . XyÐ(setupSample.sql Ao—Xt/

(56) . 0

(57) 1A-hF,Xt^Z(SampleClient Ao—Xs:;©Hª«ˆ™ƒ(

(58)  AXy SQL q}—®YtgD<qÑÒ9rs:; ---- readAllSample()の開始 ---[TopLink Finer]:--initialize identitymaps -- Customer に対して問合せを発行 -[TopLink Fine]: --SELECT ID, NAME, ADDR_ID FROM CUSTOMER [TopLink Fine]: --SELECT ID, CITY, STREET FROM ADDRESS WHERE (ID = ?) bind => [1]. Oracle TopLink 10g(10.1.3)   .

(59)  Volume3. 5.

(60) [TopLink Fine]: --SELECT ID, CITY, STREET FROM ADDRESS WHERE (ID = ?) bind => [2] [TopLink Fine]: --SELECT ID, CITY, STREET FROM ADDRESS WHERE (ID = ?) bind => [3] -- 取得した Customer とその関連オブジェクト(Address,Phone)を表示 -[顧客 1: オラクル太郎] [住所 1: 東京都 千代田区紀尾井町] [TopLink Fine]: --SELECT P_NUMBER, ID, CUST_ID FROM PHONE WHERE (CUST_ID = ?) bind => [1] [電話番号 1: 03-1111-1111] [電話番号 2: 03-2222-2222] (省略). 問合せオプションの使用 9'(AXt/

(61) žƒÓˆ}—®YDÔA ÕZ:<AÖ×Xs:; TopLink /6S ,½B9'(ØÔ/

(62) žƒÓˆ-

(63) F9ÙÚ ?@ZYy

(64) ÛF,)*+,uvy²qÜ݈}—®Ys:;Þ¨ ß readAllSample()9'($%©Hª«^ZŽÑÒ9rD™˜ˆ 3 c Customer  )*+,<à

(65) ÛF,)*+,9ºD Address(Phone Auv:Dy²ˆ(á 7 âq}—®Ys:; ---- readAllSample()の開始 ---[TopLink Finer]:--initialize identitymaps -- Customer に対して問合せを発行 -[TopLink Fine]: --SELECT ID, NAME, ADDR_ID FROM CUSTOMER [TopLink Fine]: --SELECT ID, CITY, STREET FROM ADDRESS WHERE (ID = ?) bind => [1] [TopLink Fine]: --SELECT ID, CITY, STREET FROM ADDRESS WHERE (ID = ?) bind => [2] [TopLink Fine]: --SELECT ID, CITY, STREET FROM ADDRESS WHERE (ID = ?) bind => [3] -- 取得した Customer とその関連オブジェクト(Address,Phone)を表示 -[顧客 1: オラクル太郎] [住所 1: 東京都 千代田区紀尾井町] [TopLink Fine]: --SELECT P_NUMBER, ID, CUST_ID FROM PHONE WHERE (CUST_ID = ?) bind => [1] [電話番号 1: 03-1111-1111] [電話番号 2: 03-2222-2222] [顧客 2: ウェンディ] [住所 2: 東京都 世田谷区用賀] [TopLink Fine]: --SELECT P_NUMBER, ID, CUST_ID FROM PHONE WHERE (CUST_ID = ?) bind => [2] [電話番号 3: 03-3333-3333] [顧客 3: ハイディ] [住所 3: 大阪府 大阪市北区堂島] [TopLink Fine]: --SELECT P_NUMBER, ID, CUST_ID FROM PHONE WHERE (CUST_ID = ?) bind => [3] [電話番号 4: 03-4444-4444] ---- readAllSample()の終了 ----. Oracle TopLink 10g(10.1.3)   .

(66)  Volume3. 6.

(67)

(68) ÛF,)*+,žãäˆ/

(69) 0

(70) 1ˆ}—®YDÔAÕZ: y²(*žƒ<Fǝžƒ<åßYDAXs:; *žƒ<'æ‡ç:wƒ(Ë

(71) 1)*+,<

(72) ÛF,)*+,A è#*&AXtéêXtžã:Dy²9:;9' Customer )*+,uvy²ˆ CUSTOMER ADäˆ(èAXt ADDRESS /

(73) ŽÓˆžãXt Address )*+,Auv:D™˜ˆ½BX s:;*žƒA—˜y²½Bˆ'(TopLink )*+,AXy äˆ!

(74) »9ëB:D<(-

(75) FEFGHBCäˆ /6S ,Ÿu<XtëB:Dqºƒs:q(9'Ðì9½BXs:; Workbench 9 ¥SampleApp¥mw¥SampleProject.mwp A | r ( Customer Ä Address  1 = 1 EFGHBCíî9ˆ[è]ˆÇ+FAÈYs :;.  2  Fǝžƒ<'(žƒ=ð

(76) ÛF,)*+,/

(77) A(ñòN

(78) óAë BXtÜ݈D9'Qj(1 â9éêžã:Dy² 9:#'Ë

(79) 1)*+,žƒ<'Ý<Xt}—®Ys:&; *žƒ<ˆ(FǝžƒA—˜y²½Bˆ')*+,A Xyäˆ!

(80) »9ëB:D<(-

(81) FEFGHBC äˆ/6S ,Ÿu<XtëB:D<qºƒs:;9ŽÐì9½B:D. Oracle TopLink 10g(10.1.3)   .

(82)  Volume3. 7.

(83) <<X(Customer Ä Phone  1 =ôEFGHBCíî9ˆ[Fǝ žƒ]ˆÇ+FAÈYs:;.  3    !"          ½ B A § ¨ y Z ( Mapping Workbench  . õ Û

(84) 9 SampleProject Aö-FX([÷1±

(85) ,] Ä [©*+,øù XML]<úûXt ©*+,øù XML AÎÏ÷1±

(86) ,Xs:; setupSamle.sql AÎÏo—Xt/

(87) 0

(88) 1A-hF,XyÐ(SampleClient Ao —Xtª«®YD©Hˆ™ƒ(düAÑÒ:D<q9rs:; readAllSample()  o — » ˆ 7 â } — ® Y t g y    ' ( CUSTOMER  < ADDRESS AèXtžD<(PHONE _ 2 âˆÕýXtg s:; ---- readAllSample()の開始 ---[TopLink Finer]:--initialize identitymaps -- Customer に対して問合せを発行 -[TopLink Fine]: --SELECT t1.ID, t1.NAME, t1.ADDR_ID, t0.ID, t0.CITY, t0.STREET FROM ADDRESS t0, CUSTOMER t1 WHERE (t0.ID = t1.ADDR_ID) -- 取得した Customer とその関連オブジェクト(Address,Phone)を表示 -[顧客 1: オラクル太郎] [住所 1: 東京都 千代田区紀尾井町] [TopLink Fine]: --SELECT t0.P_NUMBER, t0.ID, t0.CUST_ID FROM PHONE t0, CUSTOMER t1 WHERE (t0.CUST_ID = t1.ID) [電話番号 1: 03-1111-1111] [電話番号 2: 03-2222-2222] [顧客 2: ウェンディ] [住所 2: 東京都 世田谷区用賀] [電話番号 3: 03-3333-3333]. Oracle TopLink 10g(10.1.3)   .

(89)  Volume3. 8.

(90) [顧客 3: ハイディ] [住所 3: 大阪府 大阪市北区堂島] [電話番号 4: 03-4444-4444] ---- readAllSample()の終了 ----. sy(ÖþAëBXyØÔ/

(91) 䈎(Qè<Öþ qXj—YtgD<q(querySample()©Hª«^ZÑÒ:D<q9 rs:; ---- querySample()の開始 ---[TopLink Finer]: --initialize identitymaps -- 住所が東京都である Customer を検索 -[TopLink Fine]: --SELECT t1.ID, t1.NAME, t1.ADDR_ID, t0.ID, t0.CITY, t0.STREET FROM ADDRESS t0, CUSTOMER t1 WHERE ((t0.CITY = ?) AND (t0.ID = t1.ADDR_ID)) bind => [東京都] -- 取得した Customer とその関連オブジェクト(Address,Phone)を表示 -[顧客 1: オラクル太郎] [住所 1: 東京都 千代田区紀尾井町] [TopLink Fine]: --SELECT t0.P_NUMBER, t0.ID, t0.CUST_ID FROM PHONE t0, ADDRESS t2, CUSTOMER t1 WHERE (((t0.CUST_ID = t1.ID) AND (t2.CITY = ?)) AND (t2.ID = t1.ADDR_ID)) bind => [東京都] [電話番号 1: 03-1111-1111] [電話番号 2: 03-2222-2222] [顧客 2: ウェンディ] [住所 2: 東京都 世田谷区用賀] [電話番号 3: 03-3333-3333] ---- querySample()の終了 ----. *žƒ(FǝžƒQR ˆcgt'($ %NP ,A

(92) Xtj ®g; TopLink Devevloper's Guide 11. Optimization - Query Optimization. ValueHolder インダイレクションの使用 TЈ Customer Ä Address 2 1 = 1 -

(93) FˆA UXs:; Customer Ä Phone 2™˜ˆ!A:D 1 =ô-

(94) F9 '/6S. ,9`a<åßYDq9rs:q(. 1 = 1 -

(95) F9[9rD ValueHolder A:Dy²ˆ. Oracle TopLink 10g(10.1.3)   .

(96)  Volume3. 9.

(97) '!

(98) ÌÍqˆQƒs:;9'$%1’Fˆt ValueHolder A Customer Ä Address 2ˆUXs:;. ValueHolder ' 1 =ô-

(99) F9Ž:D< q9rs:;ValueHolder  ˆcgt'$%NP ,A

(100) Xtj ®g; TopLink Devevloper's Guide 33. Understanding Mappings - Mapping Concepts. 1. address nBCÌÍ sà Customer  1 address nBC< setter/getter ËFA‚™ ˜ˆÌÍX(ÎÏ!  Xs:; サンプル・コード:Customer.java (太字部分が変更および追加箇所) サンプル・コード: package sample; import java.util.Collection; import java.util.Vector; import oracle.toplink.indirection.ValueHolder; import oracle.toplink.indirection.ValueHolderInterface; public class Customer { /** 顧客番号(主キー)を表す属性 */ private int id; /** 顧客の名前を表す属性 */ private String name; /** * ValueHolder インダイレクションを使用して Address オブジェクトへの * 1 対 1 マッピングを定義するための属性 */ private ValueHolderInterface address; /** 顧客の持つ複数の電話番号への 1 対多マッピング */ private Collection phones; /** * 初期化コードを含むコンストラクタ */ public Customer() { this.name = ""; //ValueHolder の初期化 this.address = new ValueHolder(); this.phones = new Vector(); } (省略) public void setAddress(Address address) {. Oracle TopLink 10g(10.1.3)   .

(101)  Volume3. 10.

(102) //ValueHolder に値をセット this.address.setValue(address); } public Address getAddress() { //ValueHolder から値を取得 return (Address)address.getValue(); } (省略) }. 2.. Workbench  1BCA-6FP Customer.java AÌ ÍXt Î! . X yÐ (Workbench AŸ X t. ¥SampleApp¥mw¥SampleProject.mwp A | r s : ; . õ Û

(103) 9 Customer /i1- Aö-FXt[ 1-6FP]AúûX(. 1BCA-6FPXs:#EFGHqÁ°¥9ºD< Fh

(104) *q 1’

(105) 1

(106) ˆç®Ys:q(Xt¹gs¯&;.  4#$% #$%. 3.. address nEFGHBCÌÍ Customer /i1-  address nAúûX(÷/i íî9[ ]ˆÇ+FAXs:;h9[è]ˆÇ+FA XsXyq(düAÑÒ:Dy²ˆ(Ç+FA6ˆ Xt„rs:#phones nˆ½BXyFǝžƒ½B'RZ9޹gs ¯&;. Oracle TopLink 10g(10.1.3)   .

(107)  Volume3. 11.

(108)  5 address &'( ) %#* + &'( ) %#* +. 4.. ©*+,øù XML AÎ÷1±

(109) , address n  EFGHB CÌ ÍÐ ( ©* + ,øù XML A ¥SampleApp¥stage /i,-ˆÎÏ÷1±

(110) ,Xs:;. 5.. \-]

(111) Îo— setupSample.sql Ao—Xt/

(112) 0

(113) 1A-hF,XyÐ(SampleClient A Îo—Xs:;½BXy ValueHolder ˆ™ƒ(Customer  )*+,uvˆ˜ ADDRESS _< Address )*+,u vq(address n_\h1:DÓs9›œ®YtgD<qÑÒ9rs :;. ---- readAllSample()の開始 ---[TopLink Finer]:--initialize identitymaps -- Customer に対して問合せを発行 -[TopLink Fine]: --SELECT ID, NAME, ADDR_ID FROM CUSTOMER -- 取得した Customer とその関連オブジェクト(Address,Phone)を表示 -[顧客 1: オラクル太郎] [TopLink Fine]: --SELECT ID, CITY, STREET FROM ADDRESS WHERE (ID = ?) bind => [1] [住所 1: 東京都 千代田区紀尾井町] [TopLink Fine]: --SELECT t0.P_NUMBER, t0.ID, t0.CUST_ID FROM PHONE t0, CUSTOMER t1 WHERE (t0.CUST_ID = t1.ID) [電話番号 1: 03-1111-1111] [電話番号 2: 03-2222-2222] [顧客 2: ウェンディ]. Oracle TopLink 10g(10.1.3)   .

(114)  Volume3. 12.

(115) [TopLink Fine]: --SELECT ID, CITY, STREET FROM ADDRESS WHERE (ID = ?) bind => [2] [住所 2: 東京都 世田谷区用賀] [電話番号 3: 03-3333-3333] [顧客 3: ハイディ] [TopLink Fine]: --SELECT ID, CITY, STREET FROM ADDRESS WHERE (ID = ?) bind => [3] [住所 3: 大阪府 大阪市北区堂島] [電話番号 4: 03-4444-4444] ---- readAllSample()の終了 ----. 9'ŸuA¿Àˆ:Dy²ˆ(Workbench 9*žƒ½ BA6ˆXt^ZIJAXsXyq(*žƒ <'EFGHBC. !9RZ^鈍B®. YD@9'ºƒs¯;EFGHBC9*žƒA/6S. ,96. ˆ½BX()*+,AXy9Ü݈*žƒA :D/XQgAëB:D<qÂJ9:;)*+,AXyž ƒ(„™šˆcgt'$%NP ,A

(116) Xtj ®g; TopLink Devevloper's Guide 11. Optimization - Query Optimization. Oracle TopLink 10g(10.1.3)   .

(117)  Volume3. 13.

(118) まとめ TopLink 6‘

(119) 1,1’F“ Volumn1"Volume3 9'(TopLink AXt$%<A —gsXy; • ñòN

(120) A#c™˜Q/

(121) 0

(122) 1<  12 O/R EFGHA(-

(123)  FEFGHQRAXtBC • ¤$AXt%N

(124) óAžã:D™˜ˆ¹v • •&Q'¸\-]

(125) AuvXt(()bQ/

(126) –u<}—®YD SQL AÑÒ • TopLink ˆ™ƒVW®YD/

(127) *NOFPdüAÑÒ • TopLink ˆ™t—YD/

(128) –uA 1 E¡:Dy²*žƒ(›œ žƒQRIJA TopLink '9žƒ·+yIJ,ˆŽ(®ZˆkÏQ O/R EFGH K 6 S

(129) E  1 A ¶ · ®  D y ²       I J Q R A V W X s : ; '  TopLink Devevloper's GuideA¼-%®g;. Oracle TopLink 10g(10.1.3)   .

(130)  Volume3. 14.

(131) ,-.#/0123. Copyright © 2005 Oracle Corporation Japan. All Rights Reserved. ./0A1à Æ2'ºjs9Ž 39ºƒ(40®YtgD56'7QXˆÌÍ®YD<qºƒ s:;8) . 9')2:¿ˆÙXtg^QDÉ;ŽgyXs¯;sy()2:¿ˆ. ÙÚXyg^QD<=ˆcgtŽ>?A@g^As:; Oracle '(  9BCDE9:;Oracle8(Oracle8i(Oracle9i(Oracle10g(Net8 '(   9DEsy'BCDE9:; ,:ÅtF¦æ<GHæ'(IÝy²ˆJ40®Yt„ƒ(àYKYLMìD E³qºƒs:;. Oracle TopLink 10g(10.1.3)   .

(132)  Volume3. 15.

(133)

参照

関連したドキュメント

In this diagram, there are the following objects: myFrame of the Frame class, myVal of the Validator class, factory of the VerifierFactory class, out of the PrintStream class,

(4S) Package ID Vendor ID and packing list number (K) Transit ID Customer's purchase order number (P) Customer Prod ID Customer Part Number. (1P)

該当お船積みの Invoice company のみが閲覧可能と なります。Booking 時に Invoice company をご指定くだ さい。ご指定ない場合は、自動的に Booking Party =

Efficiency use of natural energy and storage systems... Application of E-Bike

従来の MAAP コード(バージョン 4.0 ) (以下、 MAAP4

NOTE: For the period of 10/1/2019 through 1/10/2020, due to a data irregularity in the customer impact lists, some indirect sales customers may 

Samples  delivery  timing  will  be  subject  to  request  date,  sample  quantity  and  special  customer  packing/label requirements. .

解析結果を図 4.3-1 に示す。SAFER コード,MAAP