亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > DB2 > 正文

用 IBM Rational XDE Developer for Java 為 DB2 UDB 數據

2024-09-06 23:58:04
字體:
來源:轉載
供稿:網友
英文原文

用 ibm rational xde developer for java 為 db2 udb 數據庫建模

enter a subtitle
suita gupta([email protected]),developer technical support,ibm
nanda pilaka([email protected]),developer technical support,ibm

2004 年 6 月
  內容  簡介 開始之前 為數據庫和表空間建模 表及其關系
視圖
存儲過程 觸發器 基于數據模型生成 ddl 腳本 連接數據庫 逆向工程 比較和同步模式 結束語
簡介


參與數據庫應用程序開發的每一個人都遵循著某套方法。而您所選擇的方法將幫助您分析需求,以及開發和交付最終的產品。這套方法中最重要的部分就是,基于業務需求的數據庫設計和建模。在這篇文章中,我將談論使用“rational® xde developer for java”進行的,專門針對“db2® universal database”的設計和建模!

統一建模語言(uml)是用于為業務和軟件應用需求建模的標準的圖形化表示法。過去的幾年里,已經開始廣泛地將 uml 用于面向對象的軟件開發中。除了適用于為對象建模之外,uml 還適用于設計和建立數據存儲模型,以供您的應用程序使用?;旧?,數據建模包括分析客戶需求,用以開發一個客戶的數據需求模型,然后,以該模型為藍圖或架構為應用程序構建數據庫。

本文將向您展示基于已熟悉的 db2 sample 數據庫來生成一個數據庫模型是多么容易。在文章的末尾,您將看到如何為 db2 sample 數據庫及其中的一些數據對象建模。我們還將向您展示如何從已完成的模型生成 ddl 腳本,以及如何使用這些腳本來創建最終的 db2 數據庫。

我們將使用 rational xde developer for java(版本:2003.06.00)和 ibm db2 universal database v8.1 進行建模。rational xde 支持遵循 ansi sql 92 標準的從 v5.2 開始的所有 db2 udb 版本和 db2 for os/390® 5.x、6.x、7.x 的數據建模。rational xde 也可以用于為 oracle、sybase 和 sql server 數據庫建模。

數據建模的好處
數據建模有許多優點,可以使開發小組中的數據設計師和管理員以及所涉及的程序員均從中受益。
數據庫設計師可以使用 rational xde 等工具來建立和可視化數據庫模型,確保數據庫規則,添加不同的數據庫對象,并設置關系。 數據庫管理員既可以為一個已經存在的數據庫創建模型,也可以從模型生成 ddl 并為特定的實現創建數據庫。 數據模型有助于應用程序開發人員更好地理解應用程序的總體架構,盡管一般說來,他們不需要深入了解數據庫體系結構的細節。他們可以用數據模型來建立類模型,例如由表結構產生。 數據模型對于終端用戶也十分有用,可驗證是否已準確地捕獲所有的數據需求。
如果項目中的所有建模都是用 uml 完成的,那么該數據模型將完全匹配其余的系統設計,并且幫助整個小組無縫地協同工作。

開始之前


在開始創建數據庫模型之前,讓我們來看一個 rational xde 的屏幕快照,以及我們將用于建立數據庫模型的菜單和選項,如 圖 1 所示:

圖 1. 從 rational xde 開始


我們需要為數據模型創建一個項目。單擊 file -> new -> project。選擇創建 data modeling project 并命名為“data model”。一旦創建了該項目,您就可以在 model explorer 窗格上看到它了,如下面的 圖 2 所示。

其中,已經為您創建了兩個模型 —— 一個物理數據模型和一個邏輯數據模型。數據架構師和數據庫設計師通常使用邏輯數據模型,以一種獨立于特定數據庫實現的形式捕獲數據需求。邏輯模型是用于與業務風險承擔者(stakeholder)進行通信以確保清晰地捕獲數據需求的好工具,因為它沒有牽扯到特定數據庫的細節。數據庫設計師通常將邏輯模型細化為一個或多個“范式”,以便消除數據重復和提高最終設計的質量。一旦對邏輯數據需求的準確性有了十足把握,您就可以將該邏輯模型轉換為物理數據模型,從而將該模型匹配特定的目標數據庫。然后,可以針對特定的數據庫系統或應用程序,改進和優化該物理數據模型。

邏輯數據模型的使用不屬于本文的討論范疇。接下來,我們將關注物理數據模型層次上的數據庫設計。

圖 2. model explorer


為數據庫和表空間建模


首先,我們將創建數據庫模型。正如您將在下面 圖 3 中看到的,數據庫是可以進行建模以及在數據模型中用 uml 符號 <<database>> 表示的最大元素。rational xde 允許您選擇任何一種它所支持的 dbms 作為數據模型的實現數據庫。本文中,我們選擇了 db2 udb v8 來演示數據建模的過程。

創建數據庫組件
在 model explorer 中,右擊 main ->add data modeler ->database。

圖 3. 創建數據庫模型


然后,單擊 model explorer 中新創建的數據庫組件,輸入一個名稱。我們將 sampledb 作為我們數據庫的獨有名稱。

右擊 model explorer 中的 sampledb,并單擊 data modeler -> open specification。

圖 4. 打開 specification


在 database specification 對話框中,在 database 列表中選擇 ibm db2 8.x 作為目標數據庫。

圖 5. 選擇目標數據庫


單擊 ok,并將該數據庫組件拖放到 diagram 視圖上。

rational xde 允許您建立表空間模型,并將表指派到這一表空間。我們將看到如何建立一個名為 sample_tbsp 的、已分配一個容器的表空間模型。請注意,您在以下步驟中指定的容器路徑應該已經存在。

在進一步繼續之前,您可以通過右擊 model explorer 中的 logical data model 來選擇邏輯數據模型。您可以隨時使用熱鍵 ctrl+s 保存您的模型。

創建表空間
在 model explorer 中,右擊數據庫后單擊 add data modeler -> tablespace。

圖 6. 添加表空間


在 model explorer 中,右擊新的表空間并單擊 data modeler -> open specification。
在 general 選項卡中,輸入表空間的名稱,例如 sample_tbsp。您還可以指定其他細節,例如表空間的類型、擴展塊大小、預取大小、頁面大小以及緩沖池名稱。

圖 7. 表空間的具體指定


完成后,單擊 ok 并將這個表空間組件拖放到 diagram 視圖上。您一旦建立了數據庫模型和表空間模型,rational xde 就會自動地創建數據庫和表空間之間的依賴關系,如下面圖 8 所示:

圖 8. 依賴關系


創建容器
在 model explorer 中,右擊一個表空間后單擊 data modeler -> open specification。
在 container 選項卡中,單擊 new 圖標,并輸入新容器的路徑名稱。

圖 9. 定義容器


檢查點:您的模型現在應該如 圖 10 所示:

圖 10. 此時的模型


表及其關系


我們將為原有的 sample 數據庫中的兩個表(employee 表和 department 表)建模。我們還將為這兩個表之間的參照完整性關系建模。

創建表組件的步驟:

在 model explorer 中,右擊數據模型,然后單擊 add data modeler ->table。 在 table specification 對話框的 general 選項卡中,指定表名稱,并在 columns 選項卡中添加該表的列。您還可以為該表指定主鍵。
圖 11. 給模型添加一個表

單擊 ok,您將在 model explorer 中看到這個表組件。將之拖放至 diagram 視圖上。
我們將分別為 employee 表和 department 表執行以上步驟。對于 employee 表,我們將省略“workdept”列的創建。在我們建立 employee 表和 department 表之間的參照完整性時,將自動為我們創建該列。


現在,我們將建立 employee 表(外鍵:workdept)和 department 表(主鍵:deptno)之間的參照完整性??梢酝ㄟ^創建這兩個表之間的“identifying”關系來完成:
從工具箱的 data modeler 列表中選擇 identifying relationship 選項,然后先單擊 diagram 視圖上的父表 department 組件,再單擊子表 employee 組件。

圖 12. 設置參照完整性

在 relationship specification 對話框中,您可以指定子角色和父角色。

圖 13. 關系的具體指定

在 relationship specification 對話框的 migrated keys 選項卡中,您還可以修改 employee 表中的外鍵列名稱:

圖 14. migrated keys


您將看到 employee 表中添加了一個新的列。在 table specification 對話框的 column 選項卡中,您可以修改“workdept”列在 employee 表中的位置,如下面 圖 15 所示:

圖 15. table specification 對話框


您的模型應該與下面 圖 16 所示相類似:

圖 16. 模型


視圖


rational xde 允許您基于表或 sql 查詢來創建視圖。這些查詢可以包括 where、group by 或 order by 子句。您既可以手工為視圖指定 sql 查詢,也可以在 view specification 對話框中為視圖選擇各個列。

以下是創建視圖組件的步驟:
在 model explorer 中,右擊模型后單擊 add data modeler -> view。一個新的視圖將顯示在 model explorer 中。 右擊這個新的視圖,然后單擊 data modeler > open specification。這將打開 view specification 對話框。 在 general 選項卡中,在 name 框中輸入“emp_view”作為視圖名稱。 單擊 ok 并將該視圖組件拖放至 diagram 視圖上。
為該視圖指定列:
從工具箱的 data modeler 列表中選擇 view dependency,然后先單擊圖(diagram)上的 view 組件(emp_view),再單擊源表組件(employee 表)。

圖 17. 創建視圖

源表中的所有列都將填充到您的視圖中。 此時,您可以通過啟用 view specification 對話框的 general 選項卡中的“user defined”復選框,為視圖指定定制的 sql 查詢:

圖 18. 視圖的具體指定

然后在同一對話框的 sql 選項卡中輸入定制的 sql 查詢。完成后單擊 ok。

圖 19. 視圖的具體指定


存儲過程


rational xde 還允許您為數據庫建立存儲過程的模型。所支持的 dbms 有:
ibm db2 udb 5.2、6.1、7.0 和 8.0 ibm db2 mvs 5.x、6.x 和 7.x oracle 7.3、8.x、和 9i for windows nt microsoft sql server 6.5、7.0 和 2000 sybase adaptive server 12.x
在 rational xde 中,術語“存儲過程”包括常規的存儲過程(返回多個結果)和存儲函數(返回標量值)。這兩種存儲過程都可以用相應的參數和一個動作體(action body)來進行定義和建模。


可是,請牢記數據庫和存儲過程之間必須存在 實現關系(realization relationship),才能對目標數據庫執行 ddl。在 rational xde 中,存儲過程在存儲過程容器中被分組。在為該模型生成 ddl 之前,需要通過實現關系將表、存儲過程和視圖指派給該數據庫。

創建存儲過程組件的步驟:
在 model explorer 窗口中,右擊 main。 選擇 add data modeler 并單擊 stored procedure container。這將在數據模型中創建一個默認名為“procedurecontainer1”的存儲過程容器。 您可以使用該容器默認的名稱,也可以通過位于 model explorer 窗口之下的 properties 窗口修改它。 右擊存儲過程容器“procedurecontainer1”,然后,選擇 add data modeler 并單擊 stored procedure。這將添加默認名為“procedure1”的存儲過程容器。同樣地,您可以使用這個默認名稱,如果希望,也可以通過 model explorer 窗口之下的 properties 窗口來提供另一名稱。 您還必須添加從數據庫到存儲過程的“數據庫實現”關系,用以為該存儲過程生成 ddl。 為了添加“數據庫實現”關系,單擊工具箱中的 data modeler,下滾該列表至“database realization”,單擊選擇它。 然后,先單擊數據庫組件,接著再單擊存儲過程容器組件以創建實現關系。該數據模型將如下面 圖 20 所示:

圖 20. 展示了實現關系的數據模型

此時或稍后,可以通過右擊 model explorer 中的存儲過程,選擇 data modeler 并單擊 open specification,來修改存儲過程的名稱和簽名(參數等等)。 這將打開 stored procedure specification 對話框。 在該對話框中,您可以通過 general 選項卡修改過程名、編寫語言等,通過 parameters 選項卡添加參數,以及最后通過 action body 選項卡指定一個動作體,如下面圖 21 所示:



圖 21. 存儲過程的具體指定


觸發器


xde 允許您創建用戶定義的觸發器,用以在數據庫中實施業務規則。
為觸發器建模:
在 model explorer 中右擊所需的表。 選擇 data modeler 并單擊 open specification 以打開該表的具體指定(specification)。 在 specification 對話框中,單擊 triggers 選項卡,然后單擊 new,為該表建立一個新的觸發器模型。 您可以創建一個“after”或“before”觸發器,以及為該觸發器創建一個動作體。下面的 圖 22 說明了是如何進行的:



圖 22. 創建觸發器


基于數據模型生成 ddl 腳本


rational xde 提供了 forward engineering 向導,用以為整個數據庫或數據模型中的指定組件生成數據定義語言(ddl)腳本。rational xde 生成的 ddl 遵循 ansi sql 92 標準。xde 還允許您對目標數據庫執行所生成的 ddl,而目標數據庫是您在啟動數據模型項目之前指定的。因此,要確保您已經正確連接了該目標數據庫。同時,該數據模型中的所有數據庫組件都必須利用前面小節中所闡明的關系連接該數據庫組件。如果沒有為任何組件進行該工作,那么就不會為特定的組件生成 ddl。

為了生成 ddl 腳本:
在 model explorer 中,右擊一個現有的數據庫、包或表,然后單擊 data modeler > forward engineer。這將打開用于數據建模的 forward engineering wizard 對話框。然后按照該向導中的指示進行。下面的圖 23 是通過 forward engineering 向導為整個數據庫生成 ddl 的屏幕快照:

圖 23. forward engineering 向導


連接數據庫


rational xde 允許您連接一個 dbms,并且執行所生成的 ddl 以創建數據庫對象。所支持的 dbms 有:
ibm db2 udb 5.2、6.1、7.0 和 8.0 ibm db2 mvs 5.x、6.x 和 7.x oracle 7.3、8.x 和 9i for windows nt microsoft sql server 6.5、7.0 和 2000 sybase adaptive server 12.x rational xde 支持下列用以連接以上數據庫系統的驅動程序:
ibm db2 app driver(odbc) ibm db2 udb jdbc driver oracle ole db provider oracle thin jdbc driver ole db provider ms ole db for odbc ms ole db for oracle(mdac) ms sql ole db provider sybase ase odbc driver為了連接目標數據庫,您必須將之配置成 odbc 數據源,并提供正確的訪問信息以便能夠連接它。既可以將該數據庫配置為系統 odbc 數據源,也可以配置為用戶 odbc 數據源。您既可以通過 forward engineering 或 reverse engineering 向導建立連接,也可以在比較和同步(compare and sync)模式[rlk1]下進行。還請注意,如果選擇連接數據庫,您可能需要為所選擇的數據庫系統安裝運行時客戶機(對于 db2 udb)或等效的客戶機組件(對于其他的 dbms)。關于這方面的更多信息,請查看 rational xde 幫助??梢詼y試到目標數據庫的連接,例如在 forward engineering 向導中通過 execute 復選框進行,如下面的圖 24 所示:


圖 24. 連接數據庫


逆向工程


我們已經介紹了正向工程(forward engineering)。通過逆向工程(reverse engineering),我們可以為已經存在的數據庫建立模型。這將允許我們修改該模型,例如添加表、存儲過程、觸發器等,然后通過生成和執行被修改模型的 ddl 來進行正向工程(forward engineer)。

對數據庫進行逆向工程:
在 model explorer 中,右擊該數據模型并單擊 data modeler -> reverse engineer。這將打開 reverse engineering 向導。 按照向導中的指示選擇數據庫以及逆向工程過程中所包含的所有元素。


比較和同步模式


rational xde 中的比較和同步(compare and sync)功能用于確保數據模型與所生成的 ddl 或目標數據庫一致。比較和同步不包括圖和比較模型之間的關系。在比較數據模型和數據庫以及使之同步之前,請驗證已經正確連接數據庫,并且正確登錄,口令無誤。

將數據模型與 ddl 文件或數據庫進行比較并使之同步
在 model explorer 或圖中,右擊一個現有的數據庫,然后單擊 data modeler > compare and sync。 這將打開數據模型的 database synchronization wizard。按照向導中的指示進行。 關于比較和同步功能,要記住以下幾點: 如果將逆向工程所生成的數據模型與 ddl 進行比較,您就必須將 owner/schema 屬性重新設置為您進行逆向工程的模式名。對于比較中包含的每個數據模型元素,您都必須完成該設置。 您應將需要在比較和同步中包含的所有元素指派給數據模型數據庫。在比較過程中,xde 會忽略所有未指派給數據模型數據庫的元素。 您的數據模型數據庫必須使用與所比較的 ddl 或 dbms 數據庫相同的名稱和目標數據庫。 如果將您數據模型中的視圖和 ddl 中的視圖進行比較,ddl 就必須使用全限定名,尤其是在該視圖的 sql 語句中。如果該 ddl 未使用全限定名,那么這些視圖在比較過程中看起來就不同,而您就必須手工查看每個視圖的 sql 語句,以發現真正的語法差別。
結束語


最后,下面的 圖 25 展示了我們的測試項目“data model1”現在的數據庫模型。



圖 25. 數據庫模型


最后,我們概述了使用 rational xde 進行數據庫建模的過程,但沒有討論太多細節,以免使初級用戶無法承受。這個簡單示例已經為您開了個頭,您可以開始使用該工具來滿足您自己的數據庫設計和建模需求。要獲得該產品的更多信息,請從 help 菜單查看 rational xde 的在線幫助。

注意
forward engineering 向導未在 ddl 文件中插入或生成數據庫 ddl(create database 命令)。這意味著在對目標數據庫執行 ddl 腳本之前,需要手工創建目標數據庫。 本文采用的 rational xde 版本為 2003.06.00。在建立存儲過程模型時,您可能會發現如果在存儲過程具體指定的 action body 選項卡中指定了一個動作體,該存儲過程的 ddl 中卻沒有這個動作體。該缺陷在 2004 年 4 月 9 日發布的 service release 2(fixpack 2)中得到了修復。關于當前修正版的更多信息,請查看 www.rational.com。 在為 db2 存儲過程指定動作體時,必須使用非傳統的 sql 語句終止字符,例如“@”等,因為分號在存儲過程體中用于終止存儲過程動作語句。然而,在通過 forward engineering 向導生成存儲過程 ddl 時,會在“@”后面額外生成一個分號,所以“@”是不需要的,否則 db2 的 sql 編譯器會發出錯誤。 可能需要編輯所生成的 ddl 腳本,以確保所使用的語句終止字符是正確的。
到頁首

resources
subgroup of resourcesexplanation of what the resources will provide for the developer. and then list the resources: title of resource title of resource -->
關于作者

suita gupta 是 websphere competency center 小組的技術支持代表。她具有應用程序開發和管理方面的 db2 認證。在 websphere 支持小組工作之前,她在 developer relations db2 technical support 小組中研究各種 db2 應用程序的開發和管理問題。您可以通過 [email protected] 與 suita 聯系。


nanda pilaka 是德克薩斯州達拉斯 content manager business partner support 小組的軟件工程師。他具有應用程序開發和管理方面的 db2 認證。在 content manager 支持小組工作之前,他在 ibm 達拉斯的 developer relations db2 technical support 小組中研究各種 db2 應用程序的開發和管理問題。您可以通過 [email protected] 與 nanda 聯系。
菜鳥學堂:
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品免费久久久久影院| 日韩免费在线播放| 中文字幕久久亚洲| www.亚洲免费视频| 一区二区亚洲欧洲国产日韩| 国产精品自产拍在线观看中文| 欧美美最猛性xxxxxx| 国产91免费观看| 在线观看欧美视频| 久久亚洲成人精品| 在线观看欧美www| 日韩成人av在线播放| 国产www精品| 国模视频一区二区三区| 亚洲天堂视频在线观看| 欧美成人免费全部观看天天性色| 国产精品欧美久久久| 欧美精品在线免费观看| 亚洲色图偷窥自拍| 91高潮在线观看| 一区二区成人精品| 亚洲理论在线a中文字幕| 久久久久久一区二区三区| 成人h片在线播放免费网站| 亚洲a一级视频| 自拍偷拍免费精品| 欧美日韩久久久久| 成人av在线天堂| 欧美成人高清视频| 国产视频丨精品|在线观看| 国产精品6699| 精品亚洲永久免费精品| 精品亚洲一区二区三区在线观看| 日韩精品极品在线观看| 欧美视频不卡中文| 中文字幕精品在线| 久久久久久国产免费| 亚洲欧美日韩成人| 亚洲jizzjizz日本少妇| 日韩精品视频三区| 岛国av一区二区在线在线观看| 久久亚洲精品一区二区| 97精品一区二区三区| 2019中文字幕免费视频| 日韩国产精品亚洲а∨天堂免| 中文字幕亚洲一区在线观看| 亚洲日本欧美中文幕| 色诱女教师一区二区三区| 欧美日韩午夜剧场| 精品美女久久久久久免费| 欧美最顶级的aⅴ艳星| 久久久极品av| 亚洲精品小视频在线观看| 久久久精品2019中文字幕神马| 国产精品69av| 久久国产精品久久国产精品| 欧美中文字幕视频| 欧美激情欧美激情| www欧美xxxx| 91香蕉亚洲精品| 亚洲色图欧美制服丝袜另类第一页| 在线成人免费网站| 按摩亚洲人久久| 欧美激情一区二区三区在线视频观看| 国产成人精品国内自产拍免费看| 国自产精品手机在线观看视频| 国产精品777| 国产亚洲精品美女久久久久| 欧美日韩亚洲一区二区| 2018中文字幕一区二区三区| 国产日本欧美视频| 欧美理论电影在线观看| 色综合亚洲精品激情狠狠| 欧美日韩国产一中文字不卡| 日韩毛片中文字幕| 成人综合国产精品| 久久久久久久激情视频| 久久精品久久久久| 国内外成人免费激情在线视频网站| 亚洲精品在线看| 欧美性xxxxxx| 亚洲第一福利在线观看| 国产日韩视频在线观看| 欧美第一黄色网| 亚洲免费伊人电影在线观看av| 亚洲精品国产精品国产自| 亚洲国产99精品国自产| 久久久久久国产精品三级玉女聊斋| 成人免费视频97| 欧美高清自拍一区| 欧美成人合集magnet| 亚洲欧美日韩直播| 亚洲成人久久久久| 亚洲美女精品成人在线视频| 91香蕉嫩草神马影院在线观看| 亚洲色图美腿丝袜| 国产视频精品xxxx| 国产精品一区二区三区成人| 欧美激情一区二区久久久| 色偷偷av亚洲男人的天堂| 日韩久久免费电影| 欧美一区二粉嫩精品国产一线天| 成人欧美一区二区三区黑人孕妇| 国产一区二区三区在线视频| 国产欧美精品一区二区三区介绍| 91精品视频在线看| 午夜免费久久久久| 欧美成人中文字幕在线| 欧美性生活大片免费观看网址| 午夜伦理精品一区| 亚洲专区国产精品| 日韩精品在线电影| 91爱爱小视频k| 国产精品久久色| 国产精品露脸自拍| 久久精品国产v日韩v亚洲| 最近2019中文免费高清视频观看www99| 国产精品久久久久久一区二区| 日韩av大片在线| 秋霞午夜一区二区| 亚洲aⅴ男人的天堂在线观看| 欧美资源在线观看| 91久久久亚洲精品| 亚洲大胆人体在线| 国产精品免费在线免费| 国产精品91久久| 国产丝袜精品视频| 91老司机精品视频| 欧美激情精品久久久久久| 蜜臀久久99精品久久久无需会员| 国产精品一区专区欧美日韩| 国产精品国语对白| 亚洲欧美日韩图片| 亚洲石原莉奈一区二区在线观看| 国产精品日韩欧美大师| 国产一区二区香蕉| 国产在线不卡精品| 国产精品日韩专区| 国产精品视频公开费视频| 欧美xxxwww| 欧美亚洲国产日本| 国产精品一区二区三区毛片淫片| 欧美亚洲激情在线| 欧洲一区二区视频| 欧美伊久线香蕉线新在线| 亚洲精品国产电影| 亚洲欧美中文日韩v在线观看| 欧美国产精品va在线观看| 深夜精品寂寞黄网站在线观看| 日本精品久久电影| 精品自拍视频在线观看| 亚洲欧美日韩精品久久| 全球成人中文在线| 欧美激情二区三区| 精品露脸国产偷人在视频| 国产精品成人久久久久| 国产欧美日韩精品丝袜高跟鞋| 亚洲精品乱码久久久久久金桔影视| 久久中文精品视频| 2018中文字幕一区二区三区| 日韩在线视频线视频免费网站| 性欧美视频videos6一9| 欧美理论电影在线播放| 欧美大片在线影院|