精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Hibernate中cascade與inverse屬性詳解

開發 后端
本篇文章主要講解關于Hibernate中cascade與inverse的理解。希望對大家有所幫助。

關于Hibernate中 cascade 與 inverse 的理解。

您買的Hibernate書是哪一本呢? 孫衛琴的精通Hibernate,還是 深入淺出Hibernate還是那本。。。

我是兩本都買了,總體來說還可以,但是,有的地方講的比較書面化,比如inverse這屬性。

在學習Hibernate的過程中最不好理解的就是這兩個屬性了。

(我當初學習Hibernate的時候,發現網上介紹這兩個屬性的文章倒是不少,但是,居然有好多都是轉帖。。。還有的就是 照書搬~~-_-!!!)。。。

據個例子:書上說inverse=false時,由主控方維持關系。。。

由于我也是初學者。。。再加上語文水平偏低。。。不理解“維持關系是啥意思”囧~

提示:

(1)如果:您不了解Hibernate的one-to-many或many-to-one的概念。

(2)如果:你不了解Hibernate的“自由態”“持久態”“游離態”的概念。

(3)如果:您不了解Hibernate中的“臟數據”的概念。

(4)如果:您對Hibernate中Session緩存,沒有初步了解的話。

(在Hibernate中調用save進行存儲數據的時候,并不是馬上就對數據庫進行insert操作,而是會將其“數據對象(vo)”納入Hibernate的Session緩存。)

在上面的4條提示中,如果您對其中的某一條,不是很清楚的話。希望請先了解有關知識。

否則,可能您將 “無法或很難”理解 cascade 或 inverse 這2個屬性。

首相,cascade 與 inverse 這兩個屬性,其實是完全不同的兩個東西,想要了解他們各自的“用途與區別”,詳見如下介紹:

這里有兩個表:

(1)class (班級表)

相應字段:

cid varchar(32) 主鍵 not-null (班級id)

cname varchar(16) not-null (班級名稱)

(2)student (學生表)

相應字段:

sid varchar(32) 主鍵 not-null (學生id)

sname varchar(16) not-null (學生姓名)

class_id varchar(32) not-null (學生所屬班級)

一個班級(class)對應多個學生(student),所以班級表(class)就是“one-to-many”端

反之student就是many-to-one

 

  1. //--------Class類的代碼--------  
  2.  
  3. public class Class implements.....  
  4.  
  5. {  
  6.  
  7. private cId = "";  
  8.  
  9. private cName = "";  
  10.  
  11. private students = java.util.HashMap();  
  12.  
  13. // 省略對應的 geter setter  
  14.  
  15. }  
  16.  
  17. //--------Class.hbm.xml--------  
  18.  
  19.  
  20.  
  21. <class name="lcx.vo.Class" table="class" 
  22.  
  23.    catalog="demo">  
  24.  
  25.    "cid" type="java.lang.String">  
  26.  
  27.     "cid" length="32" />  
  28.  
  29.     class="uuid.hex" />  
  30.  
  31.      
  32.  
  33.    "name" type="java.lang.String">  
  34.  
  35.     "cname" length="16" not-null="true" />  
  36.  
  37.      
  38.  
  39.     
  40.  
  41.    "students" table="student" cascade="save-update">  
  42.  
  43.     "class" />  
  44.  
  45.     class="lcx.vo.Student" />  
  46.  
  47.       
  48.  
  49. class>  
  50.  
  51.  
  52.  
  53. //--------Student類的代碼;*******  
  54.  
  55. public class Student implements.....  
  56.  
  57. {  
  58.  
  59. private sId = "";  
  60.  
  61. private sName = "";  
  62.  
  63. private Class class = null;  
  64.  
  65. // 省略對應的 geter setter  
  66.  
  67. }  
  68.  
  69. // Student.hbm.xml  
  70.  
  71.  
  72.  
  73. <class name="lcx.vo.Student" table="student" catalog="demo">  
  74.  
  75.    "cid" type="java.lang.String">  
  76.  
  77.     "sid" length="32" />  
  78.  
  79.     class="uuid.hex" />  
  80.  
  81.      
  82.  
  83.    "class"   
  84.  
  85.     class="lcx.vo.Class" 
  86.  
  87.     column="class_id"   
  88.  
  89.     not-null="true"   
  90.  
  91.    />     
  92.  
  93. class>  
  94.  
  95.  
  96.  

 

 

(一) cascade 的介紹:

當Hibernate持久化一個“臨時對象(也叫自由態對象)”時,在默認的情況下(即:沒有設置cascade屬性或cascade=none時),Hibernate不會自動“持久化他所關聯”的其他臨時對象。

上面這些話是什么意思呢? 什么叫不會自動 “持久化”關聯的臨時對象呢?

看如下代碼:

 

  1. // 創建一個 臨時對象(也叫自由態對象)   
  2.  
  3. // 也就是說這個 class 沒有被Hibernate納入Session緩存管理。  
  4.  
  5. Class class = new Class();  
  6.  
  7. //class.id 為自動生成  
  8.  
  9. class.setName("一年級1班");  
  10.  
  11. Student stu = new Student();  
  12.  
  13. //student.id 為自動生成  
  14.  
  15. stu.setName("小白兔");  
  16.  
  17. stu.setClass(class);  
  18.  
  19. // 關鍵就是這里。。。  
  20.  
  21. class.getStudents().add(stu);  
  22.  
  23. session.save(class);  
  24.  
  25. // 提交  
  26.  
  27. // 注意: Class.hbm.xml文件中,cascade="save-update"并且也沒有設置inverse屬性,也就是說inverse=false;  
  28.  
  29. // 此時如果你開啟了Hibernate的顯示HQL語句功能,那么控制臺將會顯示如下3條HQL:  
  30.  
  31. //----------------------------------------********  
  32.  
  33. insert into demo.class (cid, cname) values (66666666666666666666666666666666, 一年級1班)  
  34.  
  35. insert into demo.student (sid,sname,class_id) values (8888888888888888811cb2e04c888888, 小白兔, 66666666666666666666666666666666)  
  36.  
  37. update demo.student set class_id=66666666666666666666666666666666 where sid=8888888888888888811cb2e04c888888  
  38.  
  39. //----------------------------------------********  
  40.  

 

那么為什么會出現,這3條HQL語句呢,我們來一一分析一下:

第1條HQL語句:

其實第一條HQL比較好理解,

當我們調用 session.save(class) 后,在Hibernate進行提交的時候,

會發現“有”一條“新”的數據要插入(insert),所以就往class表中,插入了這條新的class記錄。

第2條HQL語句:

注意問題就在這里:

這里為什么又出現了一條insert語句呢?而且還是向student表中插入數據。

我們在上面的代碼中,并沒有編寫類似“session.save(student)”這樣的語句啊。

這是為什么呢?

其實原因,是這么回事:因為我們在class端,設置了"級聯更新"(即:cascade="save-update"),

也就是說,當Hibernate在向class表中插入“新”對象記錄時,會檢查“Class對象”所關聯的屬性(就是對應的屬性),是否發生過變化,如果發生了變化,就按照“級聯屬性(cascade)”所設定的內容

進行操作。

上面講的這句話到底是什么意思呢?

用你們“人”話說,就是:

因為調用了 class.getStudents().add(stu);

所以,在Hibernate在進行插入 class對象的時候,發現class對象,所關聯的集合中,有一條

“自由態”的對象,而又因為class端設置了“級聯屬性cascade”,所以,在插入這條 “新class對象”時,也一同把他內部的那些,還屬于“自由態”的其他對象,也一同插入到,他們所對應的表中去了。

還是不明白的話。。。可以看看。孫衛琴的《精通Hibernate》,在書上的第149頁有。

但是關于inverse的介紹。。。寫的就有些書面化了,如果語文不好的話。。。就難懂咯~

第3條HQL語句:

第三條HQL語句是一條update語句,是不是覺得,很莫名其妙。。。。

Hibernate大腦進水了吧,怎么吃飽了撐得,重復更新記錄啊啊啊啊啊

假如:我們把 class端的配置文檔中的 invser屬性設置為true(即:inverse=true)

在執行上面的程序,發現,就變成2條insert語句啦。。。。。(update沒啦。。。)

看來第三條的update語句和inverse有著密切的關系(他兩有一腿~)。

所以我們下邊,就來介紹一下inverse屬性:

當調用 Class.getStudents().add(stu)方法,進行添加操作時,

(即:向 "這個Class對象"所屬的“集合 (也就是調用getStudents方法所返回的那個Set集合)”中添加一個Student(即 add(stu)),也就是說,這個“新”添加的Student對象(stu),

他的Student.class_id字段“必須”,要等于“被添加方Class”的主鍵(即:Class.cid)。

從“數據庫”層面來講,也就是說,這個“新”添加的“Student”的class_id字段,必須要與“Class”的cid字段,存在"主外鍵關聯"。)

正因為如此:所以Hibernate“怕” 在進行 "Class.getStudents().add(stu)" 這樣的操作時,

出現意外情況(如: stu.getClass=null,即:stu沒有所屬班級),

即“添加方”(Student)與“被添加方”(Class),存在“外鍵”不一致的情況發生。

所以就出現了 那條多余的update語句。即:one-to-many(Class端)主動去維護Child.Class_id

所以就是說,Hibernate怕出錯,就給你多執行一次無用的更新語句,以保證 add 到 Class“集合”中的所有Student

都是要與Class有外鍵關聯的。

用普通話說就是:

一年1班.getStudents().add(小白兔);

一年1班.getStudents().add(大白兔);

也就是說現在不管是 小白兔 還是 大白兔

如果他們,目前還沒有自己的班級的話,

一年1班的班主任就會主動邀請他們成為一年1班的同學啦~。

也就是說 一年1班的班主任 主動邀請 同學,而不是 同學自己來~~~ 所以效率也降低了。。。。

所以我們一般把 一對多端 invser設置為true,即:不讓主控端去維護主鍵關聯,

(即:讓同學自己去找班級)

說白了,就是,one-to-many端不用去管理 “新添加對象” 的主外鍵約束問題。

把one-to-many端(即:class端)的invser設置為true

(即:每次向class.getStudents這個集合中添加 student時,不去主動update對應的外鍵),

而是在student端去手動設置

例如:

 

  1. student.setClass(class);  
  2.  
  3. session.save(student);  
  4.  
  5. 這樣手動設置 student與class關聯啦。。。。  
  6.  
  7. 所以上面的程序“最好”還是寫成這樣:  
  8.  
  9. Class class = new Class();  
  10.  
  11. class.setName("一年級1班");  
  12.  
  13. session.save(class);  
  14.  
  15. Student stu = new Student();  
  16.  
  17. stu.setName("小白兔");  
  18.  
  19. stu.setClass(class);  
  20.  
  21. session.save(class);  
  22.  
  23. /*  
  24.  

 

此時向class集合add內容,不會進行數據庫操作(update)。

“更新”的只是session緩存中,數據鏡像。

這樣做的好處是:不僅減少了update語句,

而且,同時也更新了session緩存。

------------------------

而在原來:

one-to-many端inverse=false時,雖然也更新seesion緩存中的class集合,

但是有卻又多余update

 

  1. */  
  2.  
  3. class.getStudents().add(stu);  
  4.  
  5. // 提交  

 

總結:

當inverse=false 并且向one-to-many端的關聯集合,添加“新對象(即: 自由態對象)” 時,

Hibernate就會自動,去update那“個剛剛到來的” “自由態對象”的外鍵。

(如果你向,one-to-many端添的集合中,add一個“已經持久化了的對象”,那就不會出現update了(因為已經持久化過了),除非,你去 更改“那個持久化對象”所對應的外鍵。。。那樣的話。。。呵呵呵~~~

你可以試一試,應該不會報錯,你可以當做練習去做一下,加深cascade和inverse這兩個屬性的理解)

// 如果看懂了上面的內容。來看一下,下面的東西。

假如,將one-to-many端(即:Class端)的 hbm.xml 文檔中的cascade移除掉 或把cascade="none"。

那么上面的代碼會出現什么情況呢。

結果會出現2條HQL,和一堆Exception

 

  1. insert into demo.class (cid, cname) values (66666666666666666666666666666666, 一年級1班)  
  2.  
  3. update demo.student set class_id=66666666666666666666666666666666 where sid=8888888888888888811cb2e04c888888  
  4.  
  5. Hibernate Exceptinon......................................   
  6.  

 

相比較cascade被設置"save-update"的時候,缺少了1條 insert語句,而且也多了一些Exception。

那么,到底是少了哪1條insert語句呢?

就是這條:

 

  1. insert into demo.student (sid,sname,class_id) values (8888888888888888811cb2e04c888888, 小白兔, 66666666666666666666666666666666)  
  2.  

之所以會出現,這樣的現象,想必您已經早就看出來了。

因為,我沒有設置Class端的Cascade,所以在save(class)的時候,并沒有自動將其所關聯的“自由態對象”進行持久化操作。

然而,又因為 Class端的inverse=false,所以,Class會自動去維持,那個 “新來的student” 的外鍵。

所以會出現,沒有insert就要update啦。。。。

然后在就是Exception了

【編輯推薦】

  1. Hibernate批量更新與刪除實例淺析
  2. 簡述Hibernate Synchronizer學習筆記
  3. Hibernate column屬性簡介
  4. 概括Hibernate查詢語言
  5. Hibernate cartridge學習總結
責任編輯:金賀 來源: ITEYE博客
相關推薦

2012-02-03 10:21:47

HibernateJava

2009-09-22 09:40:03

cascade和invHibernate

2009-06-12 14:52:21

cascadeinverseHibernate

2009-09-23 08:56:18

Hibernate cHibernate i

2009-06-18 10:29:24

Hibernate I

2009-06-12 15:05:03

cascadeHibernate

2009-07-09 16:01:27

2009-09-24 13:03:38

Hibernate C

2009-06-29 08:59:05

hbm的generat

2009-09-23 12:48:54

Hibernate I

2009-09-24 17:24:20

Hibernate S

2009-09-21 17:33:50

Hibernate基礎

2009-09-23 13:33:51

Hibernate屬性

2009-09-29 17:00:08

Hibernate c

2009-09-24 15:53:00

Hibernate J

2009-09-27 13:57:19

Hibernate樹形

2009-09-28 09:56:53

Hibernate屬性

2009-07-02 09:34:05

hibernate的l

2009-09-25 13:39:40

Hibernate屬性

2010-09-07 16:46:59

CSSexpression
點贊
收藏

51CTO技術棧公眾號

国产黄色一区二区三区| 国产乱人伦精品一区二区| 国产真实乱人偷精品人妻| 国产经典一区| 亚洲精品国久久99热| 国产精品夜夜夜一区二区三区尤| 日本一区二区免费电影| 99精品在线观看| 亚洲国产精品久久91精品| 在线视频日韩一区 | 亚洲日韩中文字幕在线播放| 国产精品一区二区小说| 激情aⅴ欧美一区二区欲海潮| 国产人久久人人人人爽| 国产精品10p综合二区| 欧美一区免费看| 欧美日本亚洲韩国国产| 亚洲天堂av电影| 性农村xxxxx小树林| 国产成人亚洲一区二区三区| 午夜伦理一区二区| 四虎4hu永久免费入口| 噜噜噜在线观看播放视频| 国产精品一色哟哟哟| 国产精品电影观看| 日韩精品一区二区三| 亚洲国产精品日韩专区av有中文| 亚洲老头老太hd| www.555国产精品免费| 成人日韩视频| 欧美日韩一区不卡| 日本成人中文字幕在线| av中文资源在线资源免费观看| 久久精品免费在线观看| 精品视频在线观看| 亚洲爱情岛论坛永久| 久久丁香综合五月国产三级网站| 欧美伊久线香蕉线新在线| 国产午夜激情视频| 亚洲小说区图片区| 色综合男人天堂| 欧美xxxooo| 久久中文字幕av| 在线中文字幕日韩| 老头老太做爰xxx视频| 伊人成综合网伊人222| 亚洲国内高清视频| 污片免费在线观看| 久久亚州av| 亚洲福利视频专区| 欲求不满的岳中文字幕| 久久久久影视| 亚洲美女动态图120秒| 成人h动漫精品一区| 天美av一区二区三区久久| 亚洲风情亚aⅴ在线发布| 国产精品一区二区无码对白| 亚洲一区二区三区四区电影 | 日韩欧美中文| 中文字幕亚洲情99在线| 免费黄色在线网址| 国产精品久久久乱弄| 久久精品国产亚洲精品| 性欧美videos| 亚洲视频一区| 69久久夜色精品国产69| 亚洲婷婷综合网| 日韩极品在线观看| 国产精品中文在线| jizz中国少妇| 99视频国产精品| 免费精品视频一区| 高清国产福利在线观看| 国产精品久久毛片a| 在线码字幕一区| 日本一本在线免费福利| 香蕉久久一区二区不卡无毒影院| 北条麻妃在线视频观看| 国产69精品久久久久9999人| 制服丝袜亚洲色图| 亚洲天堂美女视频| 成人三级视频| 欧美第一黄色网| 日产精品久久久| 精品一区二区三区视频| 动漫一区二区在线| 精品亚洲综合| 一区二区三区在线视频观看| 91专区在线观看| 狂野欧美性猛交xxxx| 日韩欧美精品三级| 新91视频在线观看| 午夜精品网站| 国产999精品久久久影片官网| 亚洲熟妇无码久久精品| 成人精品国产一区二区4080| 欧美日韩在线精品| 超碰免费在线播放| 色哟哟在线观看一区二区三区| 91极品尤物在线播放国产| 伊人久久影院| 日韩中文娱乐网| 亚洲天堂一区在线观看| 国产一区欧美二区| 日本高清视频一区二区三区 | 亚洲成人激情综合网| 亚洲免费av一区二区三区| 欧美日本三级| 一区二区三区回区在观看免费视频| 欧美久久久久久久久久久久| 免费在线视频一区| 精品一区在线播放| 色呦呦在线播放| 欧美日韩不卡视频| 精品成人av一区二区三区| 国产精品啊v在线| 国产日本欧美一区| 你懂的视频在线| 亚洲国产裸拍裸体视频在线观看乱了 | 麻豆精品蜜桃视频网站| 国产中文一区二区| 色综合999| 欧美肥胖老妇做爰| 欧美午夜激情影院| 免费永久网站黄欧美| 国产精品乱码视频| 四虎影院观看视频在线观看| 精品视频一区三区九区| 色哟哟精品观看| 中文高清一区| 国产精品一 二 三| 国产高清在线a视频大全| 欧美精品免费视频| 日日碰狠狠添天天爽| 日日噜噜夜夜狠狠视频欧美人 | 全色精品综合影院| 午夜伦欧美伦电影理论片| 国产女主播在线播放| 中文字幕一区二区av| 国产中文欧美精品| 午夜在线视频| 欧美日韩国产不卡| 99成人在线观看| 老司机免费视频一区二区| 日韩少妇中文字幕| 欧美影视资讯| 中文字幕一区日韩电影| 中文字幕欧美色图| 中文字幕中文字幕在线一区| 成人性生交免费看| 99精品视频在线观看播放| 国产日韩视频在线观看| 久草免费在线观看| 88在线观看91蜜桃国自产| www深夜成人a√在线| 精品一区二区三区蜜桃| 自拍另类欧美| 日韩视频1区| 97视频国产在线| 日韩av视屏| 欧美在线高清视频| 欧美性x x x| 国产91综合一区在线观看| 免费看毛片的网址| 一区二区导航| 国产一区欧美二区三区| bt在线麻豆视频| 亚洲第一天堂av| 精品不卡一区二区| 国产精品久久综合| 国产日韩视频一区| 首页国产欧美久久| 自拍视频一区二区三区| 911精品国产| 日韩美女视频免费在线观看| 成年在线观看免费人视频| 制服丝袜av成人在线看| 一区二区三区免费高清视频| 91免费版在线看| 性生生活大片免费看视频| 午夜激情一区| 欧美h视频在线| 香蕉久久一区| 欧美一级片免费在线| 欧洲日本在线| 亚洲国产成人在线播放| 久久人人爽人人爽人人片av免费| 自拍偷拍亚洲综合| 欧美无人区码suv| 精品一区二区免费在线观看| 日韩精品视频在线观看视频| 成人羞羞在线观看网站| 国产在线一区二区三区四区| 国产一区二区色噜噜| 欧美激情综合亚洲一二区| h视频网站在线观看| 欧美www视频| 一级黄色免费片| 激情成人中文字幕| www.av视频| 国产欧美日韩精品在线| 成年人看片网站| 蜜臀91精品一区二区三区| 人妻少妇精品无码专区二区| 欧美国产小视频| 欧美一级二级三级九九九| 午夜久久av| 国产在线观看精品一区二区三区| 国内激情视频在线观看| 欧美成人免费大片| 3d成人动漫在线| 亚洲欧美另类中文字幕| 亚洲av无码片一区二区三区| 欧美性生活一区| 久久精品国产成人av| 一区二区三区精品视频在线| 三级黄色片在线观看| 久久久久久影视| 波多野结衣有码| 丰满少妇久久久久久久| 亚洲精品永久视频| 美女免费视频一区二区| 国产一区二区视频免费在线观看| 一区福利视频| 国产毛片久久久久久国产毛片| 91麻豆精品国产91久久久平台| 日本不卡免费新一二三区| 任你弄精品视频免费观看| 国产精品99久久久久久久| 无码国模国产在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 日韩精品首页| 日韩欧美在线一区二区| 久久不见久久见国语| 久久综合中文色婷婷| 另类图片第一页| 狠狠色伊人亚洲综合网站色| 东京久久高清| 粉嫩av一区二区三区免费观看| 欧美视频二区欧美影视| 亚洲综合在线小说| 亚洲精品一区二区三区中文字幕 | 亚洲欧洲精品成人久久奇米网| 国产亚洲精品熟女国产成人| 久久精品欧美一区二区三区麻豆 | 亚洲精品国产成人久久av盗摄 | 精品久久久久久久久久久久久久| 国产精品变态另类虐交| 午夜精品一区二区三区电影天堂| 国产一级特黄视频| 精品久久中文字幕| 国内精品福利视频| 色女孩综合影院| 美女黄页在线观看| 欧美日韩久久久久久| 国产又粗又猛又黄又爽| 日韩欧美国产系列| 天堂在线视频网站| 亚洲欧美制服丝袜| www.久久热.com| 日韩中文字幕在线看| av网站导航在线观看免费| 欧美黄色小视频| 欧美调教sm| 国产精品三级美女白浆呻吟 | 久久国产精品高清| 国产日产精品一区二区三区四区的观看方式| 日本中文不卡| 中文av一区| 黄色一级视频在线播放| 日韩精品欧美精品| 欧美色图校园春色| 91视频一区二区三区| 免费看裸体网站| 亚洲综合激情另类小说区| 久草国产精品视频| 欧美日韩中字一区| 亚洲乱码精品久久久久.. | 国产精品露出视频| 成人高清电影网站| 免费网站在线观看视频| 久热综合在线亚洲精品| 成人性生交视频免费观看| 成人动漫中文字幕| 国产精品理论在线| 亚洲影院久久精品| 乱子伦一区二区三区| 日韩三级中文字幕| 精品电影在线| 欧美疯狂性受xxxxx另类| 天天综合网天天| 福利精品视频| 9999国产精品| 鲁一鲁一鲁一鲁一澡| 精品无人区卡一卡二卡三乱码免费卡 | 国产精品人人人人| 日韩一区二区视频| 春暖花开成人亚洲区| 久久久影视精品| 免费成人毛片| 欧美日韩大片一区二区三区| 欧美fxxxxxx另类| 日本激情视频在线播放| 9人人澡人人爽人人精品| 国产人与禽zoz0性伦| 精品动漫一区二区| a在线观看免费| 深夜福利亚洲导航| 二区三区不卡| 国产日韩欧美亚洲一区| 天天射成人网| 色婷婷狠狠18| www成人在线观看| 国产一级视频在线播放| 欧美一区二区在线观看| 第一页在线观看| 日韩**中文字幕毛片| 精品久久ai| 无码人妻少妇伦在线电影| 国产高清在线精品| 91精品国产闺蜜国产在线闺蜜| 一本到不卡免费一区二区| 天天躁日日躁狠狠躁喷水| 欧美老肥婆性猛交视频| 成人影院网站ww555久久精品| 婷婷亚洲婷婷综合色香五月| 亚洲欧美高清| 亚洲欧美色图视频| 午夜av区久久| 人成网站在线观看| 97视频在线观看成人| 日韩中文字幕一区二区高清99| 制服丝袜综合日韩欧美| 欧美aaaaaa午夜精品| 免费看裸体网站| 欧美日韩一级黄| 日本最新在线视频| 国产在线观看精品| 一区二区三区在线观看免费| 日本美女久久久| 国产麻豆精品在线| 久久6免费高清热精品| 五月天激情视频在线观看| 国模吧精品人体gogo| 日本va欧美va欧美va精品| 亚洲欧美在线免费观看| 欧洲伦理片一区 二区 三区| 欧美精品videosex极品1| 日韩精品一区二区三区中文 | 精品视频二区| 国产精品吹潮在线观看| 欧美日韩中文一区二区| 久久久久久久久久久久91| 国产精品理论在线观看| 91国内精品视频| 久久综合九色九九 | 欧美一二三区| 美女国产一区二区| 视频国产一区二区| 日韩欧美亚洲另类制服综合在线| 欧美hdxxxxx| 久久久久久久久久久一区| 日韩一区精品视频| 午夜国产福利视频| 日韩美女天天操| 久草在线资源站手机版| 日韩欧美亚洲在线| 国产在线一区观看| 91香蕉在线视频| 亚洲最新av在线网站| 日本在线视频一区二区三区| 极品粉嫩国产18尤物| 91美女片黄在线观看91美女| 中文字幕一二三四| 欧美二区在线播放| 国内精品伊人久久久| 伊人国产精品视频| 午夜精品福利在线| 在线免费观看黄色| 国产精成人品localhost| 久久久夜夜夜| 免费人成在线观看| 亚洲日本aⅴ片在线观看香蕉| 国内精品视频| 99久久久无码国产精品6| 日韩毛片在线免费观看| 香蕉av一区二区三区| 成人黄色av网| 性欧美videos另类喷潮| 国产麻豆视频在线观看| 亚洲人成啪啪网站| 免费观看性欧美大片无片| 日本va中文字幕| 亚洲一区在线看| 日本高清在线观看wwwww色| 国产精品永久入口久久久| 麻豆freexxxx性91精品| 啦啦啦免费高清视频在线观看| 久久精品国产96久久久香蕉| 亚洲人成网77777色在线播放 |