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

    一種基于源碼分析和代碼生成的ORM開發(fā)工具

    2016-08-19 19:39:46瞿華
    電腦知識與技術 2016年20期
    關鍵詞:代碼生成

    瞿華

    摘要:目前在開發(fā)信息系統(tǒng)時,數據持久化功能多采用ORM(對象——關系映射)框架,如Hiberate、MyBatis來進行。這類框架降低了數據持久化功能開發(fā)工作量,提升了軟件開發(fā)和維護的效率,但同時也降低了系統(tǒng)的運行速度、消耗了更多的內存等資源。針對現(xiàn)有ORM框架運行效率低的缺點,該文提出了一種在代碼開發(fā)階段使用源碼分析獲取ORM元信息,自動生成相關代碼的數據持久化功能開發(fā)方法,并以Intelli IDEA平臺插件的形式設計和開發(fā)了相應的工具——EasyPersist 。本文通過實驗程序,將自動生成的持久化代碼與使用Hibernate框架的代碼進行了對比實驗,證明了所提出的方法的有效性。

    關鍵詞:數據持久化;ORM;源碼分析;代碼生成

    中圖分類號:TP317 文獻標識碼:A 文章編號:1009-3044(2016)20-0083-04

    1 背景

    黑龍江省森林工業(yè)總局(龍江森工)是我國最大的國有林區(qū)和森林工業(yè)集團。龍江森工為了提升自身的管理水平,委托筆者所在的課題組開發(fā)和實施智慧林業(yè)信息管理平臺項目。筆者在項目的調研過程中了解到,基層職工多,包袱重,人均收入低,信息化投入有限,是影響國有林業(yè)企業(yè)基層信息管理系統(tǒng)普及的重要因素。因此,盡可能地提高信息系統(tǒng)的運行效率,降低系統(tǒng)對運行環(huán)境的要求,減少系統(tǒng)運維成本,對于在林業(yè)部門普及和推廣信息系統(tǒng)具有重要的意義。

    為了應對問題領域的復雜性,較好地適應需求的變化,目前的信息系統(tǒng)大多采用面向對象方法進行開發(fā),用實體對象[1]來組織和表示系統(tǒng)在運行過程中獲取和產生的各種信息。而與此同時,在信息的持久化存儲上,大多數信息系統(tǒng)還在采用傳統(tǒng)的關系式數據庫,即使用關系數據表來存儲信息。因此,在大多數信息系統(tǒng)中,都必須通過某種方式來實現(xiàn)從對象和關系式數據的轉換,即所謂的對象——關系映射(Object-Relational Mapping,簡稱ORM)功能[2-4]。

    目前有多種ORM框架,如Hiberante[5]、iBatis[6]等,可以幫助開發(fā)者簡化ORM功能的開發(fā)。這些ORM框架都是在程序運行時,通過反射來動態(tài)訪問實體對象的屬性和方法[7, 8],不需要對象實現(xiàn)特殊的接口或方法,具有較高的靈活性,易于部署和使用,因此得到了廣泛的應用。

    但這些ORM框架也存在一些天然的缺陷,如:1)必須使用反射機制動態(tài)訪問實體對象,增加了系統(tǒng)運行時的開銷,降低了系統(tǒng)的運行效率;2)數據庫操作完全在程序運行時動態(tài)生成,開發(fā)人員難以控制和優(yōu)化[9-12]等。

    針對傳統(tǒng)ORM框架運行效率較低的缺點,本文提出了一種新的在代碼開發(fā)階段,自動生成源代碼的ORM開發(fā)方法,并在Intellij IDEA平臺①上設計和實現(xiàn)了相應的ORM開發(fā)工具——EasyPersist②。使用該工具,可以自動生成實體類的ORM持久化代碼。生成的代碼可供開發(fā)人員利用繼承或嵌入等方式直接使用,也可以自由的進行修改和優(yōu)化。因此本方法在未犧牲開發(fā)效率的前提下,為開發(fā)人員提供了更大的靈活性。此外,由于沒有運行時的反射等開銷,最終程序的代碼運行效率也更高。該工具在實際項目《龍江森工集團智慧決策平臺》的開發(fā)中得到了應用,取得了較好的效果。

    2 問題描述

    2.1 ORM功能

    在使用面向對象方法開發(fā)的系統(tǒng)中,實體對象(Entity)是數據的基本組織和存儲單位,數據多以實體對象屬性的形式存在。當系統(tǒng)需要將實體對象中的數據持久化保存到數據庫中時,必須將實體對象的屬性值轉化成對應的數據記錄的字段參數;同樣的,當系統(tǒng)需要從數據庫中載入數據時,也必須將數據庫返回的查詢結果中的字段數據轉化為對應的實體對象屬性,如表1所示。這就是所謂的ORM功能。

    由于ORM本質上是對數據庫訪問接口的機械調用和數據格式之間的轉換,因此可以用某種自動化工具來對其進行封裝,從而簡化系統(tǒng)的開發(fā)。根據這一思想,產生了ORM框架。使用ORM框架開發(fā)的系統(tǒng),無須編寫數據庫訪問和數據映射轉換代碼,只需要將轉換信息(ORM元信息)提供給ORM框架,然后調用相關的API即可。除此之外,很多ORM框架還提供了實體間關系映射的處理、緩存等高級功能。

    但這些框架都需要在系統(tǒng)運行時,動態(tài)生成SQL查詢語句,并通過反射等方式動態(tài)創(chuàng)建和訪問實體對象,因此需要額外消耗一定的內存和CPU等資源,與手工編寫的ORM相比,運行效率較低;此外,由于SQL語句在運行時動態(tài)生成,難以對其進行手動優(yōu)化,因此這類框架也普遍存在著復雜查詢效率低的問題。

    2.2 ORM元數據與注解

    ORM主要是實體對象(屬性)和關系數據(字段)之間的轉換,不管哪種ORM工具,都需要知道實體和數據表、屬性和字段等之間的對應關系,才能完成轉換。這些對應信息就構成了所謂的ORM元信息(meta information)。目前,主要有三種方法來提供ORM元信息,即約定[13]、XML映射文件和注解[14, 15]。

    約定方式是指程序開發(fā)者按照預先約定好的規(guī)則來命名相關的程序和數據庫元素,如要求實體類和數據表的名稱必須相同等。這種方法工作量較小,但靈活性和兼容性差,主要用在各種快速開發(fā)框架中;XML映射文件方式是指以XML格式的配置文件提供相關的ORM元信息,使用較為靈活,但配置信息和程序代碼分離也帶來了一些開發(fā)維護上的問題;注解方式是通過特殊的語法,將元數據直接以注解(Annotation)的形式嵌入在程序源代碼和編譯后的可執(zhí)行代碼中,開發(fā)、維護和使用較為便利,目前也得到了廣泛的應用。本文也采用這種方法來提供實體類的ORM元信息。表2是采用JPA 2.1標準注解提供ORM元信息的實體類示例:

    3 工作原理

    目前各種ORM框架,如Java社區(qū)常用的Hibernate,MyBatis等,其基本工作原理類似,如圖1所示:

    1)系統(tǒng)啟動時,首先通過讀取XML文件、解析代碼中的注解信息等方式載入ORM元信息;2)當系統(tǒng)需要進行數據持久化時,調用ORM框架提供的API接口方法;3)ORM框架一方面通過反射機制訪問實體對象中的相應屬性或方法,從而實現(xiàn)對象中信息的讀取或更新;另一方面根據元信息動態(tài)生成SQL語句,訪問關系式數據庫進行數據存取。

    為了解決ORM框架在運行時工作帶來的運行效率低下的問題,本文提出的EasyPersist工具,其工作原理與傳統(tǒng)的ORM有較大的區(qū)別,如圖2所示:

    1)EasyPersist工作在代碼開發(fā)階段。開發(fā)人員完成了實體類和ORM元信息的開發(fā)后,手動執(zhí)行EasyPersist工具;

    2)EasyPersist工具讀入實體類的源代碼,分析其注解信息,從而得到ORM元信息,建立ORM映射模型;

    3)EasyPersist根據ORM映射模型,生成實體類對應的數據持久化源代碼(以數據持久化類的形式);

    4)開發(fā)人員在程序中使用自動生成的源代碼。

    由于EasyPersist自動化生成相關的源代碼,因此其開發(fā)的效率與使用ORM框架相比,是相同的;同時,由于生成的源代碼中未對數據庫操作和數據庫轉換操作進行額外的封裝,因此它的執(zhí)行效率與手工編寫的代碼相當,比傳統(tǒng)的ORM框架要更加高效。

    4 EasyPersist工具設計與實現(xiàn)

    4.1 EasyPersist的整體結構

    EasyPersist的整體結構如圖3所示,主要包括四大子模塊,即:

    1)XML配置文件解析模塊(Config Parser),負責解析XML配置文件,獲取實體類所在包和持久化代碼輸出目錄等相關配置信息;

    2)實體關系模型倉庫(Mapping Repository),用于儲存各實體類對應的ORM元信息;

    3)源代碼分析模塊(Package Scaner),用于分析實體類的源代碼,獲取實體類對應的ORM的元信息,并存儲到實體關系模型倉庫中;

    4)代碼生成模塊(Persistor Generator),從實體關系模型倉庫中讀取各實體的ORM元信息,生成最終的持久化代碼。

    4.2 源代碼分析算法

    源代碼分析模塊是EasyPersist的核心模塊之一,其作用是對程序源代碼進行分析,找出實體類以及對應的ORM元信息。其核心算法如表3所示:

    4.3 代碼生成算法

    代碼生成是EasyPersist的另一個核心模塊,其作用是根據已有的ORM元信息,生成對應實體的持久化代碼。其核心算法見表4。

    4.4 條件查詢與分頁

    除了基本的CRUD操作外,在信息系統(tǒng)中還經常需要查找屬性符合特定條件的實體,即進行條件查詢操作。由于每一個實體類都可能會有多個屬性,將各屬性的所有可能組合都一一列舉出來分別生成一個對應的查詢方法,會導致生成的代碼過分龐大。因此,需要通過某種方式,在ORM元信息中指明可能的條件查詢方式。

    實際上,在關系數據庫的查詢中,往往采用建立索引的方式來對條件查詢進行優(yōu)化。因此,可以在實體類代碼中嵌入JPA2.1標準中的@Index和@UniqueContstraint等注解,以提供數據庫中的索引信息,如表5所示。

    EasyPersist在源代碼分析時讀取這些元信息,然后在代碼生成根據元信息推斷出信息系統(tǒng)可能的條件查詢方式,并生成相應的條件查詢代碼。

    根據索引和被索引字段類型的不同,其可能的條件查詢方式和返回結果也不同:

    1)對于唯一型索引,其可以有兩種查詢方式:a.要求被索引字段(屬性)的值與查詢關鍵字相等,此時查詢結果應是唯一的;b.要求被索引字段(屬性)的值位于查詢關鍵字限定的某個范圍內,此時查詢結果是一組實體對象。因此,對于此種索引,可以針對兩種情況分別生成兩個查詢方法。

    2)對于非唯一型索引,不管是要求與查詢關鍵字相等還是要求位于某一范圍內,其查詢結果都可能是一組實體對象。因此。這種索引只需要生成一個查詢方法。

    此外,針對信息系統(tǒng)中常見的分頁要求,EasyPersist一方面在返回一組對象的查詢方法中增加了相關的參數,另一方面為每個索引生成一個對應的計數方法。

    最終得到的條件查詢方法生成算法如表6所示。

    5 試驗

    筆者在Core i5,16G內存,Windows 7 64位, JDK 1.8.0_60 64位環(huán)境下,對使用Hibernate框架編寫和用EasyPersist生成的持久化代碼進行了對比測試。具體測試內容如下:

    1)實驗一,將1000個實體對象依次保存到空的數據表中,記錄所用總時間和內存;

    2)實驗二,從數據表中讀取全部的1000條記錄,重復1000次,記錄所用總時間和內存;

    3)實驗三,從數據表中讀取所有符合特定查詢條件的記錄(有索引),重復1000次,記錄所用總時間和內存。

    三項實驗分別進行了1000次,結果如表7-9所示

    從實驗結果可見,與Hibernate框架相比,使用EasyPersist生成的持久化代碼,其運行時間更短,使用的內存資源也更少;特別是進行數據的讀取查詢處理時,在內存資源的使用上有近百倍的差別。因此,EasyPersist具有明顯的優(yōu)越性。

    6 結束語

    本文針對以Hibernate為代表的 ORM框架的運行時速度較慢,資源占用較高等缺點,提出了一種在代碼開發(fā)時通過源碼分析提取ORM元信息,從而自動生成數據持久化源代碼的ORM開發(fā)方法,并開發(fā)出了相應的EasyPersist工具。實驗證明,使用該工具生成的數據持久化代碼,與使用傳統(tǒng)ORM框架開發(fā)的數據持久化代碼相比,開發(fā)和維護效率相當,而在運行速度和內存占用上都有較明顯的改善,從而可以減少系統(tǒng)對運行環(huán)境的要求,更加有利于信息系統(tǒng)在基層林業(yè)部門的普及和推廣。

    注釋:

    ① http://www.jetbrains.com/idea.

    ② https://github.com/royqh1979/EasyPersist.

    參考文獻:

    [1] Masliankoa P P, Maistrenkoa A S. A system of entities for enterprise business models[J]. Cybernetics and Systems Analysis, 2012, 48(1): 99-107.

    [2] Wang Y, Xu,Y. Research of solutions of object-relational mapping in JAVA platform[C]//2011 International Conference on Control, Automation and Systems Engineering, Singapore, Singapore, 2011.

    [3] Zyl P V, Kourie D G.The influence of optimisations on the performance of an object relational mapping tool[C]//Proceedings of the 2009 Annual Research Conference of the South African Institute of Computer Scientists and Information Technologists, Vanderbijlpark, Emfuleni, South Africa. ACM, 2009.

    [4] 李杰. 基于ORM的輕量級數據持久化技術研究及應用[J]. 計算機科學, 2010, 37(9): 190-193, 208.

    [5] O'Neil E. Object/Relational mapping 2008: Hibernate and the entity data model (EDM)[C]//2008 ACM SIGMOD International Conference on Management of Data, Vancouver, BC, Canada. 2008.

    [6] 程文波, 盧涵宇. 一種新的數據持久層設計方法與實現(xiàn)[J]. 微電子學與計算機, 2011(7): 28-30.

    [7] Gotz S, Kuhn T. Models@run.time for object-relational mapping supporting schema evolution[C]//10th International Workshop on Models@run.time, MRT 2015 - co-located with the 18th International Conference on Model Driven Engineering Languages and Systems, MoDELS 2015, September 29, 2015, Ottawa, ON, Canada. CEUR-WS, 2015.

    [8] Kurtev I. Application of reflection in a model transformation language[J]. Software & Systems Modeling, 2009, 9(3): 311-333.

    [9] Cvetkovi S, Jankovi D. A Comparative Study of the Features and Performance of ORM Tools in a .NET Environment[C]// Dearle A, Zicari R V. Objects and Databases: Third International Conference, ICOODB 2010, Frankfurt/Main, Germany, September 28-30, 2010. Proceedings. Berlin, Heidelberg: Springer Berlin Heidelberg, 2010:147-158.

    [10] Gruca A, Podsiadlo P. Performance Analysis of .NET Based Object-Relational Mapping Frameworks[C]//Beyond Databases, Architectures and Structures - 10th International Conference, BDAS 2014, Proceedings. Springer Verlag, 2014.

    [11] Yousaf H. Performance Evaluation of Java Based Object Relational[J]. Mehran University Research Journal of Engineering & Technology, 2013, 32(2): 160-166.

    [12] Chen T H, Shang W. Detecting performance anti-patterns for applications developed using object-relational mapping[C]//Proceedings of the 36th International Conference on Software Engineering, Hyderabad, India. ACM, 2014.

    [13] 黃強, 張曉梅. 一個基于類型元數據的輕量級ORM框架設計[J]. 計算機工程, 2007(22): 54-56,59.

    [14] 何成萬, 張立軍. 基于元數據和反射的面向方面軟件演化方法[J]. 電子學報, 2011(8): 1771-1777.

    [15] Prakash S, Saini J. Features of Annotations and their Applications[J]. International Journal of Computer Applications, 2011, 16(8): 14-21.

    猜你喜歡
    代碼生成
    基于GPT輔助的Web前端代碼快速生成工具的設計
    α-β濾波基于SCADE Suite的開發(fā)
    Lustre語言可信代碼生成器研究進展
    電腦知識與技術(2020年4期)2020-04-14 04:54:29
    代碼生成技術在數據序列化方面的應用
    基于SSH框架的JavaEE項目代碼生成工具的研究與實現(xiàn)
    代碼生成技術在軟件開發(fā)中的應用
    電子世界(2016年15期)2016-08-29 02:14:28
    基于CCSv4環(huán)境下的單相VSR仿控一體化研究
    基于XML的代碼自動生成工具
    電子科技(2015年2期)2015-12-20 01:09:20
    基于三層架構的映射方法研究
    精品欧美国产一区二区三| 成人一区二区视频在线观看| 欧美zozozo另类| 美女高潮喷水抽搐中文字幕| 色噜噜av男人的天堂激情| 在线观看免费视频日本深夜| 国产激情偷乱视频一区二区| 亚洲第一欧美日韩一区二区三区| 最近在线观看免费完整版| 欧美xxxx黑人xx丫x性爽| 超碰av人人做人人爽久久| 国产高清视频在线观看网站| 国产精品av视频在线免费观看| 亚洲精品在线观看二区| 三级国产精品欧美在线观看| 成年女人看的毛片在线观看| 波多野结衣巨乳人妻| 亚洲av成人精品一区久久| 午夜久久久久精精品| 一卡2卡三卡四卡精品乱码亚洲| 又爽又黄无遮挡网站| 亚洲人与动物交配视频| 国产成人aa在线观看| 好男人在线观看高清免费视频| 日韩高清综合在线| 国产精品女同一区二区软件 | 日韩精品青青久久久久久| 我的老师免费观看完整版| 国产老妇女一区| 亚洲色图av天堂| 99国产精品一区二区三区| av专区在线播放| 九色国产91popny在线| 乱码一卡2卡4卡精品| 国产av一区在线观看免费| 欧美高清性xxxxhd video| 亚洲av电影不卡..在线观看| 美女高潮的动态| 欧美黄色淫秽网站| 性欧美人与动物交配| 亚洲欧美激情综合另类| 国产美女午夜福利| 嫩草影院入口| 欧美性猛交黑人性爽| 亚洲性夜色夜夜综合| 乱人视频在线观看| 久久久久久国产a免费观看| 久久久久久久久久黄片| 日韩中字成人| 亚洲乱码一区二区免费版| 精品人妻视频免费看| 伦理电影大哥的女人| 亚洲最大成人中文| 亚洲欧美日韩东京热| 在线十欧美十亚洲十日本专区| 久久久久久久久久成人| 91九色精品人成在线观看| 国产熟女xx| 成人高潮视频无遮挡免费网站| 婷婷亚洲欧美| 成人国产综合亚洲| 欧美不卡视频在线免费观看| 亚洲精品一卡2卡三卡4卡5卡| 亚洲人成网站在线播放欧美日韩| 日本成人三级电影网站| 三级男女做爰猛烈吃奶摸视频| 国语自产精品视频在线第100页| 久久久久久久久久成人| 精品福利观看| 国产精品久久久久久久电影| 小说图片视频综合网站| 亚洲 欧美 日韩 在线 免费| 亚洲精品一卡2卡三卡4卡5卡| 永久网站在线| 永久网站在线| 老熟妇仑乱视频hdxx| 亚洲专区中文字幕在线| 成人毛片a级毛片在线播放| 12—13女人毛片做爰片一| 两个人的视频大全免费| 久久热精品热| 亚洲av成人不卡在线观看播放网| 色哟哟哟哟哟哟| 国产精品久久久久久久电影| 精品人妻1区二区| 国产精品一及| 女生性感内裤真人,穿戴方法视频| 久久中文看片网| 国产高清视频在线播放一区| 99久久99久久久精品蜜桃| 成人鲁丝片一二三区免费| 色播亚洲综合网| 高清日韩中文字幕在线| 亚洲一区二区三区色噜噜| 99热精品在线国产| 国产人妻一区二区三区在| 综合色av麻豆| 成人国产一区最新在线观看| 亚洲成av人片在线播放无| 国产精品久久久久久久久免 | 18禁黄网站禁片免费观看直播| 天天一区二区日本电影三级| 成年女人毛片免费观看观看9| 日韩av在线大香蕉| 99热只有精品国产| 成人毛片a级毛片在线播放| 91九色精品人成在线观看| 精品午夜福利在线看| 国产精品亚洲美女久久久| 欧美绝顶高潮抽搐喷水| 亚洲,欧美,日韩| 亚洲国产精品合色在线| 欧美不卡视频在线免费观看| av天堂中文字幕网| 精品一区二区三区人妻视频| 免费在线观看影片大全网站| ponron亚洲| 国产乱人视频| 亚洲国产高清在线一区二区三| 看十八女毛片水多多多| 伦理电影大哥的女人| 国产午夜福利久久久久久| 我的老师免费观看完整版| 午夜福利18| 亚洲精品日韩av片在线观看| 婷婷色综合大香蕉| 色吧在线观看| 国产精品日韩av在线免费观看| 亚洲av日韩精品久久久久久密| 亚洲av一区综合| 亚洲aⅴ乱码一区二区在线播放| 午夜福利在线观看吧| 久久九九热精品免费| 国产精品嫩草影院av在线观看 | 久久这里只有精品中国| 宅男免费午夜| 99热只有精品国产| 久久久久久久久久黄片| 美女xxoo啪啪120秒动态图 | 伦理电影大哥的女人| 欧美一区二区精品小视频在线| 日本五十路高清| 97人妻精品一区二区三区麻豆| 欧美在线黄色| 日韩欧美三级三区| 黄色视频,在线免费观看| 免费大片18禁| 禁无遮挡网站| 一进一出抽搐动态| 男人狂女人下面高潮的视频| 日本三级黄在线观看| 淫妇啪啪啪对白视频| 欧美潮喷喷水| 一本综合久久免费| 欧美区成人在线视频| 亚洲一区二区三区色噜噜| 99国产极品粉嫩在线观看| 婷婷色综合大香蕉| 一级毛片久久久久久久久女| 丝袜美腿在线中文| 一本一本综合久久| 麻豆国产av国片精品| 麻豆av噜噜一区二区三区| 欧美中文日本在线观看视频| 久久草成人影院| 精品久久久久久久久久久久久| 精品国内亚洲2022精品成人| 窝窝影院91人妻| 欧美日韩瑟瑟在线播放| 精品国产亚洲在线| 神马国产精品三级电影在线观看| 国产精品一区二区三区四区免费观看 | 最好的美女福利视频网| 变态另类成人亚洲欧美熟女| 国产亚洲精品综合一区在线观看| www.熟女人妻精品国产| 99久久精品国产亚洲精品| 免费人成视频x8x8入口观看| 一进一出好大好爽视频| 国产男靠女视频免费网站| 九九在线视频观看精品| 精品一区二区三区视频在线观看免费| 成人特级黄色片久久久久久久| 亚洲乱码一区二区免费版| 香蕉av资源在线| 18禁在线播放成人免费| 少妇裸体淫交视频免费看高清| 夜夜爽天天搞| 成人av在线播放网站| 欧美日韩亚洲国产一区二区在线观看| 亚洲人成网站高清观看| 欧美潮喷喷水| 久久久久国产精品人妻aⅴ院| 欧美日韩瑟瑟在线播放| 亚洲成人久久性| 色噜噜av男人的天堂激情| 九色成人免费人妻av| 欧美性猛交╳xxx乱大交人| 少妇人妻精品综合一区二区 | aaaaa片日本免费| 黄色丝袜av网址大全| 看免费av毛片| 少妇高潮的动态图| 麻豆久久精品国产亚洲av| 搡女人真爽免费视频火全软件 | 亚洲自拍偷在线| 婷婷色综合大香蕉| 美女高潮喷水抽搐中文字幕| 免费看美女性在线毛片视频| 嫩草影院新地址| 精品国产亚洲在线| 婷婷精品国产亚洲av在线| 久久中文看片网| 一个人免费在线观看电影| 好男人在线观看高清免费视频| 午夜福利成人在线免费观看| 美女被艹到高潮喷水动态| 在线国产一区二区在线| 麻豆成人av在线观看| 亚洲av成人不卡在线观看播放网| 亚洲激情在线av| 亚洲狠狠婷婷综合久久图片| 在现免费观看毛片| 婷婷丁香在线五月| 色5月婷婷丁香| 亚洲一区二区三区色噜噜| 一a级毛片在线观看| 淫秽高清视频在线观看| 桃红色精品国产亚洲av| 精品日产1卡2卡| 国产av麻豆久久久久久久| 女同久久另类99精品国产91| 国产精品久久久久久亚洲av鲁大| 国产蜜桃级精品一区二区三区| 亚洲性夜色夜夜综合| 亚洲人成电影免费在线| 男女那种视频在线观看| 亚洲av五月六月丁香网| 日本与韩国留学比较| 99在线人妻在线中文字幕| 日本一二三区视频观看| 男人狂女人下面高潮的视频| 脱女人内裤的视频| 久久久久久九九精品二区国产| 久久久久久国产a免费观看| 在线免费观看不下载黄p国产 | 久久久久精品国产欧美久久久| 国产毛片a区久久久久| 无遮挡黄片免费观看| 久久人人爽人人爽人人片va | 麻豆av噜噜一区二区三区| 麻豆一二三区av精品| 麻豆成人av在线观看| 欧美在线黄色| 一个人免费在线观看电影| 国产麻豆成人av免费视频| 最近最新中文字幕大全电影3| 少妇高潮的动态图| 亚洲美女黄片视频| 国产一区二区亚洲精品在线观看| a在线观看视频网站| 中文字幕免费在线视频6| 亚洲无线观看免费| 日本免费一区二区三区高清不卡| 亚州av有码| 老鸭窝网址在线观看| 国产v大片淫在线免费观看| 国产熟女xx| 久久欧美精品欧美久久欧美| 欧美精品国产亚洲| 国产精华一区二区三区| 国产精品伦人一区二区| 在线播放无遮挡| 国产一级毛片七仙女欲春2| 国产高清激情床上av| 亚洲国产精品成人综合色| 久久草成人影院| 亚洲午夜理论影院| 中文字幕av成人在线电影| 亚洲国产欧洲综合997久久,| 在线观看午夜福利视频| www.熟女人妻精品国产| 三级男女做爰猛烈吃奶摸视频| 久久这里只有精品中国| 啪啪无遮挡十八禁网站| 亚洲av电影不卡..在线观看| 99久久九九国产精品国产免费| 一a级毛片在线观看| 色播亚洲综合网| 国产v大片淫在线免费观看| 搞女人的毛片| 亚洲精品在线观看二区| 亚洲狠狠婷婷综合久久图片| 成年免费大片在线观看| 熟妇人妻久久中文字幕3abv| 久久国产乱子伦精品免费另类| 嫩草影院新地址| 校园春色视频在线观看| 看十八女毛片水多多多| 男女做爰动态图高潮gif福利片| 嫩草影院入口| 精品久久久久久久久久久久久| 99视频精品全部免费 在线| 黄片小视频在线播放| 在现免费观看毛片| 波多野结衣巨乳人妻| 欧美日本亚洲视频在线播放| 日日干狠狠操夜夜爽| 欧美另类亚洲清纯唯美| 精品福利观看| 欧美黄色片欧美黄色片| 亚洲第一区二区三区不卡| 亚州av有码| 别揉我奶头~嗯~啊~动态视频| 国产av麻豆久久久久久久| 精品人妻偷拍中文字幕| 国产一区二区三区在线臀色熟女| 国产中年淑女户外野战色| 中文字幕av在线有码专区| 亚洲 国产 在线| 一级毛片久久久久久久久女| 久久草成人影院| 国产乱人伦免费视频| 国产欧美日韩一区二区三| 欧美乱妇无乱码| 免费一级毛片在线播放高清视频| 亚洲 国产 在线| 欧美一区二区亚洲| 国产成人啪精品午夜网站| 波野结衣二区三区在线| 久久中文看片网| 能在线免费观看的黄片| 日日摸夜夜添夜夜添av毛片 | 大型黄色视频在线免费观看| 国产精品自产拍在线观看55亚洲| 国产亚洲欧美98| 国产黄片美女视频| 亚洲av.av天堂| 久9热在线精品视频| 99久久99久久久精品蜜桃| 五月伊人婷婷丁香| 亚洲五月天丁香| 久久久久久久亚洲中文字幕 | 成年人黄色毛片网站| 九色国产91popny在线| 91午夜精品亚洲一区二区三区 | 亚洲黑人精品在线| 中文在线观看免费www的网站| 成人特级黄色片久久久久久久| 欧美精品国产亚洲| 非洲黑人性xxxx精品又粗又长| 亚洲va日本ⅴa欧美va伊人久久| 国产精品久久久久久精品电影| 亚洲精品久久国产高清桃花| 成人美女网站在线观看视频| 神马国产精品三级电影在线观看| 我要搜黄色片| 久久久久精品国产欧美久久久| 国产极品精品免费视频能看的| 露出奶头的视频| 中文字幕免费在线视频6| 日本黄色视频三级网站网址| 琪琪午夜伦伦电影理论片6080| 亚洲精品456在线播放app | 夜夜看夜夜爽夜夜摸| 九色成人免费人妻av| 国产成人av教育| 国内精品一区二区在线观看| 国产欧美日韩一区二区三| 久久久色成人| 韩国av一区二区三区四区| 少妇丰满av| 精品欧美国产一区二区三| 91在线观看av| 热99在线观看视频| 真人一进一出gif抽搐免费| 日日摸夜夜添夜夜添av毛片 | 久久精品国产亚洲av香蕉五月| 国产精品嫩草影院av在线观看 | 18禁黄网站禁片午夜丰满| 亚洲,欧美,日韩| 欧美黑人欧美精品刺激| 久久99热6这里只有精品| 免费av不卡在线播放| www.999成人在线观看| 欧美xxxx性猛交bbbb| 又黄又爽又免费观看的视频| 国产私拍福利视频在线观看| 亚洲人与动物交配视频| 内射极品少妇av片p| 欧美午夜高清在线| 国产人妻一区二区三区在| 欧美激情久久久久久爽电影| 国产高清视频在线观看网站| 国内精品久久久久久久电影| 免费无遮挡裸体视频| 国产成人福利小说| 精品日产1卡2卡| 国产极品精品免费视频能看的| 中文字幕熟女人妻在线| 欧洲精品卡2卡3卡4卡5卡区| 国产爱豆传媒在线观看| 欧美成人性av电影在线观看| 精品久久久久久久久久免费视频| 国产三级中文精品| 亚洲五月天丁香| 天堂av国产一区二区熟女人妻| 亚洲片人在线观看| 一个人免费在线观看电影| 老司机午夜福利在线观看视频| 国产老妇女一区| 九九热线精品视视频播放| 蜜桃久久精品国产亚洲av| 日韩国内少妇激情av| 婷婷色综合大香蕉| 中国美女看黄片| 天堂网av新在线| 草草在线视频免费看| 亚洲第一欧美日韩一区二区三区| 国产免费一级a男人的天堂| 亚洲黑人精品在线| 国产午夜精品论理片| 国产av不卡久久| 精品午夜福利视频在线观看一区| ponron亚洲| 18美女黄网站色大片免费观看| 欧美日本视频| 一级a爱片免费观看的视频| 国产精品自产拍在线观看55亚洲| 嫁个100分男人电影在线观看| 日本撒尿小便嘘嘘汇集6| 久久99热6这里只有精品| 日本在线视频免费播放| av黄色大香蕉| 国产在视频线在精品| 91在线观看av| 国产成人福利小说| av视频在线观看入口| 夜夜躁狠狠躁天天躁| 国产野战对白在线观看| 嫁个100分男人电影在线观看| 好看av亚洲va欧美ⅴa在| 男女床上黄色一级片免费看| 中出人妻视频一区二区| 99久久久亚洲精品蜜臀av| 亚洲黑人精品在线| 午夜视频国产福利| 日韩欧美一区二区三区在线观看| 老司机午夜十八禁免费视频| 成年女人看的毛片在线观看| 51午夜福利影视在线观看| 窝窝影院91人妻| 国产伦精品一区二区三区视频9| 午夜激情福利司机影院| 波野结衣二区三区在线| 久久久久久国产a免费观看| 亚洲不卡免费看| 欧美又色又爽又黄视频| 男人的好看免费观看在线视频| 亚洲一区二区三区不卡视频| 国产欧美日韩精品亚洲av| 亚洲久久久久久中文字幕| 亚洲精品亚洲一区二区| 欧美在线一区亚洲| 9191精品国产免费久久| 国产高清视频在线观看网站| 如何舔出高潮| 国内精品美女久久久久久| 两个人视频免费观看高清| 国产在线男女| 亚洲,欧美精品.| 婷婷丁香在线五月| 亚洲av成人不卡在线观看播放网| 亚洲成av人片免费观看| 婷婷亚洲欧美| 中文字幕熟女人妻在线| 直男gayav资源| 欧美日本亚洲视频在线播放| 成人性生交大片免费视频hd| 欧美最新免费一区二区三区 | 亚洲精品乱码久久久v下载方式| 在线观看一区二区三区| 99热这里只有是精品在线观看 | 丝袜美腿在线中文| 色5月婷婷丁香| 午夜福利免费观看在线| 真实男女啪啪啪动态图| 美女大奶头视频| 午夜激情福利司机影院| 一区二区三区激情视频| 91久久精品国产一区二区成人| 日韩欧美在线乱码| 天堂动漫精品| 国产精品永久免费网站| 国产av在哪里看| 别揉我奶头~嗯~啊~动态视频| 在线天堂最新版资源| 岛国在线免费视频观看| 亚洲午夜理论影院| 亚洲18禁久久av| 精品久久久久久久久久久久久| 亚洲成人中文字幕在线播放| x7x7x7水蜜桃| 国产高潮美女av| 久久性视频一级片| 亚洲经典国产精华液单 | netflix在线观看网站| 哪里可以看免费的av片| 国产大屁股一区二区在线视频| 国产精品影院久久| 精品人妻熟女av久视频| 亚洲一区二区三区色噜噜| 18禁裸乳无遮挡免费网站照片| 国产精品国产高清国产av| 欧美日韩乱码在线| 国产av麻豆久久久久久久| 国产高清视频在线观看网站| 国产精品一区二区免费欧美| 精品国产三级普通话版| 国产精品伦人一区二区| 欧美又色又爽又黄视频| 精品熟女少妇八av免费久了| 亚洲中文字幕日韩| 亚洲五月天丁香| 亚洲va日本ⅴa欧美va伊人久久| 淫秽高清视频在线观看| 免费人成在线观看视频色| 波多野结衣高清作品| 久久人妻av系列| 国产蜜桃级精品一区二区三区| 亚洲avbb在线观看| 精品久久久久久,| 国产亚洲欧美98| 亚洲 国产 在线| 99在线视频只有这里精品首页| 中文亚洲av片在线观看爽| 一边摸一边抽搐一进一小说| 一个人看的www免费观看视频| 免费人成视频x8x8入口观看| 99国产精品一区二区三区| 免费大片18禁| 在线播放无遮挡| 成年女人永久免费观看视频| 国产在线精品亚洲第一网站| 久久99热这里只有精品18| 久久草成人影院| 无遮挡黄片免费观看| 麻豆av噜噜一区二区三区| 99国产极品粉嫩在线观看| 日本撒尿小便嘘嘘汇集6| 男人舔奶头视频| 久99久视频精品免费| 99久久久亚洲精品蜜臀av| 给我免费播放毛片高清在线观看| 日本成人三级电影网站| 97热精品久久久久久| .国产精品久久| 97热精品久久久久久| 看十八女毛片水多多多| 亚洲黑人精品在线| 又黄又爽又免费观看的视频| 狠狠狠狠99中文字幕| 日本熟妇午夜| 日韩av在线大香蕉| 亚洲av二区三区四区| 一边摸一边抽搐一进一小说| av天堂中文字幕网| 久久久久国内视频| 午夜两性在线视频| 免费观看的影片在线观看| 国产午夜福利久久久久久| 精品欧美国产一区二区三| 色哟哟哟哟哟哟| 国产真实乱freesex| 大型黄色视频在线免费观看| 中文字幕精品亚洲无线码一区| 久久欧美精品欧美久久欧美| 久久久久性生活片| 丁香欧美五月| 久久久国产成人精品二区| 色在线成人网| 亚洲精品456在线播放app | 国产蜜桃级精品一区二区三区| 老女人水多毛片| 国产精品三级大全| 一个人看视频在线观看www免费| 性插视频无遮挡在线免费观看| 中文亚洲av片在线观看爽| 青草久久国产| 老熟妇仑乱视频hdxx| 欧美xxxx性猛交bbbb| 亚洲精品在线观看二区| 国产69精品久久久久777片| 深夜a级毛片| 日本三级黄在线观看| 在线免费观看的www视频| 国产aⅴ精品一区二区三区波| 日本精品一区二区三区蜜桃| 中文字幕久久专区| 90打野战视频偷拍视频| 久久久久免费精品人妻一区二区| 69av精品久久久久久| 在线观看免费视频日本深夜| 国产精品嫩草影院av在线观看 | 人人妻人人看人人澡| 黄色视频,在线免费观看| 人妻制服诱惑在线中文字幕| 色精品久久人妻99蜜桃| 亚洲成人免费电影在线观看| 精品一区二区三区视频在线| 亚洲 国产 在线| 能在线免费观看的黄片| 国产高潮美女av| 两人在一起打扑克的视频| www日本黄色视频网|