• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于關(guān)系數(shù)據(jù)模型代碼生成器的設(shè)計(jì)與實(shí)現(xiàn)

    2010-11-26 01:06:56冉春娟黃華
    關(guān)鍵詞:代碼生成數(shù)據(jù)模型腳本

    冉春娟,黃華

    (武漢大學(xué) 計(jì)算機(jī)學(xué)院,湖北 武漢 430071)

    近年來(lái),企業(yè)或政府部門的核心業(yè)務(wù)大多通過(guò)管理信息系統(tǒng)MIS實(shí)現(xiàn),MIS系統(tǒng)開發(fā)成為應(yīng)用系統(tǒng)開發(fā)的主流.在當(dāng)前計(jì)算機(jī)技術(shù)條件下,MIS系統(tǒng)大部分是構(gòu)建在關(guān)系數(shù)據(jù)模型上,其系統(tǒng)的開發(fā)方法也有很多的相似性.通過(guò)考察基于主流開發(fā)平臺(tái)(如Java與.Net)多層架構(gòu)的程序?qū)崿F(xiàn)代碼,發(fā)現(xiàn)大量相似程序代碼都與關(guān)系數(shù)據(jù)模型相關(guān),根據(jù)所做的統(tǒng)計(jì),其平均代碼行數(shù)占到總代碼行數(shù)的50%,有的甚至接近70%.如能以關(guān)系數(shù)據(jù)模型作為輸入,自動(dòng)生成相關(guān)程序代碼,必將可以大大縮短MIS系統(tǒng)的開發(fā)周期,提高軟件代碼的質(zhì)量,也可快速適應(yīng)MIS系統(tǒng)頻繁的需求變化.

    1 現(xiàn)有代碼生成技術(shù)分析

    從現(xiàn)有的主流代碼生成技術(shù)看,都采用了基于模板的方法,即以成功應(yīng)用的程序代碼作為藍(lán)本,將其中固定不變的部分作為靜態(tài)代碼框架部分,將其中需要變化的部分通過(guò)結(jié)合一定的標(biāo)記或生成語(yǔ)言改寫為可動(dòng)態(tài)替換的腳本,從而構(gòu)成代碼模板文件,再結(jié)合生成工具同數(shù)據(jù)源相作用,生成實(shí)際的程序代碼[1].盡管原理相似,但不同的代碼生成工具在具體實(shí)現(xiàn)技術(shù)上卻不盡相同,概括起來(lái)分為兩種類型:內(nèi)置模板型和可定制模板型.(1)內(nèi)置模板型:代碼的模板與生成工具是一體的,模板的格式和內(nèi)容都隱含在生成工具中,不能定制.這一類的生成工具如動(dòng)軟.Net代碼生成器,JAG-Java代碼生成器等.(2)可定制模板型:代碼的模板與生成工具分離,代碼生成工具提供一種標(biāo)記語(yǔ)言作為模板的編寫規(guī)則.用戶可通過(guò)標(biāo)記語(yǔ)言編寫代碼模板,從而滿足不同應(yīng)用平臺(tái)和應(yīng)用環(huán)境的需要.這一類的生成工具如CodeSmith,Freemarker,Velocity等.

    對(duì)于以上兩種類型的代碼生成工具,內(nèi)置模板型由于將模板內(nèi)置在程序中,用戶不能定制模板和生成規(guī)則,其應(yīng)用環(huán)境非常有限,通用性也比較差.對(duì)于CodeSmith,Freemarker,Velocity等[2]可定制模板型生成工具.盡管功能強(qiáng)大,能滿足各種代碼生成需要,具備較強(qiáng)的通用性,但這些生成工具所支持的代碼生成控制語(yǔ)言要么基于一種實(shí)際的開發(fā)語(yǔ)言(如CodeSmith基于C#語(yǔ)言),要么基于一種通用解釋型語(yǔ)言,掌握語(yǔ)言本身就需要花費(fèi)大量的時(shí)間,同時(shí)這些語(yǔ)言同關(guān)系數(shù)據(jù)模型結(jié)合不緊密,往往編寫的模板代碼結(jié)構(gòu)復(fù)雜,難于維護(hù),也很難在軟件開發(fā)團(tuán)隊(duì)中得到快速的應(yīng)用.

    2 基于關(guān)系數(shù)據(jù)模型的代碼生成原理

    2.1設(shè)計(jì)思路通過(guò)上述代碼生成技術(shù)分析可知:如果能在保持可定制模板型代碼生成工具框架結(jié)構(gòu)基礎(chǔ)上,對(duì)其代碼生成控制語(yǔ)言進(jìn)行改進(jìn),采用一種與關(guān)系數(shù)據(jù)模型緊密結(jié)合的代碼生成控制語(yǔ)言,將可以保持生成工具通用性,并提高代碼生成工具的可用性.據(jù)此,我們對(duì)代碼生成工具的設(shè)計(jì)劃分為兩部分:(1)與關(guān)系數(shù)據(jù)模型緊密相關(guān)的代碼生成控制語(yǔ)言(以下稱RDM CodeMark語(yǔ)言)的設(shè)計(jì);(2)基于RDM CodeMark語(yǔ)言的代碼生成工具(以下簡(jiǎn)稱RDM代碼生成工具)的設(shè)計(jì).

    2.2 RDM代碼生成工具工作原理

    圖1 RDM代碼生成工具結(jié)構(gòu)模型

    2.2.1 RDM代碼生成工具結(jié)構(gòu)模型 RDM代碼生成工具在原理上仍是一種基于模板的代碼生成工具,具有該類型代碼生成工具的通用結(jié)構(gòu),具體實(shí)現(xiàn)上有特殊之處,圖1是RDM代碼生成工具組成模型:(1) 關(guān)系模型建模:對(duì)關(guān)系模型進(jìn)行的形式化描述,代表系統(tǒng)的關(guān)系模式信息,構(gòu)成RDM代碼生成器的輸入.模型可以采用Word文檔、運(yùn)行的數(shù)據(jù)庫(kù)以及UML文檔等;(2) RDM CodeMark語(yǔ)言:同關(guān)系數(shù)據(jù)模型相關(guān)的代碼生成控制語(yǔ)言,采用類XML語(yǔ)言的語(yǔ)法格式和迭代語(yǔ)義規(guī)則,用于編寫代碼模板文件中動(dòng)態(tài)代碼生成腳本;(3) 模板文件:采用RDM CodeMark語(yǔ)言編寫的代碼生成控制腳本文件(即RDM CodeMark語(yǔ)言程序),用于定義輸出代碼文件的創(chuàng)建信息和在生成文件中定制代碼內(nèi)容;(4) RDM代碼生成器:代碼生成工具核心程序,以關(guān)系模型建模作為輸入,執(zhí)行指定代碼模板文件,輸出生成后的代碼文件.主要由關(guān)系數(shù)據(jù)模型管理部件和代碼生成部件兩部分組成,其中關(guān)系數(shù)據(jù)模型管理部件用于將不同的外部關(guān)系模型建模導(dǎo)入后轉(zhuǎn)換到內(nèi)部標(biāo)準(zhǔn)關(guān)系模型對(duì)象集進(jìn)行維護(hù)和管理,為代碼生成部件提供一致的關(guān)系模型訪問(wèn)接口.代碼生成部件則通過(guò)調(diào)入指定模板文件按照RDM CodeMark語(yǔ)言迭代語(yǔ)義規(guī)則執(zhí)行,在執(zhí)行過(guò)程中嵌入對(duì)關(guān)系數(shù)據(jù)模型對(duì)象集標(biāo)記的解析,最終生成實(shí)際程序代碼文件;(5) 代碼文件:實(shí)際生成代碼的輸出文件,是可以在項(xiàng)目系統(tǒng)中加入的可編譯源程序文件.

    2.2.2 代碼生成工具工作過(guò)程 (1) 采用RDM CodeMark語(yǔ)言編寫代碼模板文件;(2) 采用word文檔、數(shù)據(jù)庫(kù)建庫(kù)工具或UML對(duì)關(guān)系模型建模;(3) 在RDM代碼生成器中導(dǎo)入關(guān)系模型建模,轉(zhuǎn)換為內(nèi)部統(tǒng)一關(guān)系數(shù)據(jù)模型對(duì)象集,并維護(hù)對(duì)象集信息的完整性;(4) 在RDM代碼生成器中選擇模板文件并執(zhí)行,生成目標(biāo)代碼輸出文件.

    表1 表對(duì)象屬性及其標(biāo)記

    3 基于關(guān)系數(shù)據(jù)模型的代碼生成技術(shù)

    3.1關(guān)系數(shù)據(jù)模型對(duì)象集設(shè)計(jì)

    關(guān)系數(shù)據(jù)模型對(duì)象集是對(duì)具體項(xiàng)目所設(shè)計(jì)的數(shù)據(jù)字典的統(tǒng)一對(duì)象化表示,構(gòu)成代碼生成部件的實(shí)際輸入支持對(duì)象.關(guān)系數(shù)據(jù)模型對(duì)象集由表集合、表、列集合、列對(duì)象組成,對(duì)應(yīng)關(guān)系數(shù)據(jù)模型中的元模型數(shù)據(jù).

    表對(duì)象主要屬性及其在腳本中的代碼標(biāo)記如表1,列對(duì)象主要屬性及其在腳本中的代碼標(biāo)記如下表2.

    表2 列對(duì)象屬性及其標(biāo)記

    3.2 RDM CodeMark標(biāo)記語(yǔ)言RDM CodeMark標(biāo)記語(yǔ)言是結(jié)合關(guān)系數(shù)據(jù)模型設(shè)計(jì)的代碼標(biāo)記語(yǔ)言,在語(yǔ)法格式上接近XML語(yǔ)言,通過(guò)在代碼模板中嵌入標(biāo)記語(yǔ)言編寫的腳本程序,為代碼生成部件提供代碼生成控制.RDM CodeMark語(yǔ)言的語(yǔ)法成分分為三種類型:迭代控制語(yǔ)句、輸出控制語(yǔ)句和關(guān)系模型對(duì)象代碼標(biāo)記.

    3.2.1 迭代控制語(yǔ)句

    1) 表迭代語(yǔ)句TableLoop:執(zhí)行對(duì)所有的表進(jìn)行一次迭代展開.

    語(yǔ)法格式:,其中:

    (1) 對(duì)參加迭代的表進(jìn)行過(guò)濾,其語(yǔ)法為:

    .

    (2) 為迭代的表模板展開項(xiàng)之間提供分割符,語(yǔ)法為:.

    2) 表檢查語(yǔ)句TableCheck:執(zhí)行表屬性檢查,滿足條件的,執(zhí)行對(duì)應(yīng)的模板.

    語(yǔ)法格式為:,其中:

    構(gòu)成判斷的條件部分,其語(yǔ)法為:

    .

    (3)列迭代語(yǔ)句ColumnLoop:對(duì)表中所有列進(jìn)行一次迭代展開.

    語(yǔ)法格式為:,

    (4)列檢查語(yǔ)句ColumnCheck:執(zhí)行列屬性檢查,滿足條件的,執(zhí)行對(duì)應(yīng)的模板.

    語(yǔ)法格式為:.

    (5)調(diào)用腳本語(yǔ)句CallScript:將嵌入的模板腳本執(zhí)行,并引用其輸出.

    語(yǔ)法格式為:.

    (6) 腳本包含語(yǔ)句Using:將指定的模板文件嵌入到當(dāng)前文本中.

    語(yǔ)法格式為:.

    3.2.2 輸出控制語(yǔ)句 輸出控制語(yǔ)句只有一個(gè)OutputToFile語(yǔ)句,用于將迭代生成的文本寫入到指定文件中.在一個(gè)文本文件中多次使用則可控制生成多個(gè)文件.

    語(yǔ)法格式為:,

    其中,用于提供程序文件的相對(duì)輸出路徑,語(yǔ)法為 .

    3.2.3 關(guān)系模型對(duì)象代碼標(biāo)記 見表1和表2中各個(gè)對(duì)應(yīng)屬性的標(biāo)記語(yǔ)法部分.

    3.3 RDM代碼生成腳本(模板)文件使用RDM CodeMark標(biāo)記語(yǔ)言編寫的腳本文件是一種特殊的解釋型代碼生成控制程序(簡(jiǎn)稱RDM CodeMark腳本程序),能夠在對(duì)應(yīng)的翻譯器中控制執(zhí)行,以關(guān)系數(shù)據(jù)模型對(duì)象集作為輸入,動(dòng)態(tài)生成與關(guān)系數(shù)據(jù)模型相關(guān)的各種程序代碼.

    RDM CodeMark腳本程序中文本分為兩類:RDM CodeMark標(biāo)記語(yǔ)言語(yǔ)法成分和普通文本.RDM CodeMark腳本翻譯器針對(duì)RDM CodeMark標(biāo)記語(yǔ)言語(yǔ)法成分進(jìn)行迭代解釋輸出,而對(duì)于普通文本則不做處理直接輸出.RDM CodeMark腳本程序的編寫規(guī)則取決于翻譯器的代碼生成規(guī)則,具體規(guī)則見4.2節(jié)代碼生成的算法.

    RDM CodeMark腳本程序示例如下:

    (1)用于生成對(duì)表進(jìn)行Insert操作的SQL語(yǔ)句,見圖2:

    圖2 表的Insert操作模板腳本

    (2).Net平臺(tái)下數(shù)據(jù)操作模型對(duì)象的生成實(shí)例,見下圖3:

    圖3 .Net數(shù)據(jù)操作對(duì)象模板及代碼生成實(shí)例

    4 RDM代碼生成工具實(shí)現(xiàn)

    4.1 RDM代碼生成器的靜態(tài)類結(jié)構(gòu)RDM代碼生成器的靜態(tài)類設(shè)計(jì)可劃分為數(shù)據(jù)模型管理、數(shù)據(jù)模型導(dǎo)入,詞法解析,文件寫入,腳本迭代解析,代碼生成等不同職責(zé)的類集合.其對(duì)象關(guān)系見圖4.

    圖4 RDM 代碼生成工具類結(jié)構(gòu)框架

    數(shù)據(jù)模型管理類集合的作用是對(duì)關(guān)系數(shù)據(jù)模型的標(biāo)準(zhǔn)化表示和統(tǒng)一管理.由TableStandar-dModel、TableSet、Column-StandardModel、ColumnSet、DataModel-Catalog類構(gòu)成,分別對(duì)應(yīng)表標(biāo)準(zhǔn)模型類、表集合類、列標(biāo)準(zhǔn)模型類、列集合類、數(shù)據(jù)模型管理類.

    數(shù)據(jù)模型導(dǎo)入類集合的作用是將外部各種形式的應(yīng)用系統(tǒng)關(guān)系數(shù)據(jù)模型設(shè)計(jì)轉(zhuǎn)換為內(nèi)部標(biāo)準(zhǔn)數(shù)據(jù)模型,IDataModelImporter是導(dǎo)入類的抽象接口,主要方法為 DataModel-Catalog ImportDataModel(),為所有具體的導(dǎo)入類提供統(tǒng)一的功能規(guī)約.DataBase-Importer、XMLImporter、DocImporter、UmlImpo-rter類實(shí)現(xiàn)IDataModel-Importer接口,對(duì)應(yīng)實(shí)現(xiàn)以數(shù)據(jù)庫(kù)系統(tǒng)、XML數(shù)據(jù)模型設(shè)計(jì)文檔、Word數(shù)據(jù)模型設(shè)計(jì)文檔和UML數(shù)據(jù)模型設(shè)計(jì)文檔作為源模型向標(biāo)準(zhǔn)數(shù)據(jù)模型的轉(zhuǎn)換.ScriptBuilder、FileWriter、CodeParser-Util類屬于工具類,分別實(shí)現(xiàn)腳本文件的構(gòu)造、腳本文件的輸出、腳本的語(yǔ)法成分解析,為模板文件的迭代生成提供底層支持.

    腳本迭代解析類集合按照RDM CodeMark標(biāo)記語(yǔ)言的各個(gè)語(yǔ)句的語(yǔ)義要求,實(shí)現(xiàn)各種語(yǔ)句的腳本迭代解析,解析的過(guò)程就是局部生成目標(biāo)代碼的過(guò)程.所有語(yǔ)句解析類實(shí)現(xiàn)一個(gè)統(tǒng)一的腳本解析接口IScriptParser,其主要方法為string ParseScript(),實(shí)現(xiàn)腳本的迭代生成的功能規(guī)約.圖2中實(shí)現(xiàn)IScriptParser的各類分別對(duì)應(yīng)實(shí)現(xiàn)各個(gè)語(yǔ)句的語(yǔ)義迭代翻譯,限于篇幅此處不再詳述.RDMCodeGenerator類是代碼生成器的核心控制器類,以數(shù)據(jù)模型為輸入,執(zhí)行加載的模板文本,并生成最終的程序代碼.

    4.2 RDM代碼生成的關(guān)鍵算法RDMCodeGenerator類的方法Generate()是生成目標(biāo)程序代碼的關(guān)鍵方法,該方法的執(zhí)行算法見下圖5的代碼生成序列圖.

    圖5 代碼生成序列圖

    圖6 采用Delphi實(shí)現(xiàn)的RDM代碼生成工具的主界面

    4.3 RDM代碼生成器界面與功能按照RDM代碼生成工具的設(shè)計(jì),可以采用任意支持面向?qū)ο缶幊痰拈_發(fā)工具進(jìn)行實(shí)現(xiàn),圖6為采用Delphi實(shí)現(xiàn)的RDM代碼生成工具的主界面,其主要功能包括:數(shù)據(jù)模型設(shè)計(jì)文件的導(dǎo)入和編輯管理,模板文件的編輯和管理,模板的選擇與執(zhí)行管理,腳本的生成與輸出管理等.

    5 RDM代碼生成工具應(yīng)用實(shí)例

    RDM代碼生成工具可按照應(yīng)用系統(tǒng)數(shù)據(jù)模型設(shè)計(jì)快速生成應(yīng)用系統(tǒng)開發(fā)的基礎(chǔ)框架代碼,以“武漢大學(xué)本科生課程標(biāo)準(zhǔn)化考試系統(tǒng)”為例說(shuō)明生成工具搭建系統(tǒng)框架程序的過(guò)程,如下圖7所示:

    圖7 RDM代碼生成工具搭建系統(tǒng)框架程序?qū)?/p>

    圖8 .Net中生成的項(xiàng)目解決方案圖示

    過(guò)程說(shuō)明:(1)采用word文檔將系統(tǒng)的數(shù)據(jù)模型設(shè)計(jì)進(jìn)行文檔化并導(dǎo)入工具中轉(zhuǎn)換為標(biāo)準(zhǔn)數(shù)據(jù)模型對(duì)象;(2)生成數(shù)據(jù)庫(kù)建庫(kù)腳本SQL文件,在MS SQL Server2005中執(zhí)行并創(chuàng)建數(shù)據(jù)庫(kù);(3)按照.Net多層程序框架,依次生成應(yīng)用系統(tǒng)的Model層(模型層)、DAL層(數(shù)據(jù)存取層)、FacadeBLL層(基礎(chǔ)數(shù)據(jù)邏輯層)、UI層(基礎(chǔ)用戶界面層)代碼[3],見圖8;(4)在.Net開發(fā)工具VS2005中完成系統(tǒng)業(yè)務(wù)邏輯編程以及界面和程序的優(yōu)化.

    在此項(xiàng)目的實(shí)踐中,大約70%的程序代碼編寫工作轉(zhuǎn)變?yōu)楣ぞ呱桑蟠筇岣吡讼到y(tǒng)開發(fā)的效率,增強(qiáng)了代碼的穩(wěn)定性.

    6 結(jié)束語(yǔ)

    通過(guò)采用RDM代碼生成工具,可以形成一套完整的程序開發(fā)模式.通過(guò)在WORD文檔或直接在軟件中建立系統(tǒng)數(shù)據(jù)模型,使用此生成工具可以生成從數(shù)據(jù)庫(kù)創(chuàng)建SQL腳本文件,到.Net或J2EE開發(fā)平臺(tái)上的各層直接可編譯代碼文件,從而大幅度簡(jiǎn)化項(xiàng)目的代碼開發(fā)工作量.另通過(guò)在開發(fā)工具中增加對(duì)生成文檔和程序文件的自動(dòng)比對(duì)功能,則可識(shí)別出生成代碼中被維護(hù)的部分,從而在數(shù)據(jù)模型改變時(shí)可很快的遷移這部分修改,進(jìn)一步增強(qiáng)了代碼的可維護(hù)性.

    當(dāng)然,本文所描述的關(guān)系數(shù)據(jù)模型只是一個(gè)簡(jiǎn)化模型方案,若在此基礎(chǔ)上結(jié)合更多的數(shù)據(jù)模型特征或增加腳本語(yǔ)言的功能,則可進(jìn)一步提高生成代碼的質(zhì)量和生成工具的可適用性.

    參考文獻(xiàn):

    [1] 肖寒.J2EE平臺(tái)下代碼自動(dòng)生成技術(shù)研究[J].電腦知識(shí)與技術(shù),2009,5(20):5421-5422,5434.

    [2] 孫茂增,李鳳華,都婧.基于Velocity的J2EE應(yīng)用代碼生成系統(tǒng)[J].儀器儀表用戶,2008,15(1):105-106.

    [3] 陸遠(yuǎn),胡瑩..NET平臺(tái)下敏捷開發(fā)架構(gòu)及代碼生成技術(shù)[J].微計(jì)算機(jī)信息,2009(33):11-12,32.

    [4] 楊美榮,史建鋒,李明星.基于MDA 的代碼生成器設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2009,35(12):47-49,53.

    [5] 楊皓,楊忠,吳愚.基于XML腳本的代碼生成技術(shù)及其應(yīng)用[J].電腦知識(shí)與技術(shù),2009(7):7.

    猜你喜歡
    代碼生成數(shù)據(jù)模型腳本
    酒駕
    安奇奇與小cool 龍(第二回)
    Lustre語(yǔ)言可信代碼生成器研究進(jìn)展
    面板數(shù)據(jù)模型截面相關(guān)檢驗(yàn)方法綜述
    數(shù)據(jù)庫(kù)系統(tǒng)shell腳本應(yīng)用
    加熱爐爐內(nèi)跟蹤數(shù)據(jù)模型優(yōu)化
    快樂(lè)假期
    代碼生成技術(shù)在軟件開發(fā)中的應(yīng)用
    電子世界(2016年15期)2016-08-29 02:14:28
    基于XML的代碼自動(dòng)生成工具
    電子科技(2015年2期)2015-12-20 01:09:20
    面向集成管理的出版原圖數(shù)據(jù)模型
    老司机福利观看| 色视频www国产| 欧美性猛交黑人性爽| 精品久久久久久久久亚洲| 大型黄色视频在线免费观看| 国产精品一区二区三区四区免费观看| 国产麻豆成人av免费视频| 欧美最新免费一区二区三区| 久久久久国产网址| 国产探花在线观看一区二区| 可以在线观看毛片的网站| 中文在线观看免费www的网站| 特大巨黑吊av在线直播| 蜜桃久久精品国产亚洲av| 特大巨黑吊av在线直播| 啦啦啦啦在线视频资源| 欧美激情在线99| 丝袜美腿在线中文| 国产极品精品免费视频能看的| 91久久精品电影网| av福利片在线观看| 国产极品精品免费视频能看的| 日本黄大片高清| 1000部很黄的大片| 你懂的网址亚洲精品在线观看 | 一边摸一边抽搐一进一小说| 少妇猛男粗大的猛烈进出视频 | 亚洲在线自拍视频| 成人鲁丝片一二三区免费| 久久久色成人| 国产视频首页在线观看| 久久精品综合一区二区三区| 高清日韩中文字幕在线| 国内揄拍国产精品人妻在线| 国产一区二区三区av在线 | 国产精品免费一区二区三区在线| av在线观看视频网站免费| 深夜a级毛片| 人人妻人人澡欧美一区二区| 只有这里有精品99| 男女啪啪激烈高潮av片| 成人亚洲欧美一区二区av| 日韩 亚洲 欧美在线| 黑人高潮一二区| 一进一出抽搐gif免费好疼| 亚洲性久久影院| 欧美色视频一区免费| 日韩高清综合在线| 91在线精品国自产拍蜜月| 国产高清有码在线观看视频| 日韩欧美精品v在线| 精品人妻视频免费看| 中文欧美无线码| 国产毛片a区久久久久| 欧美激情国产日韩精品一区| 一个人看视频在线观看www免费| 蜜桃亚洲精品一区二区三区| 熟女人妻精品中文字幕| 禁无遮挡网站| 最近的中文字幕免费完整| 啦啦啦啦在线视频资源| 欧美色欧美亚洲另类二区| 午夜激情欧美在线| 成年免费大片在线观看| 久久99热6这里只有精品| 在线观看午夜福利视频| 六月丁香七月| 国产精品久久视频播放| 一本久久精品| a级毛片a级免费在线| 欧美精品国产亚洲| 精品国产三级普通话版| 91av网一区二区| 美女大奶头视频| 国产三级中文精品| 日本黄大片高清| 黄色日韩在线| 亚洲经典国产精华液单| 亚洲性久久影院| 看片在线看免费视频| 国产 一区 欧美 日韩| 午夜激情欧美在线| 三级毛片av免费| 51国产日韩欧美| 国产亚洲av嫩草精品影院| 亚洲最大成人手机在线| 亚洲精品自拍成人| 高清毛片免费看| 美女高潮的动态| 麻豆成人午夜福利视频| 黑人高潮一二区| 国产成人精品久久久久久| 精品久久久久久久久久免费视频| 级片在线观看| 青春草视频在线免费观看| 国内久久婷婷六月综合欲色啪| 十八禁国产超污无遮挡网站| 亚洲av不卡在线观看| 国产69精品久久久久777片| 欧美3d第一页| 国产片特级美女逼逼视频| 麻豆国产av国片精品| 春色校园在线视频观看| 六月丁香七月| 亚洲aⅴ乱码一区二区在线播放| 欧美性猛交黑人性爽| 国产一区二区三区在线臀色熟女| 色吧在线观看| 久久久久久伊人网av| 自拍偷自拍亚洲精品老妇| 寂寞人妻少妇视频99o| 久久久精品大字幕| 日韩欧美国产在线观看| 别揉我奶头 嗯啊视频| 三级毛片av免费| 国产麻豆成人av免费视频| 午夜爱爱视频在线播放| 亚洲av免费高清在线观看| 69av精品久久久久久| 一个人免费在线观看电影| 国产黄a三级三级三级人| 国产精品av视频在线免费观看| 成人三级黄色视频| 国产白丝娇喘喷水9色精品| 精品不卡国产一区二区三区| 九九在线视频观看精品| 我的老师免费观看完整版| 国产极品天堂在线| 亚洲真实伦在线观看| 中文欧美无线码| 久久久久久久久大av| 丰满乱子伦码专区| а√天堂www在线а√下载| 一区二区三区免费毛片| 久久国内精品自在自线图片| av卡一久久| 一级毛片久久久久久久久女| 大香蕉久久网| 亚洲精品日韩在线中文字幕 | 亚州av有码| а√天堂www在线а√下载| 久99久视频精品免费| 国产又黄又爽又无遮挡在线| 韩国av在线不卡| 日韩欧美国产在线观看| 国内精品一区二区在线观看| 久久99精品国语久久久| 亚洲精品粉嫩美女一区| 在线观看午夜福利视频| 人妻久久中文字幕网| 国内久久婷婷六月综合欲色啪| 精品久久久久久久人妻蜜臀av| 51国产日韩欧美| 真实男女啪啪啪动态图| 九九在线视频观看精品| 色哟哟·www| 成人av在线播放网站| 成人一区二区视频在线观看| 久久精品人妻少妇| 深爱激情五月婷婷| 精品久久久久久成人av| 免费av不卡在线播放| 国产伦精品一区二区三区视频9| 免费人成视频x8x8入口观看| 久久久a久久爽久久v久久| 亚洲成人av在线免费| 高清日韩中文字幕在线| 午夜福利视频1000在线观看| 内地一区二区视频在线| 国产成人精品久久久久久| 国产成人91sexporn| 久久午夜福利片| 丝袜喷水一区| av.在线天堂| 亚洲国产欧美在线一区| 老司机影院成人| 国产又黄又爽又无遮挡在线| 日韩av不卡免费在线播放| 久久久久久久午夜电影| 免费看日本二区| 欧美激情国产日韩精品一区| 久久欧美精品欧美久久欧美| 一个人免费在线观看电影| 晚上一个人看的免费电影| 网址你懂的国产日韩在线| 亚洲欧洲国产日韩| 久久午夜亚洲精品久久| 99精品在免费线老司机午夜| 亚洲乱码一区二区免费版| 亚洲av第一区精品v没综合| 亚洲欧美精品综合久久99| 国产精品一区二区三区四区免费观看| 亚洲av男天堂| 久久久色成人| 亚洲,欧美,日韩| 少妇丰满av| 欧美成人一区二区免费高清观看| 国产色爽女视频免费观看| 成人毛片60女人毛片免费| 男女边吃奶边做爰视频| 成人二区视频| 国语自产精品视频在线第100页| 蜜臀久久99精品久久宅男| 亚洲一级一片aⅴ在线观看| 国产乱人视频| 国产伦理片在线播放av一区 | 美女被艹到高潮喷水动态| 成人高潮视频无遮挡免费网站| 女同久久另类99精品国产91| 此物有八面人人有两片| 菩萨蛮人人尽说江南好唐韦庄 | 久久久久九九精品影院| 国产精品嫩草影院av在线观看| 色视频www国产| 中文在线观看免费www的网站| 91精品一卡2卡3卡4卡| 插逼视频在线观看| 哪个播放器可以免费观看大片| 99热只有精品国产| 69人妻影院| 国产真实乱freesex| 久久这里有精品视频免费| 22中文网久久字幕| 变态另类丝袜制服| 久久精品国产亚洲网站| 国语自产精品视频在线第100页| 日韩欧美三级三区| a级毛色黄片| 日韩国内少妇激情av| 菩萨蛮人人尽说江南好唐韦庄 | 国产国拍精品亚洲av在线观看| 99在线视频只有这里精品首页| 久久久欧美国产精品| 最好的美女福利视频网| а√天堂www在线а√下载| 久久精品国产亚洲网站| 国产白丝娇喘喷水9色精品| 久久久久久久久大av| 国产亚洲精品久久久com| 18+在线观看网站| 人妻夜夜爽99麻豆av| 国产高清视频在线观看网站| 99热6这里只有精品| 看免费成人av毛片| 丰满的人妻完整版| 亚洲人与动物交配视频| 亚洲av二区三区四区| 99热只有精品国产| 一级黄片播放器| 久久精品国产亚洲av涩爱 | 午夜爱爱视频在线播放| 国内精品久久久久精免费| 成人毛片a级毛片在线播放| 久久久精品94久久精品| 精品99又大又爽又粗少妇毛片| av天堂中文字幕网| 综合色av麻豆| 啦啦啦啦在线视频资源| 日本成人三级电影网站| 日韩强制内射视频| av在线老鸭窝| 看十八女毛片水多多多| 亚洲自偷自拍三级| 女人被狂操c到高潮| .国产精品久久| 九色成人免费人妻av| 直男gayav资源| 欧美日韩一区二区视频在线观看视频在线 | 男人舔奶头视频| 69人妻影院| 在线播放国产精品三级| 亚洲欧美精品自产自拍| 亚洲一级一片aⅴ在线观看| 久久久久久九九精品二区国产| 国产三级中文精品| or卡值多少钱| 欧美丝袜亚洲另类| 秋霞在线观看毛片| 国产成人精品一,二区 | 天堂av国产一区二区熟女人妻| 日韩人妻高清精品专区| 最近视频中文字幕2019在线8| 成年av动漫网址| 亚洲欧美清纯卡通| 成人特级av手机在线观看| or卡值多少钱| 亚洲人与动物交配视频| 欧美激情国产日韩精品一区| 菩萨蛮人人尽说江南好唐韦庄 | 日韩亚洲欧美综合| 亚洲内射少妇av| 免费大片18禁| 99riav亚洲国产免费| 麻豆乱淫一区二区| 国产久久久一区二区三区| 一级毛片aaaaaa免费看小| 成人永久免费在线观看视频| 欧美区成人在线视频| 在线观看av片永久免费下载| 少妇丰满av| 国产成人精品婷婷| 国产精品三级大全| 精品免费久久久久久久清纯| 国模一区二区三区四区视频| 热99re8久久精品国产| 99热这里只有精品一区| 国产成人精品一,二区 | 亚洲欧美精品专区久久| 97人妻精品一区二区三区麻豆| 黄片无遮挡物在线观看| 日韩中字成人| 日韩制服骚丝袜av| 国产一区亚洲一区在线观看| 丰满乱子伦码专区| 美女xxoo啪啪120秒动态图| 亚洲国产精品成人综合色| 亚洲va在线va天堂va国产| 国产淫片久久久久久久久| 午夜激情福利司机影院| 婷婷色av中文字幕| 精品日产1卡2卡| 蜜桃久久精品国产亚洲av| 精品久久久久久成人av| 国产乱人偷精品视频| 国产成人精品一,二区 | 亚洲成人久久爱视频| 最近的中文字幕免费完整| 91精品国产九色| 别揉我奶头 嗯啊视频| 国产精品女同一区二区软件| 丝袜美腿在线中文| 成人毛片60女人毛片免费| 亚洲欧美日韩无卡精品| 能在线免费看毛片的网站| 国产乱人偷精品视频| a级一级毛片免费在线观看| 日本熟妇午夜| 悠悠久久av| 少妇被粗大猛烈的视频| 五月玫瑰六月丁香| 中文字幕熟女人妻在线| 免费搜索国产男女视频| 国产精品嫩草影院av在线观看| 久久久国产成人免费| 又爽又黄无遮挡网站| 级片在线观看| 啦啦啦韩国在线观看视频| 国产成人一区二区在线| 在线a可以看的网站| 亚洲一级一片aⅴ在线观看| 欧美xxxx性猛交bbbb| 国产午夜精品论理片| eeuss影院久久| 成人性生交大片免费视频hd| 九草在线视频观看| 又粗又硬又长又爽又黄的视频 | 国产综合懂色| 高清午夜精品一区二区三区 | 天堂av国产一区二区熟女人妻| 日日啪夜夜撸| 午夜福利在线观看吧| 亚洲第一电影网av| 人人妻人人澡人人爽人人夜夜 | 国产精品久久视频播放| 午夜精品国产一区二区电影 | 啦啦啦韩国在线观看视频| 18禁黄网站禁片免费观看直播| 免费搜索国产男女视频| 麻豆一二三区av精品| 99久久精品热视频| 在现免费观看毛片| 99热这里只有是精品50| 小说图片视频综合网站| 免费av毛片视频| 亚洲aⅴ乱码一区二区在线播放| 午夜精品在线福利| 黄色配什么色好看| а√天堂www在线а√下载| 给我免费播放毛片高清在线观看| 亚洲欧洲国产日韩| 熟妇人妻久久中文字幕3abv| av在线老鸭窝| 国产精品电影一区二区三区| 亚洲在线自拍视频| www.av在线官网国产| 日本黄色视频三级网站网址| 最新中文字幕久久久久| 国产精品综合久久久久久久免费| 久久久久久久久久黄片| 在线免费十八禁| 99久久精品一区二区三区| 日韩视频在线欧美| 一个人看视频在线观看www免费| 精品熟女少妇av免费看| 91午夜精品亚洲一区二区三区| 波多野结衣高清作品| 美女黄网站色视频| 亚洲欧洲日产国产| 1024手机看黄色片| 亚洲不卡免费看| 全区人妻精品视频| 日韩av不卡免费在线播放| av又黄又爽大尺度在线免费看 | 日本熟妇午夜| 国产熟女欧美一区二区| 国产精品.久久久| 看十八女毛片水多多多| 菩萨蛮人人尽说江南好唐韦庄 | 亚洲成人久久性| 又粗又硬又长又爽又黄的视频 | 婷婷色av中文字幕| 欧美日本视频| 一进一出抽搐gif免费好疼| 日产精品乱码卡一卡2卡三| 26uuu在线亚洲综合色| 亚洲va在线va天堂va国产| 少妇高潮的动态图| 少妇裸体淫交视频免费看高清| 成人午夜精彩视频在线观看| 成人国产麻豆网| 精品日产1卡2卡| 自拍偷自拍亚洲精品老妇| av女优亚洲男人天堂| 夜夜看夜夜爽夜夜摸| 最后的刺客免费高清国语| 99久久九九国产精品国产免费| а√天堂www在线а√下载| 久久亚洲国产成人精品v| 美女国产视频在线观看| 国产亚洲av片在线观看秒播厂 | 亚洲丝袜综合中文字幕| 亚洲18禁久久av| 亚洲国产精品久久男人天堂| 菩萨蛮人人尽说江南好唐韦庄 | 久久久精品大字幕| av又黄又爽大尺度在线免费看 | av在线老鸭窝| 久久99热这里只有精品18| 亚洲国产精品久久男人天堂| 色综合亚洲欧美另类图片| 亚洲人成网站在线播| 日产精品乱码卡一卡2卡三| 夜夜夜夜夜久久久久| 波多野结衣高清无吗| 一进一出抽搐动态| 久久欧美精品欧美久久欧美| 最近的中文字幕免费完整| 中文字幕av成人在线电影| 一级黄片播放器| 午夜福利在线在线| 欧美丝袜亚洲另类| 91久久精品电影网| 国产美女午夜福利| 三级毛片av免费| 久久久久九九精品影院| 亚洲三级黄色毛片| 人人妻人人澡欧美一区二区| 男人的好看免费观看在线视频| 在线国产一区二区在线| 国产av在哪里看| 青春草亚洲视频在线观看| 日韩 亚洲 欧美在线| 日韩在线高清观看一区二区三区| 欧美+亚洲+日韩+国产| 最近视频中文字幕2019在线8| 亚洲精品456在线播放app| 人人妻人人看人人澡| 亚洲精品日韩av片在线观看| 午夜福利在线观看吧| 校园春色视频在线观看| 高清午夜精品一区二区三区 | 成人午夜高清在线视频| 久久久国产成人精品二区| 欧美潮喷喷水| 国产av在哪里看| 丝袜美腿在线中文| 又黄又爽又刺激的免费视频.| 国产成人91sexporn| 99久久成人亚洲精品观看| 亚洲av.av天堂| 真实男女啪啪啪动态图| 男女做爰动态图高潮gif福利片| 亚洲精品乱码久久久v下载方式| 搡女人真爽免费视频火全软件| 日本三级黄在线观看| 日韩欧美一区二区三区在线观看| 丝袜喷水一区| 一边亲一边摸免费视频| 日韩在线高清观看一区二区三区| 国产黄片视频在线免费观看| 免费无遮挡裸体视频| 亚洲婷婷狠狠爱综合网| 寂寞人妻少妇视频99o| 亚洲国产精品成人久久小说 | 九九爱精品视频在线观看| 菩萨蛮人人尽说江南好唐韦庄 | 久久久久久久久中文| 嫩草影院新地址| 婷婷精品国产亚洲av| 国产精华一区二区三区| 国产精品综合久久久久久久免费| 干丝袜人妻中文字幕| av国产免费在线观看| 国产乱人偷精品视频| 国产高清视频在线观看网站| 午夜免费男女啪啪视频观看| 美女xxoo啪啪120秒动态图| 内射极品少妇av片p| 日日摸夜夜添夜夜爱| 插逼视频在线观看| 亚洲国产色片| 久久久午夜欧美精品| 校园春色视频在线观看| 国产男人的电影天堂91| 日韩在线高清观看一区二区三区| 卡戴珊不雅视频在线播放| 悠悠久久av| 热99re8久久精品国产| 久久99蜜桃精品久久| 亚洲人成网站在线播| 久久中文看片网| 联通29元200g的流量卡| 免费看美女性在线毛片视频| 黄色日韩在线| 国产老妇伦熟女老妇高清| 欧美又色又爽又黄视频| 一卡2卡三卡四卡精品乱码亚洲| 国产成人91sexporn| 欧美最黄视频在线播放免费| 久久久精品欧美日韩精品| 岛国毛片在线播放| 久久国内精品自在自线图片| 国产乱人视频| 嘟嘟电影网在线观看| 久久婷婷人人爽人人干人人爱| 天堂网av新在线| 久久久久久大精品| 少妇熟女aⅴ在线视频| 18禁裸乳无遮挡免费网站照片| 国产免费一级a男人的天堂| 中文字幕精品亚洲无线码一区| 欧美日韩精品成人综合77777| 国产又黄又爽又无遮挡在线| 麻豆国产97在线/欧美| 尾随美女入室| 夜夜爽天天搞| 99久久久亚洲精品蜜臀av| 欧美丝袜亚洲另类| 婷婷六月久久综合丁香| 亚洲丝袜综合中文字幕| 嫩草影院新地址| 欧美日韩一区二区视频在线观看视频在线 | 国产视频首页在线观看| 成人鲁丝片一二三区免费| 国产精品一及| 国产精品不卡视频一区二区| 欧美成人一区二区免费高清观看| 亚洲精品亚洲一区二区| 国产久久久一区二区三区| 亚洲国产欧美人成| 免费av不卡在线播放| 最近的中文字幕免费完整| 九九久久精品国产亚洲av麻豆| 国产激情偷乱视频一区二区| 日韩av在线大香蕉| 日韩一本色道免费dvd| 成年av动漫网址| 国产国拍精品亚洲av在线观看| 国产精品乱码一区二三区的特点| 99久久精品国产国产毛片| 美女大奶头视频| 欧美一级a爱片免费观看看| 欧美性感艳星| 寂寞人妻少妇视频99o| 午夜福利成人在线免费观看| 五月玫瑰六月丁香| 欧美人与善性xxx| 麻豆国产av国片精品| 蜜臀久久99精品久久宅男| 一本精品99久久精品77| 深爱激情五月婷婷| 变态另类成人亚洲欧美熟女| 少妇熟女欧美另类| av免费在线看不卡| 成人永久免费在线观看视频| 好男人在线观看高清免费视频| av免费观看日本| 99热精品在线国产| 卡戴珊不雅视频在线播放| 欧美又色又爽又黄视频| 99热这里只有是精品50| 亚洲国产精品成人综合色| 男女啪啪激烈高潮av片| 尤物成人国产欧美一区二区三区| 九九热线精品视视频播放| 亚洲经典国产精华液单| 少妇熟女欧美另类| 国产高清视频在线观看网站| 老熟妇乱子伦视频在线观看| 三级毛片av免费| 国产精品,欧美在线| 看免费成人av毛片| 国产中年淑女户外野战色| 高清日韩中文字幕在线| 国产精品不卡视频一区二区| 午夜精品在线福利| 草草在线视频免费看| 国产精品不卡视频一区二区| 国产精华一区二区三区| 在线观看一区二区三区| 国产午夜精品一二区理论片| 国产成人影院久久av| 久久人人精品亚洲av| 成人综合一区亚洲| 欧美一区二区亚洲|