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

面試官:請講一下MyBatis是如何關聯(lián)關系?

開發(fā) 前端
實際的開發(fā)中,對數(shù)據(jù)庫的操作常常會涉及到多張表,這在面向對象中就涉及到了對象與對象之間的關聯(lián)關系。針對多表之間的操作,MyBatis提供了關聯(lián)映射,通過關聯(lián)映射就可以很好的處理對象與對象之間的關聯(lián)關系。

[[433880]]

文末本文轉載自微信公眾號「程序員千羽」,作者程序員千羽。轉載本文請聯(lián)系程序員千羽公眾號。

“GitHub:https://github.com/nateshao/ssm/tree/master/115-mybatis-associated-one-many

1. 關聯(lián)關系概述

為什么學習MyBatis關聯(lián)關系?

“實際的開發(fā)中,對數(shù)據(jù)庫的操作常常會涉及到多張表,這在面向對象中就涉及到了對象與對象之間的關聯(lián)關系。針對多表之間的操作,MyBatis提供了關聯(lián)映射,通過關聯(lián)映射就可以很好的處理對象與對象之間的關聯(lián)關系。所以,,這里將對MyBatis的關聯(lián)關系映射進行詳細的講解。

在關系型數(shù)據(jù)庫中,多表之間存在著三種關聯(lián)關系,分別為一對一、一對多和多對多,如下圖所示:

一對一:在任意一方引入對方主鍵作為外鍵;

一對多:在“多”的一方,添加“一”的一方的主鍵作為外鍵;

多對多:產(chǎn)生中間關系表,引入兩張表的主鍵作為外鍵,兩個主鍵成為聯(lián)合主鍵或使用新的字段作為主鍵。

在Java中,通過對象也可以進行關聯(lián)關系描述,如圖下圖所示:

2. 一對一

在現(xiàn)實生活中,一對一關聯(lián)關系是十分常見的。例如,一個人只能有一個身份證,同時一個身份證也只會對應一個人。

那么使用MyBatis是怎么處理圖中的這種一對一關聯(lián)關系的呢?

在前面所講解的< resultMap >元素中,包含了一個< association >子元素,MyBatis就是通過該元素來處理一對一關聯(lián)關系的。

在< association >元素中,通??梢耘渲靡韵聦傩?

property:指定映射到的實體類對象屬性,與表字段一 一對應

column:指定表中對應的字段

javaType:指定映射到實體對象屬性的類型

select:指定引入嵌套查詢的子SQL語句,該屬性用于關聯(lián)映射中的嵌套查詢

fetchType:指定在關聯(lián)查詢時是否啟用延遲加載。該屬性有l(wèi)azy和eager兩個屬性值,默認值為lazy(即默認關聯(lián)映射延遲加載)

MyBatis加載關聯(lián)關系對象主要通過兩種方式:嵌套查詢和嵌套結果。

第一種: 嵌套查詢是通過執(zhí)行另外一條SQL映射語句來返回預期的復雜類型。

  • 嵌套查詢是在查詢SQL中嵌入一個子查詢SQL;
  • 嵌套查詢會執(zhí)行多條SQL語句;
  • 嵌套查詢SQL語句編寫較為簡單;

第二種: 嵌套結果是使用嵌套結果映射來處理重復的聯(lián)合結果的子集。

  • 嵌套結果是一個嵌套的多表查詢SQL;
  • 嵌套結果只會執(zhí)行一條復雜的SQL語句;
  • 嵌套結果SQL語句編寫比較復雜;

“雖然使用嵌套查詢的方式比較簡單,但是嵌套查詢的方式要執(zhí)行多條SQL語句,這對于大型數(shù)據(jù)集合和列表展示不是很好,因為這樣可能會導致成百上千條關聯(lián)的SQL語句被執(zhí)行,從而極大的消耗數(shù)據(jù)庫性能并且會降低查詢效率。

多學一招:MyBatis延遲加載的配置

使用MyBatis的延遲加載在一定程度上可以降低運行消耗并提高查詢效率。MyBatis默認沒有開啟延遲加載,需要在核心配置文件中的< settings >元素內(nèi)進行配置,具體配置方式如下:

  1. <settings> 
  2.           <setting name="lazyLoadingEnabled" value="true" />   
  3.           <setting name="aggressiveLazyLoading" value="false"/>   
  4.   </settings> 

在映射文件中,< association > 元素和< collection > 元素中都已默認配置了延遲加載屬性,即默認屬性fetchType="lazy"(屬性fetchType="eager"表示立即加載),所以在配置文件中開啟延遲加載后,無需在映射文件中再做配置。

使用< association >元素進行一對一關聯(lián)映射非常簡單,只需要參考如下兩種示例配置即可。

代碼實現(xiàn):

  1. 第一種: 
  2. <!-- 嵌套查詢:通過執(zhí)行另外一條SQL映射語句來返回預期的特殊類型 --> 
  3.     <select id="findPersonById" parameterType="Integer" 
  4.             resultMap="IdCardWithPersonResult"
  5.   SELECT * from tb_person where id=#{id} 
  6.  </select
  7.     <resultMap type="Person" id="IdCardWithPersonResult"
  8.         <id property="id" column="id"/> 
  9.         <result property="name" column="name"/> 
  10.         <result property="age" column="age"/> 
  11.         <result property="sex" column="sex"/> 
  12.         <!-- 一對一:association使用select屬性引入另外一條SQL語句 --> 
  13.         <association property="card" column="card_id" javaType="IdCard" 
  14.                      select="com.nateshao.mapper.IdCardMapper.findCodeById"/> 
  15.     </resultMap> 
  16. 第二種: 
  17.     <!-- 嵌套結果:使用嵌套結果映射來處理重復的聯(lián)合結果的子集 --> 
  18.     <select id="findPersonById2" parameterType="Integer" 
  19.             resultMap="IdCardWithPersonResult2"
  20.      SELECT p.*,idcard.code 
  21.      from tb_person p,tb_idcard idcard 
  22.      where p.card_id=idcard.id  
  23.      and p.id= #{id} 
  24.  </select
  25.     <resultMap type="Person" id="IdCardWithPersonResult2"
  26.         <id property="id" column="id"/> 
  27.         <result property="name" column="name"/> 
  28.         <result property="age" column="age"/> 
  29.         <result property="sex" column="sex"/> 
  30.         <association property="card" javaType="IdCard"
  31.             <id property="id" column="card_id"/> 
  32.             <result property="code" column="code"/> 
  33.         </association> 
  34.     </resultMap> 

Person.java

  1. @Data 
  2. public class Person { 
  3.     private Integer id; 
  4.     private String name
  5.     private Integer age; 
  6.     private String sex; 
  7.     private IdCard card;  //個人關聯(lián)的證件 

IdCard.java

  1. @Data 
  2. public class IdCard { 
  3.     private Integer id; 
  4.     private String code; 

3. 一對多

開發(fā)人員接觸更多的關聯(lián)關系是一對多(或多對一)。例如,一個用戶可以有多個訂單,同時多個訂單歸一個用戶所有。

那么使用MyBatis是怎么處理這種一對多關聯(lián)關系的呢?

在前面所講解的< resultMap >元素中,包含了一個< collection >子元素,MyBatis就是通過該元素來處理一對多關聯(lián)關系的。

< collection >子元素的屬性大部分與< association>元素相同,但其還包含一個特殊屬性--ofType 。

ofType:ofType屬性與javaType屬性對應,它用于指定實體對象中集合類屬性所包含的元素類型。

代碼實現(xiàn):

  1. /** 
  2.  * 一對多 
  3.  */ 
  4. @Test 
  5. public void findUserTest() { 
  6.     // 1、通過工具類生成SqlSession對象 
  7.     SqlSession session = MybatisUtils.getSession(); 
  8.     // 2、查詢id為1的用戶信息 
  9.     User user = session.selectOne("com.nateshao.mapper." 
  10.             + "UserMapper.findUserWithOrders", 1); 
  11.     // 3、輸出查詢結果信息 
  12.     System.out.println(user); 
  13.     // 4、關閉SqlSession 
  14.     session.close(); 

UserMapper.xml

  1. <!-- 一對多:查看某一用戶及其關聯(lián)的訂單信息  
  2.       注意:當關聯(lián)查詢出的列名相同,則需要使用別名區(qū)分 --> 
  3. <select id="findUserWithOrders" parameterType="Integer"  
  4.                   resultMap="UserWithOrdersResult"
  5.    SELECT u.*,o.id as orders_id,o.number  
  6.    from tb_user u,tb_orders o  
  7.    WHERE u.id=o.user_id  
  8.         and u.id=#{id} 
  9. </select
  10. <resultMap type="User" id="UserWithOrdersResult"
  11.    <id property="id" column="id"/> 
  12.    <result property="username" column="username"/> 
  13.    <result property="address" column="address"/> 
  14.    <!-- 一對多關聯(lián)映射:collection  
  15.       ofType表示屬性集合中元素的類型,List<Orders>屬性即Orders類 --> 
  16.    <collection property="ordersList" ofType="Orders"
  17.       <id property="id" column="orders_id"/> 
  18.       <result property="number" column="number"/> 
  19.    </collection> 
  20. </resultMap> 

User.java

  1. @Data 
  2. public class User { 
  3.     private Integer id;                 // 用戶編號 
  4.     private String username;           // 用戶姓名 
  5.     private String address;            // 用戶地址 
  6.     private List<Orders> ordersList; //用戶關聯(lián)的訂單 

Orders.java

  1. @Data 
  2. public class Orders { 
  3.     private Integer id;    //訂單id 
  4.     private String number;//訂單編號 
  5.     //關聯(lián)商品集合信息 
  6.     private List<Product> productList; 
  7.  

運行結果:

  1. User(id=1, username=詹姆斯, address=克利夫蘭, ordersList=[Orders(id=1, number=1000011, productList=null), Orders(id=2, number=1000012, productList=null)]) 

4. 多對多

在實際項目開發(fā)中,多對多的關聯(lián)關系也是非常常見的。以訂單和商品為例,一個訂單可以包含多種商品,而一種商品又可以屬于多個訂單。

在數(shù)據(jù)庫中,多對多的關聯(lián)關系通常使用一個中間表來維護,中間表中的訂單id作為外鍵參照訂單表的id,商品id作為外鍵參照商品表的id。

在MyBatis中,多對多的關聯(lián)關系查詢,同樣可以使用前面介紹的< collection >元素進行處理(其用法和一對多關聯(lián)關系查詢語句用法基本相同)。

MybatisAssociatedTest.java

  1. /** 
  2.  * 多對多 
  3.  */ 
  4. @Test 
  5. public void findOrdersTest() { 
  6.     // 1、通過工具類生成SqlSession對象 
  7.     SqlSession session = MybatisUtils.getSession(); 
  8.     // 2、查詢id為1的訂單中的商品信息 
  9.     Orders orders = session.selectOne("com.nateshao.mapper." 
  10.             + "OrdersMapper.findOrdersWithPorduct", 1); 
  11.     // 3、輸出查詢結果信息 
  12.     System.out.println(orders); 
  13.     // 4、關閉SqlSession 
  14.     session.close(); 

OrdersMapper.xml

  1. <!-- 多對多嵌套結果查詢:查詢某訂單及其關聯(lián)的商品詳情 --> 
  2. <select id="findOrdersWithPorduct2" parameterType="Integer" 
  3.            resultMap="OrdersWithPorductResult2"
  4.     select o.*,p.id as pid,p.name,p.price from tb_orders o,tb_product p,tb_ordersitem  oi WHERE oi.orders_id=o.id and oi.product_id=p.id and o.id=#{id} 
  5. </select
  6.    <!-- 自定義手動映射類型 --> 
  7.    <resultMap type="Orders" id="OrdersWithPorductResult2"
  8.        <id property="id" column="id"/> 
  9.        <result property="number" column="number"/> 
  10.        <!-- 多對多關聯(lián)映射:collection --> 
  11.        <collection property="productList" ofType="Product"
  12.            <id property="id" column="pid"/> 
  13.            <result property="name" column="name"/> 
  14.            <result property="price" column="price"/> 
  15.        </collection> 
  16.    </resultMap> 

Orders.java

  1. @Data 
  2. public class Orders { 
  3.     private Integer id;    //訂單id 
  4.     private String number;//訂單編號 
  5.     //關聯(lián)商品集合信息 
  6.     private List<Product> productList; 

Product.java

  1. @Data 
  2. public class Product { 
  3.     private Integer id;  //商品id 
  4.     private String name; //商品名稱 
  5.     private Double price;//商品單價 
  6.     private List<Orders> orders; //與訂單的關聯(lián)屬性 

總結:

這篇文章首先對開發(fā)中涉及到的數(shù)據(jù)表之間以及對象之間的關聯(lián)關系作了簡要介紹,并由此引出了MyBatis框架中對關聯(lián)關系的處理;

然后通過案例對MyBatis框架處理實體對象之間的三種關聯(lián)關系進行了詳細講解。 

通過本章的學習,我們可以了解數(shù)據(jù)表以及對象中所涉及到的三種關聯(lián)關系,并能夠使用MyBatis框架對三種關聯(lián)關系的查詢進行處理。MyBatis中的關聯(lián)查詢操作在實際開發(fā)中非常普遍,熟練掌握這三種關聯(lián)查詢方式有助于提高項目的開發(fā)效率。

 

責任編輯:武曉燕 來源: 程序員千羽
相關推薦

2023-09-12 14:56:13

MyBatis緩存機制

2025-03-10 07:05:07

2023-03-08 07:46:53

面試官優(yōu)化結構體

2021-07-28 10:08:19

類加載代碼塊面試

2022-06-06 15:33:20

線程Java釋放鎖

2023-02-08 08:32:41

輪詢鎖

2023-02-18 13:34:14

Nacos健康檢查機制

2022-06-07 12:03:33

Java內(nèi)存模型

2021-08-28 09:06:11

Dubbo架構服務

2023-12-29 13:45:00

2024-01-29 10:08:11

零拷貝Zero-copyCPU 拷貝

2024-02-27 15:23:48

RedLock算法Redis

2021-06-02 11:25:18

線程池Java代碼

2024-02-21 16:42:00

2020-07-30 07:58:36

加密算法

2023-01-30 15:39:40

GETHTTP

2025-02-27 00:08:24

2023-02-09 08:48:47

Java虛擬機

2021-11-27 08:13:13

Final 面試

2021-08-13 07:23:15

架構秒殺系統(tǒng)
點贊
收藏

51CTO技術棧公眾號

日韩成人视屏| yellow91字幕网在线| 国产一区二区精品| 亚洲欧美一区二区三区在线| 欧美成人黄色网址| 91香蕉在线观看| 99久久精品国产导航| 日韩av免费在线| 亚洲精品久久久久久国| 国产精品美女在线观看直播| 欧洲视频一区二区| 黄色录像特级片| 水莓100在线视频| 久久国产精品免费| 欧美亚洲国产成人精品| 亚洲人与黑人屁股眼交| 欧美黑人做爰爽爽爽| 欧美午夜电影网| 欧美网站免费观看| av免费在线网站| 国产婷婷精品av在线| 国产成人免费观看| 中文字幕免费观看| 亚洲激情网址| 麻豆国产精品va在线观看不卡| 青青草成人免费视频| 麻豆精品久久| 欧美日韩精品一区视频| 黄色a级片免费| 欧美精品videossex少妇| 中文字幕在线观看不卡| 麻豆久久久av免费| 国产成人自拍一区| 国产伦精品一区二区三区视频青涩 | 久久91亚洲人成电影网站 | 亚洲你懂的在线视频| 六十路精品视频| 手机av免费在线观看| 国产一区二区调教| 国产精品入口福利| 精品国产一区二区三区四| 亚洲国产影院| 欧美激情视频播放| 黄色一级视频在线观看| 亚洲精品国产成人影院| 视频在线观看99| 国产午夜精品福利视频| 免费看日本一区二区| 亚洲精品xxx| 香港三日本8a三级少妇三级99| 日本一区二区三区电影免费观看 | 欧美最猛性xxxx| 日韩高清精品免费观看| 国产一区清纯| 欧美精品18videos性欧美| 男人与禽猛交狂配| 欧美激情综合| 久久久久久久91| 国产 日韩 欧美 成人| 国产综合精品| 久久久免费在线观看| 精品无码久久久久| 1024成人| 91av在线影院| 久久精品视频5| 日本伊人精品一区二区三区观看方式| 国产高清视频一区三区| 真实新婚偷拍xxxxx| 久久精品国产免费| 91久久久亚洲精品| 丰满大乳国产精品| 99久久久国产精品| 欧洲久久久久久| 中国日本在线视频中文字幕| 亚洲欧洲国产日韩| av一区二区三区免费观看| 欧美1—12sexvideos| 五月天一区二区| 亚洲人成无码www久久久| 成人国产一区| 日韩欧美资源站| 色天使在线视频| 欧美成人激情| 欧美精品videos性欧美| 欧美精品韩国精品| 久久99精品久久久久| 成人免费在线一区二区三区| 日韩av免费观影| 亚洲欧美自拍偷拍色图| 久久精品xxx| 三上悠亚激情av一区二区三区| 欧美性猛交xxxxxxxx| 青娱乐精品在线| 亚州综合一区| 久久精品国产亚洲精品| 国产精品第9页| 久草热8精品视频在线观看| 国产高清精品一区二区三区| 精品亚洲成a人片在线观看| 综合网在线视频| 中国丰满人妻videoshd| 欧美天堂一区| 精品一区二区亚洲| 91视频青青草| 久久裸体视频| 99在线看视频| 尤物视频在线免费观看| 香蕉影视欧美成人| 免费在线观看污网站| 欧美精品中文| 久久成人这里只有精品| 免费观看日批视频| 成人国产精品免费观看动漫| 一本色道久久99精品综合| 国产高清自产拍av在线| 91精品国产色综合久久ai换脸| ass精品国模裸体欣赏pics| 欧美在线日韩| 国产日韩欧美成人| 国产一级二级三级在线观看| 亚洲国产成人av网| www.51色.com| 久久日文中文字幕乱码| 日韩av男人的天堂| 五月婷婷综合久久| 亚洲一区在线视频| 成人免费黄色av| 久久麻豆精品| 国产精品女人网站| 欧美孕妇性xxxⅹ精品hd| 亚洲图片一区二区| 久久久精品人妻一区二区三区| 日韩啪啪电影网| 国产精品va在线播放| 天堂成人在线| 欧美三级欧美成人高清www| 日本精品一二三| 天天综合网网欲色| 成人黄色片网站| 天堂地址在线www| 欧美亚洲动漫精品| 超碰人人干人人| 日韩中文字幕一区二区三区| 欧美极品一区| 成人性教育av免费网址| 精品视频中文字幕| 日本韩国欧美中文字幕| 91在线视频网址| 亚洲色图第三页| 美女爆乳18禁www久久久久久| 黄色精品免费| 91精品免费| 日韩av激情| 日韩欧美国产麻豆| 九九热精品在线观看| 国产盗摄精品一区二区三区在线 | 日韩成人a**站| 国产精品大陆在线观看| av在线免费播放网站| 在线看国产一区| 欧美老女人性生活视频| 蜜臀av性久久久久蜜臀aⅴ四虎| 日韩欧美亚洲在线| 成人国产一区| 操91在线视频| 欧美少妇bbw| 激情亚洲一区二区三区四区| av网站免费在线播放| 久久国产毛片| 中文字幕日韩一区二区三区| 久久九九精品视频| 国内揄拍国内精品| 奇米影视888狠狠狠777不卡| 91国产精品成人| 亚洲黄色网址大全| 国产高清亚洲一区| 精品中文字幕av| 国产精品一区2区3区| 国产精品久久中文| 91在线中字| 日韩电影中文字幕在线| 亚洲视频 欧美视频| 国产精品国产精品国产专区不片| 网站在线你懂的| 日韩亚洲精品在线| 日韩精品成人一区二区在线观看| 小说区图片区亚洲| 国产69精品久久久久9| 欧美日本韩国一区二区| 欧美高清性hdvideosex| 国产一级做a爰片在线看免费| 久久午夜色播影院免费高清| 鲁一鲁一鲁一鲁一av| 欧美福利影院| 欧美日韩一区二区视频在线| 99精品在线免费观看| 91成人性视频| 麻豆传媒在线免费| 亚洲精品国产精品乱码不99按摩 | 日韩欧美国产综合一区| 日日摸天天添天天添破| 中文字幕综合网| 黄色性生活一级片| 韩国视频一区二区| 亚洲熟妇av一区二区三区| 66国产精品| 欧美一级片免费观看| 超碰成人97| 国产精品男人的天堂| 超碰在线99| www.日韩.com| 成人网视频在线观看| 亚洲国产成人av在线| 一级片视频免费| 日本韩国欧美一区| 日韩精品一区二区不卡| 亚洲天堂a在线| 老熟妇一区二区| caoporm超碰国产精品| 最好看的中文字幕| 九九视频精品免费| 日本成人黄色网| aⅴ色国产欧美| 日韩a级黄色片| 欧美国产美女| 亚洲精品tv久久久久久久久| 婷婷成人综合| 精品日韩电影| 国产精品久久久网站| www.成人三级视频| 精品国产亚洲日本| 成人性生交大片免费看视频直播 | 久久av资源网| 色悠悠久久综合网| 日韩精品1区2区3区| 女性隐私黄www网站视频| 亚洲三级国产| 男人的天堂狠狠干| 激情婷婷亚洲| 日韩五码在线观看| 亚洲福利精品| 国产h视频在线播放| 亚洲午夜黄色| cao在线观看| 在线观看视频免费一区二区三区| 国产一二三区在线播放| 亚洲天堂激情| 日本xxxxxxxxxx75| 99亚洲一区二区| av天堂永久资源网| 久久综合网络一区二区| 日韩毛片在线免费看| 日韩精品一区第一页| 99热手机在线| 精品综合免费视频观看| 男女视频在线观看网站| 国产高清亚洲一区| 国产真实乱人偷精品| 久久综合狠狠综合久久激情| 欧美成人午夜精品免费| 久久久精品欧美丰满| 91精品久久久久久久久久久久| 国产精品欧美一区喷水| 51精品免费网站| 亚洲一区二区三区四区在线观看| 日韩久久久久久久久| 日韩欧美极品在线观看| 一级久久久久久| 欧美日韩国产另类一区| 国产wwwwwww| 日韩av一区在线观看| 极品白浆推特女神在线观看| 日韩中文字幕网址| 丁香花在线观看完整版电影| 欧美在线一级视频| 欧美成人三级| 国产精品久久一区二区三区| 国产中文精品久高清在线不| 三年中国中文在线观看免费播放| 很黄很黄激情成人| 日本熟妇人妻中出| 国产高清不卡二三区| 中文字幕在线免费看线人| 欧美经典一区二区三区| 国产第一页第二页| 精品视频在线免费| 丰满人妻一区二区三区四区53 | 少妇真人直播免费视频| 国产精品久久久久久久久久久免费看| 青青操国产视频| 色av综合在线| 亚洲黄色片视频| 在线看国产精品| 1234区中文字幕在线观看| 国产精品稀缺呦系列在线| 成人高潮a毛片免费观看网站| 美乳视频一区二区| 女人香蕉久久**毛片精品| 日韩欧美xxxx| 成人妖精视频yjsp地址| 性少妇xx生活| 欧美日韩国产中文精品字幕自在自线 | 91豆麻精品91久久久久久| 国产精品国产精品国产专区| 精品久久久久久久久久久院品网| 国产女主播在线直播| 午夜精品一区二区三区在线视频 | 中文在线8资源库| 91亚色免费| 日韩久久精品| 日韩中文字幕二区| 成人国产亚洲欧美成人综合网| 婷婷丁香综合网| 色婷婷国产精品| 免费看黄色一级视频| 麻豆国产va免费精品高清在线| 少妇精品视频一区二区免费看| 国产一区二区免费在线观看| 我不卡影院28| 亚洲视频一二三四| 国产亚洲精品中文字幕| 黄网在线观看视频| 精品国产不卡一区二区三区| 国内精品久久久久久野外| 国产成人精品免费久久久久 | 日韩久久精品电影| 成人在线高清免费| 99久久综合狠狠综合久久止| 97在线精品| 亚洲精品手机在线观看| 国产欧美日韩精品a在线观看| 日产精品久久久| 亚洲精品白浆高清久久久久久| 国产后进白嫩翘臀在线观看视频| 亚洲最大福利网| 欧美日韩亚洲一区二区三区在线| 91免费视频污| 亚洲视频一区在线| 一级片aaaa| 久久国产精品首页| 玖玖玖视频精品| a天堂资源在线观看| 国产凹凸在线观看一区二区| 久久国产露脸精品国产| 精品国产亚洲在线| av中文字幕在线观看第一页| 国产欧美一区二区三区不卡高清| 欧美日韩亚洲一区| 精品一区二区三区四区五区六区| 亚洲一二三四在线| 天天干天天插天天操| 97在线观看免费高清| 日韩电影在线观看完整免费观看| 黄色免费视频大全| 久久久久久99精品| 午夜一级黄色片| 这里只有精品丝袜| 一区二区三区| 999久久欧美人妻一区二区| 成人自拍视频在线观看| 日韩三级av在线| 亚洲欧美在线一区| 亚洲电影有码| 黄色网址在线免费看| 国产成人免费视频精品含羞草妖精 | 日韩资源在线| 国产成人午夜视频网址| 国产国产精品| 日本国产在线视频| 色婷婷久久久亚洲一区二区三区| 97在线观看免费观看高清| 亚洲xxxxx电影| 伊人久久大香线蕉综合热线| 香蕉视频黄色在线观看| 欧美日韩久久久久久| 免费污视频在线观看| 蜜桃在线一区二区三区精品| 欧美aⅴ一区二区三区视频| a级黄色片免费看| 亚洲精品国产精品国自产在线 | 国产91免费视频| 媚黑女一区二区| 欧美日韩午夜视频| 精品亚洲一区二区三区在线观看| 国产精品99精品一区二区三区∴| 四虎4hu永久免费入口| 91麻豆免费观看| 91国产精品视频在线观看| 国产日韩欧美一区二区三区| 潘金莲激情呻吟欲求不满视频| 亚洲免费观看高清完整版在线| 日日躁夜夜躁白天躁晚上躁91| 国产精品va在线播放| 欧美午夜不卡| 美国黑人一级大黄| 亚洲аv电影天堂网| 国产私拍福利精品视频二区| 国产精品一线二线三线| 国产精品久久久久久福利一牛影视| 亚洲va久久久噜噜噜无码久久|