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

TopLink å SampleClient.java... 5 Ò readallsample() querysample() cachesample() Ç..

N/A
N/A
Protected

Academic year: 2021

シェア "TopLink å SampleClient.java... 5 Ò readallsample() querysample() cachesample() Ç.."

Copied!
22
0
0

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

全文

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

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

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

(4)    1.................................................................................. 4   ................................................................ 4.

(5)  SampleClient.java ............................................................................. 5 !"  #$.................................................................................... 8 % ..................................................................................................... 9 &'().................................................................................................................. 10 readAllSample()&'() ....................................................................................... 11 querySample()&'().......................................................................................... 12 cacheSample()&'() ......................................................................................... 13.

(6)    2................................................................................ 14 *+,*-./0123 ......................................................................... 14 createSample()&'()......................................................................................... 16 updateSample()&'()........................................................................................ 19 deleteSample()&'()......................................................................................... 19. ............................................................................................................. 21 . Oracle TopLink 10g(10.1.3)   .

(7)  Volume2. 2.

(8) はじめに Oracle TopLink456 TopLink78*Java 9:;<=>-?@

(9) ABCDE FG?HI=JKLTopLink 8 Java 9:;<=>MABNOPQRSKT O/R U1V 'WXY*Z[\]1^_`aGbU BcdFWXef!*ghi jKTMJ Java   kh?@

(10) ABlmnokpqrs t=uBWX*JDBC v 'KTM_wxtyz{J%|KTM}J~KL 8*TopLink ij!€ABl=uBKT

(11) _   ‚€*TopLink jt"ƒ„o_ †‡g#$KTMˆoM!KL. この資料の表記方法 J‰j!€tT8Ё‹JKL 表記方法. 説明. 例. .  /URL. toplink.jar. .  . java -version. .  !"#$%&'() *+. < >. _Œ*J8*Windows Že‘’!€tK}*“”}_t •‹*UNIX/Linux J–—˜JKL. Oracle TopLink 10g(10.1.3)   .

(12)  Volume2. 3.

(13) TopLink アプリケーションの開発 アプリケーションの開発 Oracle TopLink 10g(10.1.3) G™B>Bš1 ›œ Volume1 J8*TopLink    žBš1 M!€*ABM/œ =ŸB*Œ ¡ O/R U1V 'RS t!"LJ8RS!" O/R U1V 'M TopLink Ÿœ:Ÿ‰j!€*A B¢KT

(14)   !€t~KL. 5£¤¥8*G™B>Bš1 ›œ Volume1 ¦€§¨©€t TMeM!€tKL. サンプル・アプリケーションの作成 1 !"/œ =ŸB* &;<=>ª« XML*u1 XML ‰j!€A B=uBKT¬­_   Foundation Library  API ‰j!€ !KL データの問合せを行うアプリケーションの作成 ®¯°*

(15)   б;kh²! K L   ! " 0  B G ™ œ

(16) 8 SampleClient.java M G ™ œ

(17) ³  P Q € ¥SampleApp¥src¥sample ª´!KL. Oracle TopLink 10g(10.1.3)   .

(18)  Volume2. 4.

(19) サンプル・コード: サンプル・コード:SampleClient.java ド: package sample; import import import import import import. java.util.*; oracle.toplink.exceptions.*; oracle.toplink.expressions.*; oracle.toplink.queryframework.*; oracle.toplink.sessions.*; oracle.toplink.tools.sessionmanagement.*;. public class SampleClient { /** * データベースへのアクセスに使用されるセッション */ private DatabaseSession mySession; private DatabaseSession getSession() { return mySession; } private void setSession(DatabaseSession newSession) { mySession = newSession; } /** * セッションを取得しデータベースへログインするメソッド * getSession()の引数 * 第1引数 - セッション XML に定義したセッション名 * 第2引数 - セッション取得と同時にログインするかどうか(デフォルト true) */ public void login() { print("¥n¥n---- データベースへログインします ----"); DatabaseSession session = (DatabaseSession)SessionManager.getManager().getSession( "SampleSession", true); setSession(session); } /** * データベースからログアウトするメソッド */ public void logout() { if (mySession != null) { print("¥n¥n---- データベースからログアウトします ----"); mySession.logout(); } } /** * メッセージ表示のためのメソッド */ private void print(String msg) { System.out.println(msg); } /** * 顧客データを表示するメソッド */ private void printACustomer(Customer aCustomer) { print(aCustomer.toString());. Oracle TopLink 10g(10.1.3)   .

(20)  Volume2. 5.

(21) print("¥t" + aCustomer.getAddress().toString()); Iterator phones = aCustomer.getPhones().iterator(); while (phones.hasNext()) { print("¥t" + phones.next().toString()); } } /** * 複数の顧客データを表示するメソッド */ private void printCustomers(Collection customerCollecion) { Iterator customers = customerCollecion.iterator(); while (customers.hasNext()) { printACustomer((Customer)customers.next()); } } public static void main(String[] args) { SampleClient sampleClient = new SampleClient(); try { //セッションの取得とログイン sampleClient.login(); } catch (DatabaseException loginException) { System.out.println("¥n¥n エラー: データベースへのログインに失敗しました"); loginException.printStackTrace(); return; } try { sampleClient.readAllSample(); sampleClient.querySample(); sampleClient.cacheSample(); } catch (Exception e) { System.out.println("¥n¥n エラー: アプリケーションの実行中に例外が発生しました"); e.printStackTrace(); } finally { //データベースからログアウト sampleClient.logout(); } } public void readAllSample() { print("¥n¥n---- readAllSample()の開始 ----"); //キャッシュのリフレッシュ getSession().getIdentityMapAccessor().initializeIdentityMaps(); print("-- Customer に対して問合せを発行 --"); Vector customers = getSession().readAllObjects(Customer.class); print("-- 取得した Customer とその関連オブジェクト(Address,Phone)を表示 --"); printCustomers(customers); print("---- readAllSample()の終了 ----"); } public void querySample() { print("¥n¥n---- querySample()の開始 ----"); //キャッシュのリフレッシュ getSession().getIdentityMapAccessor().initializeIdentityMaps();. Oracle TopLink 10g(10.1.3)   .

(22)  Volume2. 6.

(23) print("-- 住所が東京都である Customer を検索 --"); Expression exp = new ExpressionBuilder().get("address").get("city").equal("東京都"); Vector customers = getSession().readAllObjects(Customer.class, exp); print("-- 取得した Customer とその関連オブジェクト(Address,Phone)を表示 --"); printCustomers(customers); print("---- querySample()の終了 ----"); } public void cacheSample() { print("¥n¥n---- cacheSample()の開始 ----"); print("-- 主キーを用いて Customer を検索 --"); Expression exp = new ExpressionBuilder().get("id").equal(1); Customer c = (Customer)getSession().readObject(Customer.class, exp); print("-- 取得した Customer とその関連オブジェクト(Address,Phone)を表示 --"); printACustomer(c); print("---- cacheSample()の終了 ----"); } }. Oracle TopLink 10g(10.1.3)   .

(24)  Volume2. 7.

(25) 作成したアプリケーションの理解 !"  %‡g8µ~w 3 p¶··QhgKL.  1

(26)  

(27)     ¯¸*SessionManager =ŸB‰j!€u1 ¹ºM& 'œ tKLSessionManager =ŸBJu1 ¹ºKT getSession()/01 8»¼½_T˜¾_œ }¿‹KLÀÁ8 javadoc*–!w856\^/ > ÂÃ!€wÄÅtL. ÆTopLink Devevloper's GuideÇ 78. Acquiring and Using Sessions at Runtime - Acquiring a Session from the Session Manager.    ¢   È É J 8 * SampleClient    ! " readAllSample() M querySample()/01‰j!€¦ÊM*ËÌÍÊÎR!" %!KLpt€ÀÁpt€856\^/ >ÂÃ! €wÄÅtL. ÆTopLink Devevloper's GuideÇ 96. Understanding TopLink Queries. Oracle TopLink 10g(10.1.3)   .

(28)  Volume2. 8.

(29) J8Ï¢JK}*¸Bš1 J*Ð+_` –23!€t~KL ¢}¨Ñ!"h*c¸&'Ò>Ó#tKL データ問合せの実行 !"0BG™œ

(30) SampleClient.java 56U  ‹ aœ

(31) ! KL D:¥SampleApp¥javac -sourcepath src -classpath stage;lib¥toplink.jar -d stage src¥sample¥SampleClient.java. ¥SampleApp¥stage¥sample =ŸBG™œ

(32) }Åg"MÔÕ!"h*5 6U  ‹

(33)   %!KL D:¥SampleApp¥java –classpath stage;lib¥toplink.jar;lib¥ojdbc14.jar;lib¥xmlparserv2.jar;lib¥antlr.jar sample.SampleClient. ¦ÊMÍÊP~}%Åg*Š }²ÅgKL ---- データベースへログインします ---[TopLink Info]: 2005.08.22 06:33:06.293--DatabaseSessionImpl(32961147)--TopLink、バージョン: Oracle TopLink - 10g release 2 (10.1.3.0.0DP4) (Build 050715) [TopLink Info]: 2005.08.22 06:33:08.006--DatabaseSessionImpl(32961147)--SampleSession ログインに成功 ---- readAllSample()の開始 ----- Customer に対して問合せを発行 --- 取得した Customer とその関連オブジェクト(Address,Phone)を表示 -[顧客 1: オラクル太郎] [住所 1: 東京都 千代田区紀尾井町] [電話番号 1: 03-1111-1111] [電話番号 2: 03-2222-2222] [顧客 2: ウェンディ] [住所 2: 東京都 世田谷区用賀] [電話番号 3: 03-3333-3333] [顧客 3: ハイディ] [住所 3: 大阪府 大阪市北区堂島] [電話番号 4: 03-4444-4444] ---- readAllSample()の終了 ----. ---- querySample()の開始 ----- 住所が東京都である Customer を検索 --- 取得した Customer とその関連オブジェクト(Address,Phone)を表示 -[顧客 1: オラクル太郎] [住所 1: 東京都 千代田区紀尾井町] [電話番号 1: 03-1111-1111] [電話番号 2: 03-2222-2222] [顧客 2: ウェンディ]. Oracle TopLink 10g(10.1.3)   .

(34)  Volume2. 9.

(35) [住所 2: 東京都 世田谷区用賀] [電話番号 3: 03-3333-3333] ---- querySample()の終了 ----. ---- cacheSample()の開始 ----- 主キーを用いて Customer を検索 --- 取得した Customer とその関連オブジェクト(Address,Phone)を表示 -[顧客 1: オラクル太郎] [住所 1: 東京都 千代田区紀尾井町] [電話番号 1: 03-1111-1111] [電話番号 2: 03-2222-2222] ---- cacheSample()の終了 ----. ---- データベースからログアウトします ---[TopLink Info]: 2005.08.22 06:33:08.376--DatabaseSessionImpl(32961147)--SampleSession ログアウトに成功. ログの出力 %֐%א†ÅgT SQL ÔÕKT"°*&'()ØRt KLWorkbench J sessions.xml  ~*@ÙÚJ SampleSession ÛÜ!€ [&Ý ']:²!KL&Ý 'œ 8ÞßàáÛÜ!*[&Ý ' ?A

(36) ] 8Þfinerá*&'()â8Þ 0

(37) áÛÜ!KL.  2    sessions.xml ãä!åæ  %KTM*ABlçE èY SQL †è&'}()ÅgT _‹KLJ*readAllSample()* querySample()*cacheSample()%֐()ÅgT&'ÔÕ!KL. Oracle TopLink 10g(10.1.3)   .

(38)  Volume2. 10.

(39) readAllSample()のログ出力 のログ出力 readAllSample()%è8Š _&'}()ÅgK4‘’!YKwKT "°*&'()ÅgTéP*AB u1 *ABçE_`êë ìí!€¿‹K7L ---- 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 = 1) [TopLink Fine]: --SELECT ID, CITY, STREET FROM ADDRESS WHERE (ID = 2) [TopLink Fine]: --SELECT ID, CITY, STREET FROM ADDRESS WHERE (ID = 3) -- 取得した Customer とその関連オブジェクト(Address,Phone)を表示 -[顧客 1: オラクル太郎] [住所 1: 東京都 千代田区紀尾井町] [TopLink Fine]: --SELECT P_NUMBER, ID, CUST_ID FROM PHONE WHERE (CUST_ID = 1) [電話番号 1: 03-1111-1111] [電話番号 2: 03-2222-2222] [顧客 2: ウェンディ] [住所 2: 東京都 世田谷区用賀] [TopLink Fine]: --SELECT P_NUMBER, ID, CUST_ID FROM PHONE WHERE (CUST_ID = 2) [電話番号 3: 03-3333-3333] [顧客 3: ハイディ] [住所 3: 大阪府 大阪市北区堂島] [TopLink Fine]: --SELECT P_NUMBER, ID, CUST_ID FROM PHONE WHERE (CUST_ID = 3) [電話番号 4: 03-4444-4444] ---- readAllSample()の終了 ----. readAllSample()J8 Customer =ŸBN!€¦Êt*Customer 9: ;<=>îïPQhg" Address*Phone 9:;<=>ð€²KT  v '!€¿‹KLreadAllSample() ¯ñ¸*\]1^G?1^!€tT M²KÞinitialize identitymapsáMt/1u;}²ÅgK}*ò^>

(40) J8%אAB†ÅgT SQL ÔÕKT"°*ó/01 ¯èô õo\]1^G?1^!€tK4ÖJu1  initializeIdentityMaps()/01

(41) }\]1^G?1^ö÷!K7L. %×øjè8\]1^qùcµ•ijKT"°*úû\]1 ^G?1^üý8¿‹þL. &'J8*® CUSTOMER N!€¦Ê SQL }†Åg*ñ¸ îïKT Address 9:;<=>KT"°} ADDRESS N!€† Åg€tTM}·k‹KLCustomer  Address C? 1 8œ  œ?= ‰j!€t_t"°* 0B 9:;<=>M—è Ú1> 9:;<=>–ÅgKL. Oracle TopLink 10g(10.1.3)   .

(42)  Volume2. 11.

(43) NÃo Customer  Phone C8œ œ?= ‰j!€tT"°* Ú1> 9:;<=>J¿T Phone 9:;<=>M†8*%א phones {?= 9:;<=>l=uBKTèJÅg€tTM}*&' khÔÕJ~KL–!Ú1> 9:;<=>=uB!_t 8*ghNKT. †M*9:;<=>B>ìíJ~T"°*aGbU B

(44) p_}‹KL. Ú1> 9:;<=>¹ºא} †ÅgTMôKT üý}¿‹KL¦€Ú1> 9:;<=>=uBKTM}¿hk‚ °·k€tT 8*  †KT ‹–* ‰j!€¹º!"}†ÅgT}_w_‹qr }sw_‹KL _ ‰jJ~T9  pt€8¸ Æ !   !"#Çu= J‘’!KL !"#. AB=uBKT  Z!€©T *µ N!€*gh¹º!€9:;<=>KT  _¦Ê†K~J8¿‹þL/µ!*aGb U BFp_}‹KLTopLink 8µ_ùu1>NKT ¹ ‹9  M!€*!0

(45) P~B>H ¹‹MB=&

(46) "X!0

(47) ¹‹WXef!€tKLghÀÁ856\^/ >ÂÃ!€w ÄÅtL ÆTopLink Devevloper's GuideÇ 99. Using Advanced Query API - Handling Cursor and Stream Query Results. querySample()のログ出力 のログ出力 querySample()%è8Š _&'}()ÅgKL ---- querySample()の開始 ---[TopLink Finer]: --initialize identitymaps -- 住所が東京都である Customer を検索 -[TopLink Fine]: --SELECT t1.ID, t1.NAME, t1.ADDR_ID FROM ADDRESS t0, CUSTOMER t1 WHERE ((t0.CITY = '東京都') AND (t0.ID = t1.ADDR_ID)) [TopLink Fine]: --SELECT ID, CITY, STREET FROM ADDRESS WHERE (ID = 1). Oracle TopLink 10g(10.1.3)   .

(48)  Volume2. 12.

(49) [TopLink Fine]: --SELECT ID, CITY, STREET FROM ADDRESS WHERE (ID = 2) -- 取得した Customer とその関連オブジェクト(Address,Phone)を表示 -[顧客 1: オラクル太郎] [住所 1: 東京都 千代田区紀尾井町] [TopLink Fine]: --SELECT P_NUMBER, ID, CUST_ID FROM PHONE WHERE (CUST_ID = 1) [電話番号 1: 03-1111-1111] [電話番号 2: 03-2222-2222] [顧客 2: ウェンディ] [住所 2: 東京都 世田谷区用賀] [TopLink Fine]: --SELECT P_NUMBER, ID, CUST_ID FROM PHONE WHERE (CUST_ID = 2) [電話番号 3: 03-3333-3333] ---- querySample()の終了 ----. querySample()J8*TopLink #J¿T Expression ‰j!€$%&' ³}()*&+J¿T _ Customer ¹ºKT"°†!€tKL TopLink #‰jKTM,-_üýMKT _ñ.o RSKTM}"X_‹KL# €%א†ÅgT SQL &' JÔÕKTM}J~KL cacheSample()のログ出力 のログ出力 cacheSample()J8*TopLink \]1^}[q_×/0pt€Ô Õ!KLreadAllSample()*querySample()M8½_‹*cacheSample()J8/01 ¯èôõo\]1^G?1^®†!KL×&' 8Š _‹KL ---- cacheSample()の開始 ----- 主キーを用いて Customer を検索 --- 取得した Customer とその関連オブジェクト(Address,Phone)を表示 -[顧客 1: オラクル太郎] [住所 1: 東京都 千代田区紀尾井町] [電話番号 1: 03-1111-1111] [電話番号 2: 03-2222-2222] ---- cacheSample()の終了 ----. TopLink Gb

(50) >0J8*1\jt"ËÌÍÊP~J}†Å g" *ABl†KT\]1^ËÌ!KL cacheSample()% querySample() €ËÌN2 Customer 9:;<=> }\]1^34Åg€tT"°*AB†KTM_w¨Ñ! KLCustomer îï9:;<=>J¿T Address*Phone pt€–—˜\]1 ^345ÏJ¿T"°* }†ÅgþL. Oracle TopLink 10g(10.1.3)   .

(51)  Volume2. 13.

(52) TopLink 8›A; ?= è0_`}½_T 5 67\]1^W Xef!K4gh8œ švšv U1 M89gK7Lœ šv šv U1 ÀÁpt€856\^/ >ÂÃ!€wÄÅtL ÆTopLink Devevloper's GuideÇ 90. Understanding the Cache. サンプル・アプリケーションの作成 2 J8 SampleClient.java *+,*-./0123! KL 作成、更新、削除を行うメソッドの追加 SampleClient.java Š _ 3 p/01*createSample()*updateSample()* deleteSample()23!KL public void createSample() { print("¥n¥n---- createSample()の開始 ----"); //キャッシュのリフレッシュ getSession().getIdentityMapAccessor().initializeIdentityMaps(); //作業ユニットの取得 UnitOfWork uow = getSession().acquireUnitOfWork(); Customer c = new Customer(); c.setName("スコット・タイガー"); Address a = new Address(); a.setCity("福岡県"); a.setStreet("福岡市中央区天神"); Phone p = new Phone(); p.setPNumber("03-5555-5555"); //リレーションシップの設定 c.setAddress(a); c.addPhone(p); //新規オブジェクトとして作業ユニットに登録 uow.registerNewObject(c); print("-- 新規作成をコミット --"); uow.commit(); print("---- createSample()の終了 ----"); } public void updateSample() { print("¥n¥n---- updateSample()の開始 ----"); //キャッシュのリフレッシュ getSession().getIdentityMapAccessor().initializeIdentityMaps();. Oracle TopLink 10g(10.1.3)   .

(53)  Volume2. 14.

(54) print("-- 更新対象の Customer を問合せ --"); Expression exp = new ExpressionBuilder().get("id").equal(1); Customer c = (Customer)getSession().readObject(Customer.class, exp); print("-- 更新対象の Customer を表示 --"); printACustomer(c); UnitOfWork uow = getSession().acquireUnitOfWork(); //作業コピーを取得 Customer cCopy = (Customer)uow.registerObject(c); cCopy.getAddress().setStreet("渋谷区渋谷"); Phone p = new Phone(); p.setPNumber("03-6666-6666"); cCopy.addPhone(p); print("-- 更新をコミット --"); uow.commit(); print("---- updateSample()の終了----"); } public void deleteSample() { print("¥n¥n---- deleteSample()の開始 ----"); //キャッシュのリフレッシュ getSession().getIdentityMapAccessor().initializeIdentityMaps(); UnitOfWork uow = getSession().acquireUnitOfWork(); print("-- Phone を削除するための Customer を取得 --"); Expression exp1 = new ExpressionBuilder().get("id").equal(1); Customer c1 = (Customer)uow.readObject(Customer.class, exp1); print("-- Phone を削除するための Customer を表示 --"); printACustomer(c1); Collection phones = c1.getPhones(); if (phones.size() > 0) { //Customer#removePhone()をコールして Phone オブジェクトを削除 c1.removePhone((Phone)phones.iterator().next()); } print("-- 削除対象の Customer を取得 --"); Expression exp2 = new ExpressionBuilder().get("id").equal(2); Customer c2 = (Customer)uow.readObject(Customer.class, exp2); print("-- 削除対象の Customer を表示 --"); printACustomer(c2); //Customer オブジェクトを削除 uow.deleteObject(c2); print("-- 削除をコミット --"); uow.commit(); print("---- deleteSample()の終了 ----"); }. gh/01%KT"°*SampleClient.java  main /01 try :&1 =Š Ð+!KLreadAllSample()*querySample()*cacheSample()%. Oracle TopLink 10g(10.1.3)   .

(55)  Volume2. 15.

(56) ¶·/ >Ò>!*!" createSample()*updateSample()*deleteSample() %KT23!K4:;¶·237L try { //sampleClient.readAllSample(); //sampleClient.querySample(); //sampleClient.cacheSample(); sampleClient.createSample(); sampleClient.updateSample(); sampleClient.deleteSample(); } catch (Exception e) { (省略). åæ SampleClient.java  aœ

(57) !%!KLâ`&'()KTØR Ð+!""°*%ùM&'}M–()ÅgKL. 5£Bš1 J createSample()*updateSample()*deleteSample()% !"¸*åægh%KT8 setupSample.sql %!€A Bu1>!€Œwüý}¿‹KL. createSample()のログ出力 のログ出力 ,KT createSample()%è8*Š _&'}()Åg KL ---- createSample()の開始 ---アイデンティティ・マップの初期化 [TopLink Finer]: --initialize identitymaps [TopLink Finer]: --acquire unit of work: 3532515 -- 新規作成をコミット -[TopLink Finer]: --begin unit of work commit [TopLink Finer]: --begin transaction [TopLink Fine]: --UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + 50 WHERE SEQ_NAME = 'PHONE_SEQ' [TopLink Fine]: --SELECT SEQ_COUNT FROM SEQUENCE WHERE SEQ_NAME = 'PHONE_SEQ' [TopLink Finer]: --commit transaction (省略) [TopLink Finer]: --begin transaction [TopLink Fine]: --INSERT INTO ADDRESS (ID, CITY, STREET) VALUES (11, '福岡県', '福岡市中央区天神') [TopLink Fine]: --INSERT INTO CUSTOMER (ID, NAME, ADDR_ID) VALUES (11, 'スコット・タイガー', 11) [TopLink Fine]: --INSERT INTO PHONE (P_NUMBER, ID, CUST_ID) VALUES ('03-5555-5555', 11, 11) [TopLink Finer]: --commit transaction [TopLink Finer]: --end unit of work commit [TopLink Finer]: --release unit of work ---- createSample()の終了 ----. Oracle TopLink 10g(10.1.3)   .

(58)  Volume2. 16.

(59) TopLink J8§<=1>4UnitOfWork7‰j!€Ð+tKL§ <=1>‰jKTMJ*  >J>Ÿ ?= @#Y*ÂÃA{ BCDEt" SQL †*"89:;<=>Ð+¶·ò<1=_`M }J~KL §<=1>‚€9:;<=>¢"¸*§<=1>N!€F1 >βKTMJABl>Ÿ ?= } ¯ÅgKLò^>

(60) J8¥Gjt€1\HKT I!""°*>Ÿ ?=  ¯ñ¸¥GHJK÷€žFÓ#M*,9:;<=>l1\HK÷ €}LgKLJK÷€ÀÁ_&'()KT8*u1 G™œ

(61)  &'()ØRJ[&Ý ' ?A

(62) ]ÞFinestáØRKTüý}¿‹KL [&Ý ' ?A

(63) ]ÞFinestáØR!€åæ SampleClient %KTM*Š  _&'}()ÅgK4J SampleClient åæ%KT 8*AB u1>KT"° setupSample.sql å%!€Œwüý}¿‹K7L. Oracle TopLink 10g(10.1.3)   .

(64)  Volume2. 17.

(65) .... -- 新規作成をコミット -[TopLink Finer]: --begin unit of work commit [TopLink Finer]: --begin transaction [TopLink Finest]: --Execute query DataModifyQuery() [TopLink Fine]: --UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + 50 WHERE SEQ_NAME = 'PHONE_SEQ' [TopLink Finest]: --Execute query ValueReadQuery() [TopLink Fine]: --SELECT SEQ_COUNT FROM SEQUENCE WHERE SEQ_NAME = 'PHONE_SEQ' [TopLink Finest]: --local sequencing preallocation for PHONE_SEQ: objects: 50 , first: 11, last: 60 [TopLink Finer]: --commit transaction [TopLink Finest]: --local sequencing preallocation is copied to preallocation after transaction commit [TopLink Finest]: --assign sequence to the object (11 -> [電話番号 0: 03-5555-5555]) (省略). [&Ý 'M?A

(66) ]ÞFinestáØR!" 8NOPw&'}()Åg €!"°*5£Bš1 J8åæ?A

(67) ÞFineráQ!€R°€wÄÅ tL. ò^>

(68) J8¥GJK÷€H 50 ØR!""°*žFÓ#Ö ¥G!Ò  Gv

(69) } 50 ÄQ!Ò >1 ÅgKLp‹*50 ·¥ GH} TopLink  €ÔãÅg"M_‹*5£ÔãÅg"¥GH‰tST J8¥GH¹º"°ABTüý8_w_‹KLJK ÷€WX8PwKT _  JaGbU B

(70)  "°‰jKTM}J~KL ¥GHžFÓ#}¨ÑKTM*¥GH},9:;<=>4&'J8 Address 9:;<=>7K÷€hg*c¨o8 INSERT T}†Åg,} ÅgKLCustomer  Address Œ ¡ Customer  Phone C8?. 1 MÂÃ}RSÅg€tT"°*U¶\  >J’²oØ R!_w€–*V!tU¶\H}K÷€hgKL. §<=1>4UnitOfWork7ÀÁpt€856\^/ >ÂÃ!€w ÄÅtL ÆTopLink Devevloper's GuideÇ 100. Understanding TopLink Transactions. Oracle TopLink 10g(10.1.3)   .

(71)  Volume2. 18.

(72) updateSample()のログ出力 のログ出力 updateSample()J8§<=1>kh¹º!"§VN!€Ð+t* ABF1>!KLÐ+}¿"WϐN!€ UPDATE T†!*", !w!" Phone 9:;<=>U¶\êë}V!wØRÅg€tTM}ÔÕJ~ KL ---- updateSample()の開始 ---[TopLink Finer]: --initialize identitymaps -- 更新対象の Customer を問合せ -[TopLink Fine]: --SELECT ID, NAME, ADDR_ID FROM CUSTOMER WHERE (ID = 1) [TopLink Fine]: --SELECT ID, CITY, STREET FROM ADDRESS WHERE (ID = 1) -- 更新対象の Customer を表示 -[顧客 1: オラクル太郎] [住所 1: 東京都 千代田区紀尾井町] [TopLink Fine]: --SELECT P_NUMBER, ID, CUST_ID FROM PHONE WHERE (CUST_ID = 1) [電話番号 1: 03-1111-1111] [電話番号 2: 03-2222-2222] [TopLink Finer]: --acquire unit of work: 9449509 -- 更新をコミット -[TopLink Finer]: --begin unit of work commit [TopLink Finer]: --begin transaction [TopLink Fine]: --UPDATE ADDRESS SET STREET = '渋谷区渋谷' WHERE (ID = 1) [TopLink Fine]: --INSERT INTO PHONE (P_NUMBER, ID, CUST_ID) VALUES ('03-6666-6666', 12, 1) [TopLink Finer]: --commit transaction [TopLink Finer]: --end unit of work commit [TopLink Finer]: --release unit of work ---- updateSample()の終了----. deleteSample()のログ出力 のログ出力 deleteSample()%è8Š _&'}()ÅgKL ---- deleteSample()の開始 ---[TopLink Finer]: --initialize identitymaps [TopLink Finer]: --acquire unit of work: 25528992 -- Phone を削除するための Customer を取得 -[TopLink Fine]: --SELECT ID, NAME, ADDR_ID FROM CUSTOMER WHERE (ID = 1) [TopLink Fine]: --SELECT ID, CITY, STREET FROM ADDRESS WHERE (ID = 1) -- Phone を削除するための Customer を表示 -[顧客 1: オラクル太郎] [住所 1: 東京都 渋谷区渋谷] [TopLink Fine]: --SELECT P_NUMBER, ID, CUST_ID FROM PHONE WHERE (CUST_ID = 1) [電話番号 1: 03-1111-1111] [電話番号 2: 03-2222-2222] [電話番号 12: 03-6666-6666] -- 削除対象の Customer を取得 -[TopLink Fine]: --SELECT ID, NAME, ADDR_ID FROM CUSTOMER WHERE (ID = 2) [TopLink Fine]: --SELECT ID, CITY, STREET FROM ADDRESS WHERE (ID = 2) -- 削除対象の Customer を表示 -[顧客 2: ウェンディ] [住所 2: 東京都 世田谷区用賀] [TopLink Fine]: --SELECT P_NUMBER, ID, CUST_ID FROM PHONE WHERE (CUST_ID = 2) [電話番号 3: 03-3333-3333] -- 削除をコミット --. Oracle TopLink 10g(10.1.3)   .

(73)  Volume2. 19.

(74) [TopLink Finer]: --begin unit of work commit [TopLink Finer]: --begin transaction [TopLink Fine]: --UPDATE PHONE SET CUST_ID = NULL WHERE (ID = 1) [TopLink Fine]: --DELETE FROM PHONE WHERE (ID = 1) [TopLink Fine]: --DELETE FROM PHONE WHERE (CUST_ID = 2) [TopLink Fine]: --DELETE FROM CUSTOMER WHERE (ID = 2) [TopLink Fine]: --DELETE FROM ADDRESS WHERE (ID = 2) [TopLink Finer]: --commit transaction [TopLink Finer]: --end unit of work commit [TopLink Finer]: --release unit of work ---- deleteSample()の終了 ----. deleteSample()J€tT 2 p-.Ó#pt€X€t~KL 1. Customer4id=17}%[KT Phone  1 p-. Customer 9:;<=>8*%[KT Phone -.KT"°/01* removePhone()}RSÅg€tKL/01J8-.N2 Phone 9 :;<=>?= kh-.!*Åh Phone 9:;<=> owner { null u1>!KLCustomer  Phone C? 1 8Y[ 4Private Owned7M!€RS!""°*Phone 9:;<=>80B 9:;< =>_!8äZJ~_t–M!€[LgKLg ‹*owner  null  u1>!"ùM!€ Phone 9:;<=>\]MNOKT PHONE –.ÅgKL()Åg"&'kh8*%אŠ _ SQL }†Åg€tT M}ÔÕJ~KL [TopLink Fine]: --UPDATE PHONE SET CUST_ID = NULL WHERE (ID = 1) [TopLink Fine]: --DELETE FROM PHONE WHERE (ID = 1). Y[M!€U1V 'RS!€t_t 8 2 pˆ DELETE T8†Å gþL 2.. Customer4id=27-. Customer \]-.KT×8*Customer khY[M!€U1V 'Åg" Ú1> 9:;<=>–—è-.ÅgKLp‹ Customer îïPQh g" Address M Phone –¦€-.ÅgKL%אŠ _ DELETE T }†Åg€tTM}ÔÕJ~KL. [TopLink Fine]: --DELETE [TopLink Fine]: --DELETE [TopLink Fine]: --DELETE. FROM PHONE WHERE (CUST_ID = 2) FROM CUSTOMER WHERE (ID = 2) FROM ADDRESS WHERE (ID = 2). Oracle TopLink 10g(10.1.3)   .

(75)  Volume2. 20.

(76) まとめ J8*G™B>Bš1 ›œ Volume1 J!"AB*/œ =ŸB Œ ¡ghC TopLink  T O/R U1V 'RSjt€*¬­_¢.

(77)   !!"L ^E_J¿TG™B>Bš1 ›œ Volume3 J8*Volume2 J!"   0!BUœ`"°*aŸ/ aœ Y;œ ‰j!"‰j _`bc!KL. Oracle TopLink 10g(10.1.3)   .

(78)  Volume2. 21.

(79) . Copyright © 2005 Oracle Corporation Japan. All Rights Reserved. defgh® Ti8¿wJ–ÂjJ¿‹*kgÅg€tTêë8lm_!Ð+ÅgTM}¿‹ KLé^9Ÿ=

(80) n8^ioî!€tk_Tãp–t"!þL"*^io îï!"tk_Tqrpt€–stutkvKL Oracle 8*9Ÿ=

(81) nwxyßJKLOracle8*Oracle8i*Oracle9i*Oracle10g*Net8 8* 9Ÿ=

(82) nyß"8wxyßJKL zK€{§³M|}³8*~ "°ÏkgÅg€Œ‹*gg%[€y ß }¿‹KL. Oracle TopLink 10g(10.1.3)   .

(83)  Volume2. 22.

(84)

参照

関連したドキュメント

地方自治法施行令第 167 条の 16 及び大崎市契約規則第 35 条により,落札者は,契約締結までに請負代金の 100 分の

Some aspects of the asymptotic behavior of the approximation numbers (= singular values) of matrices in B ( C n 2 ) can be very easily understood by having recourse to the

Some aspects of the asymptotic behavior of the approximation numbers (= singular values) of matrices in B (C n 2 ) can be very easily understood by having recourse to the following

議 長 委 員

③ 新産業ビジョン岸和田本編の 24 ページ、25 ページについて、説明文の最終段落に経営 者の年齢別に分析した説明があり、本件が今回の新ビジョンの中で謳うデジタル化の

Continuous Improvement, Contract Review, Quality System Mgmt, Customer Service, Product Design, Process Design, Engineering, Finance,.

(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)

INA新建築研究所( ●● ) : 御紹介にあずかりましたINA新建築研究所、 ●●