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

教你使用Hibernate的QBC查詢

開發 后端
本篇文章教你使用Hibernate的QBC查詢。QBC查詢就是通過使用Hibernate提供的Query By Criteria API來查詢對象,這種API封裝了SQL語句的動態拼裝,對查詢提供了更加面向對象的功能接口。

QBC查詢就是通過使用Hibernate提供的Query By Criteria API來查詢對象,這種API封裝了SQL語句的動態拼裝,對查詢提供了更加面向對象的功能接口。我們看下面的示例程序:

  1. Criteria criteria=session.createCriteria(User.class);   
  2. criteria.add(Expression.eq(“name”,”zx”));   
  3. criteria.add(Expression.eq(“age”,new Integer(27));   
  4. List list=criteria.list();  

當執行criteria.list()時會生成類似這樣的SQL語句:

  1. Select * from user where name=’zx’   
  2. and   
  3. age=27; 

所以在這里我們可以看出,Criteria實際上是一個查詢容器,它對查詢條件表達式的添加進行了封裝,具體的查詢條件是通過add()方法添加的,而且具體的查詢條件的表達式運算是通過Expression指定的。Hibernate在運行期會根據Criteria指定的表達式條件來添加查詢條件,并且生成查詢語句。這種方式非常符合Java以及所有面向對象編程語言的編程方式,所以大多數的持久層框架都提供了對這種方式查詢的支持。下面我們講解這種查詢方式的各個技術細節。

1、Criteria查詢表達式:

正如我們所見,Expression對查詢語句的表達式進行了封裝和限制,下表列出了Expression所有的方法,以及每個方法所對應的查詢表達式及其限制。

方法描述
Expression.eq對應SQL的“field=value”表達式
如:Expression.eq(“name”,”zx”);
Expression.allEq方法的參數為一個Map類型對象,包含多個名/值對對應關系,相當于多個Expression.eq的疊加
Expression.gt對應SQL的“field>value”表達式
Expression.ge對應SQL的“field>=value”表達式
Expression.lt對應SQL的“field”表達式
Expression.le對應SQL的“field< =value”表達式
Expression.between對應SQL語句的between表達式,如:查詢年齡在21與27歲之間的用戶,可以寫成Expression.between(“age”,new
Integer(21),new Integer(27));
Expression.like對應SQL語句的”field like value”表達式
Expression.in對應SQL語句的“field in(……)”表達式
Expression.eqProperty用于比較兩個屬性值,對應”field=field”SQL表達式
Expression.gtProperty用于比較兩個屬性值,對應”field>field”SQL表達式
Expression.geProperty用于比較兩個屬性值,對應”field>=field”SQL表達式
Expression.ltProperty用于比較兩個屬性值,對應”field表達式
Expression.leProperty用于比較兩個屬性值,對應”field< =field”SQL表達式
Expression.and對應SQL語句的And關系組合,如:Expression.and(Expression.eq(“name”,”zx”),Expression.eq(“sex”,”1”));
Expression.or對應SQL語句的Or關系組合,如:Expression.or(Expression.eq(“name”,”zx”),Expression.eq(“name”,”zhaoxin”));
Expression.sql作為補充這個方法提供了原生SQL語句查詢的支持,在執行時直接通過原生SQL語句進行限定,如:Expression.sql(“lower({alias}.name)
like (?)”,“zhao%”,Hibernate.STRING) ;在運行時{ alias
}將會由當前查詢所關聯的實體類名替換,()中的?將會由”zhao%”替換,并且類型由Hibernate.STRING指定。

注意:Expression各方法中的屬性參數(各方法中的***個參數)所指定的屬性名稱(如:name,sex),并不是數據庫表中的實際字段名稱,而是實體對象中映射實際數據表字段的類屬性名稱。
 
2、示例查詢:

示例查詢是通過Example類來完成的,Example類實現了Criterion接口,可以用作Criteria查詢條件,Example類的作用是:根據已有對象,查詢屬性值與之相同的其他對象。如下代碼所示:

  1. Criteria criteria=session.createCriteria(User.class);   
  2. User exampleuser=new User(“zx”);   
  3. criteria.add(Example.create(exampleuser));   
  4. List list=criteria.list();   
  5. for(int i=0;i   
  6. User user=(User)list.get(i);   
  7. System.out.println(user.getName()+”\n”);   
  8. }  

上述代碼中User exampleuser=new User(“zx”);criteria.add(Example.create(exampleuser));兩句相當于criteria.add(Expression.eq(“name”,”zx”));因此會生成類似如下的SQL語句:

  1. select * from user where name=’zx’; 

在上面的代碼中exampleuser稱為示例對象。
 
在Hibernate中隊示例查詢,默認情況下會排除掉示例對象中屬性值為空的屬性,還可以調用Example.excludeNone(排除空串值)/excludeZeros(排除零值),或者調用Example.excludeProperty方法來指定排除特定屬性。

示例查詢主要應用于組合查詢中,比如根據用戶輸入的查詢條件動態生成最終的查詢語句,通過使用示例查詢,可以避免由于查詢條件過多而寫的大量if判斷語句。

3、復合查詢:

復合查詢主要是處理,具有關聯關系的兩個實體怎樣進行關聯查詢,比如User實體對象與Addres實體對象具有一對多的關聯關系,我們可以如下構造符合查詢:

  1. Criteria criteria=session.createCriteria(User.class);   
  2. Criteria addcriteria=criteria.createCriteria(“addresses”);(1)   
  3. addcriteria.add(Express.like(“address”,”%tianjin%”));   
  4.   List list=criteria.list();   
  5. for(int i=0;i   
  6.   User user=(User)list.get(i);   
  7.   System.out.println(user.getName()+”\n”);   
  8.   Set addresses=user.getAddresses();   
  9.   Iterator it=addresses.iterator();   
  10.   while(it.hasNext(){   
  11. Address address=(Address)it.next();   
  12. System.out.println(address.getAddress()+”\n”);   
  13.   }   
  14. }  

當執行到了(1)處時,表明要針對User對象的addresses屬性添加新的查詢條件,因此當執行criteria.list()時,Hibernate會生成類似如下的SQL語句:

  1. Select * from user inner join address on user.id=address.id where   
  2. address.address like ‘%shanghai%’;  

正如我們所見,我們可以通過向Criteria中添加保存關聯對象的集合屬性(addresses屬性保存與User對象相關聯的Address對象),來構造復合查詢,在數據庫一端是通過內連接查詢來實現。

4、Criteria的高級特性:

A、限定返回記錄條數:

我們可以通過利用Criteria.setFirstResult/setMaxResult方法來限定返回某一次查詢的記錄數,如下代碼:

  1. Criteria criteria=session.createCriteria(User.class);   
  2. criteria.setFirstResult(100);   
  3. criteria.setMaxResult(200);  

通過以上代碼可以設定該次查詢返回user表中的從第100條記錄開始直到第200條記錄結束的100條記錄。

B、對查詢結果進行排序:

可通過使用net.sf.hibernate.expression.Order類可以對查詢結果集進行排序,如下面代碼:

  1. Criteria criteria=session.createCriteria(User.class);   
  2. criteria.add(Expression.eq(“groupid”,”2”);   
  3. criteria.addOrder(Order.asc(“name”));   
  4. criteria.addOrder(Order.desc(“groupid”));   
  5. List list=criteria.list();  

通過使用Order類的asc()/desc()方法,可以指定針對某個字段的排序邏輯,如果執行上述代碼,會生成類似如下的SQL語句:

  1. Select * from user where groupid=’2’ order by name asc,groupid desc  

C、分組與統計:

在Hibernate3中,對Criteria又增添了新功能,可以支持分組與統計功能,在Hibernate3中增加了Projections以及ProjectionList類,這兩個類對分組與統計功能進行了封裝,如下代碼:

  1. Criteria criteria=session.createCriteria(User.class);   
  2. criteria.setProjection(Projections.groupProperty(“age”));(1)   
  3. List list=criteria.list();   
  4. Iterator it=list.iterator();   
  5. while(it.hasNext()){   
  6.  System.out.println(it.next());   
  7. }  

通過(1)處的代碼,我們通過Projections類指定了用于分組的目標屬性,當進行檢索時Hibernate會生成類似如下的SQL語句:

  1. Select age from user group by age;  

還可以通過使用Projections的avg()/rowCount()/count()/max()/min()/countDistinct()等方法來實現統計功能,如下面的代碼示例:

  1. Criteria criteria=session.createCriteria(User.class);   
  2. criteria.setProjection(Projections.avg(“age”));(1)   
  3. List list=criteria.list();   
  4. Iterator it=list.iterator();   
  5. while(it.hasNext()){   
  6.  System.out.println(it.next());   
  7. }  

通過(1)處的代碼,我們實現了對用戶平均年齡的統計,當進行檢索時,Hibernate會生成類似如下的SQL語句:

  1. Select avg(age) from user;  

另外,在SQL語句中的多條件分組與統計功能,可以利用ProjectionList類來實現,如下面代碼所示:

  1. Criteria criteria=session.createCriteria(User.class);   
  2. ProjectionList prolist=Projections.projectionList();   
  3. prolist.add(Projections.groupProperty(“age”));   
  4. prolist.add(Projections.rowCount());   
  5. criteria.setProjection(prolist);   
  6. List list=criteria.list();  

通過以上代碼,實現了對不同年齡人員數量的分組統計,當進行檢索時,Hibernate會生成類似如下的SQL語句:

  1. Select age,count(*) from user group by age;  

5、DetachedCriteria:

在Hibernate2中,Criteria實例是與創建它的Session實例具有相同的生命周期的,也就是說,Session實例是它所創建的Criteria實例的宿主,當Session關閉時,寄生于Session實例的Criteria都將失效。這就對Criteria的重用造成了困難,為了實現Criteria實例的重用,在Hibernate3中提供了一個DetachedCriteria類,DetachedCriteria實例的生命周期與Session實例的生命周期無關,我們可以利用DetachedCriteria對一些常用的Criteria查詢條件進行抽離,當需要進行檢索時再與Session實例關聯,從而獲得運行期的Criteria實例。如下面的代碼所示:

  1. DetachedCriteria dc= DetachedCriteria.forClass(User.class);   
  2. dc.add(Expression.eq(“name”,”zhaoxin”));   
  3. dc.add(Expression.eq(“sex”,”1”));   
  4. Criteria criteria=dc.getExecutableCriteria(session);   
  5. Iterator it=criteria.list().iterator();   
  6. while(it.hasNext()){   
  7.   User user=(User)it.next();   
  8.   System.out.println(user.getName());   
  9. }  

正如我們所見,DetachedCriteria的生存周期與session實例無關,當需要進行檢索時,通過getExecutableCriteria(session)方法,與當前的Session實例關聯并獲得運行期的Criteria實例,完成檢索。

DetachedCriteria也可以用于完成子查詢功能,如下代碼所示:

  1. DetachedCriteria dc= DetachedCriteria.forClass(User.class);   
  2. dc.setProjection(Projections.avg(“age”));   
  3. Criteria criteria=session.createCriteria(User.class);   
  4. criteria.add(Subqueries.propertyGt(“age”,dc));   
  5. List list=criteria.list(); 

通過Subqueries類,實現了添加子查詢的功能,我們將DetachedCriteria所設定的查詢條件,當作子查詢添加到了運行時Criteria實例的查詢條件中,當執行檢索時Hibernate會生成類似如下的SQL語句:

  1. Select * from user where age>(select avg(age) from user group by age); 

【編輯推薦】

  1. Hibernate的三個狀態(1)
  2. Hibernate 中Clob字段的使用
  3. Hibernate自動生成標
  4. Hibernate的三個狀態(3)
  5. Hibernate的三個狀態(2)
責任編輯:book05 來源: 百度博客
相關推薦

2009-09-23 18:05:48

2009-09-24 15:27:41

Hibernate查詢

2009-09-23 13:04:58

HibernateOracle sequ

2009-06-30 16:55:19

2009-06-08 10:20:01

Hibernate查詢

2009-06-26 10:01:00

Hibernate的查

2009-09-23 10:14:22

Hibernate

2009-09-23 09:16:25

Hibernate復合

2009-09-22 15:26:30

Hibernate多表

2009-06-17 14:17:40

Criteria條件查Hibernate

2009-06-18 09:47:50

2009-09-27 10:19:11

Hibernate命名

2009-09-29 16:29:40

Hibernate查詢

2009-06-17 08:47:00

Hibernate優化

2009-06-18 09:14:08

Hibernate H

2009-09-22 08:39:59

Hibernate F

2009-06-29 09:00:42

Hibernate的Q

2009-06-25 16:45:31

Hibernate

2009-09-21 13:42:47

Hibernate查詢

2009-06-30 16:44:10

Criteria基本查
點贊
收藏

51CTO技術棧公眾號

在线精品观看国产| a天堂在线观看视频| 蜜桃久久一区二区三区| 亚洲人成网亚洲欧洲无码| 久久国产成人午夜av影院| 精品精品国产高清a毛片牛牛| 日韩精品久久一区| 国产成人亚洲欧洲在线| 自拍偷拍欧美日韩| 中日韩免费视频中文字幕| 91精品国产91久久久久福利| 在线观看一区二区三区视频| 欧美videos极品另类| 久9re热视频这里只有精品| 欧美国产日韩a欧美在线观看| 91精品视频免费观看| 性欧美一区二区| 色一区二区三区| 成人午夜大片免费观看| 久久精品小视频| 91制片厂毛片| 国产高清视频在线| 久久久777| 亚洲激情自拍图| 午夜免费福利小电影| 亚洲av永久纯肉无码精品动漫| 999国产精品视频| 欧美日韩1234| 不卡中文字幕在线| 97免费观看视频| 欧美激情欧美| 亚洲男女性事视频| 欧美成人黑人猛交| 日本午夜在线视频| 久久亚洲不卡| 在线看日韩欧美| 日本在线播放一区二区| 福利在线视频网站| 国产福利一区在线| 久久久久久国产精品| 亚洲色图欧美日韩| 超碰超碰人人人人精品| 久久久国产综合精品女国产盗摄| 91精品国产91久久久久久不卡| 在线观看亚洲网站| 日韩精品一区二区三区中文| 亚洲国产日日夜夜| 美女被啪啪一区二区| 加勒比在线一区| 色综合色综合| 日韩欧美你懂的| 成年人午夜视频在线观看| caopeng在线| 亚洲美女免费在线| 韩国成人av| 亚洲综合图片网| 一区二区91| 色综久久综合桃花网| 天堂va欧美va亚洲va老司机| 成人性生活视频| 欧美日韩午夜视频在线观看| 亚洲不卡中文字幕| 无码任你躁久久久久久久| 日韩午夜在线电影| 2018国产精品视频| 欧美特黄aaaaaa| 婷婷成人基地| 精品无人区太爽高潮在线播放 | 午夜伊人狠狠久久| 日本午夜一区二区三区| 国产99对白在线播放| 国产精品一区二区免费不卡| 91av在线视频观看| 色屁屁影院www国产高清麻豆| 国产高清一区二区| 麻豆国产精品va在线观看不卡| 中国极品少妇videossexhd| 亚洲综合av一区二区三区| 一区二区三区在线观看欧美| 日本不卡久久| 91最新在线| 99久久综合精品| 亚洲影院色无极综合| 懂色av蜜臀av粉嫩av分享吧最新章节| 久久av最新网址| 国产精品v片在线观看不卡| 国产一级片免费| 91麻豆国产自产在线观看亚洲 | 黄色成人在线网| 国产日韩欧美高清| 国产精品我不卡| 国产熟女一区二区三区五月婷| 亚洲免费影视| 欧美高清视频在线观看| 99自拍偷拍视频| 九九视频精品全部免费播放| 精品国产91乱码一区二区三区| 欧美日韩在线观看不卡| 外国成人毛片| 欧美日韩一区二区三区在线| 欧美三级午夜理伦三级| 成人在线免费观看黄色| 91精品福利视频| 欧美成人免费高清视频| 性欧美video另类hd尤物| 欧美精品一区二区高清在线观看 | 久久影视电视剧免费网站清宫辞电视| 久久久久成人网站| 亚洲在线久久| 日韩中文字幕在线看| 最近中文字幕在线mv视频在线 | 欧美videofree性高清杂交| 大又大又粗又硬又爽少妇毛片| 亚洲免费一区三区| 日韩午夜在线影院| 成人免费播放视频| 成人噜噜噜噜| 337p亚洲精品色噜噜噜| 一级做a免费视频| 精品女人视频| 久久这里只有精品99| 日本久久综合网| 波多野结衣在线aⅴ中文字幕不卡| 高清国语自产拍免费一区二区三区| av一区二区三| 日本一区二区三区四区在线视频| 天堂资源在线亚洲资源| 僵尸再翻生在线观看免费国语| 精品久久久久久亚洲国产300| 国产美女网站在线观看| 国产成人免费视频网站视频社区| 亚洲香蕉成人av网站在线观看| av手机在线播放| 亚洲国产激情| 欧美在线免费看| 在线免费观看国产精品| 波多野结衣中文字幕一区| 国产精品一二三在线观看| 免费网站在线观看人| 午夜a成v人精品| 午夜激情视频网| 成人av资源网址| 国产视频欧美视频| 激情综合网五月婷婷| 国产精品小仙女| 男插女免费视频| 国产ktv在线视频| 精品免费视频.| 久久久久久久国产视频| 国产成人欧美日韩在线电影| 日本福利视频导航| 爱情电影网av一区二区| 日韩专区中文字幕| 国产精品人人妻人人爽| 中文字幕视频一区二区三区久| 在线观看成人免费| 欧美天堂一区二区| 亚洲国产精品高清久久久| 91激情视频在线观看| 久久精品五月| 欧美尤物一区| 先锋欧美三级| 日韩欧美国产精品| 欧美精品久久久久性色| 久久久久久久欧美精品| 明星裸体视频一区二区| 欧美大电影免费观看| 欧美一区二区久久| 中文字幕一区二区人妻在线不卡| 99精品美女| 91在线精品视频| 金瓶狂野欧美性猛交xxxx| 亚洲第一黄色网| 欧美一区二区激情视频| 国产福利视频一区二区三区| 大片在线观看网站免费收看| 中文字幕视频精品一区二区三区| 国色天香2019中文字幕在线观看| 国产一区二区网站| 久久久久久一二三区| 一区二区在线播放视频| 欧美jizz19性欧美| 欧美日韩国产999| 中文字幕在线2018| 26uuu亚洲综合色| 91国在线高清视频| 欧美成人免费全部网站| 欧美成人激情视频免费观看| 久久人人爽人人爽人人片av免费| 99久久精品情趣| 超碰影院在线观看| 91精品国产福利在线观看麻豆| 国产精品扒开腿做爽爽爽视频| 亚洲视频tv| 欧美中文字幕亚洲一区二区va在线 | 麻豆一区二区三区| 黄色99视频| 一二区成人影院电影网| 蜜月aⅴ免费一区二区三区 | 日本在线一区二区| 久久久久久国产精品三级玉女聊斋 | 日本美女一区二区三区| 精品国产aⅴ麻豆| 69堂免费精品视频在线播放| 精品国产一区二区三区四区四 | 天天躁日日躁aaaxxⅹ| 精品一区二区三区久久| 成人毛片视频网站| 国产美女撒尿一区二区| 久久99青青精品免费观看| 青青草娱乐在线| 欧美一卡二卡三卡| 久久久久久亚洲av无码专区| 亚洲一本大道在线| 特级西西人体4444xxxx| aa亚洲婷婷| 视频一区二区视频| 国产一区毛片| 日本精品久久久久影院| 天堂中文资源在线| 狠狠躁夜夜躁人人爽超碰91| 2014亚洲天堂| 国产一区二区在线视频| 青青草原网站在线观看| 亚洲黄页网站| 国产日韩欧美精品| 一区二区三区电影大全| 欧美国产在线视频| 黄色一级片在线观看| 日韩午夜电影av| 亚洲图片视频小说| 国产精品国产三级国产aⅴ中文| 中文字幕66页| 免费久久99精品国产自在现线| 人妻激情另类乱人伦人妻| 国产香蕉精品| 91免费观看| 天堂8中文在线最新版在线| 国产亚洲精品va在线观看| 欧美少妇bbw| 日韩欧美高清在线| 国产高清免费观看| 91精品国产全国免费观看| 在线免费av片| 欧美性猛交xxxxxx富婆| 欧美一级特黄高清视频| 国产女同互慰高潮91漫画| 熟女高潮一区二区三区| 91免费国产在线| 亚洲AV无码国产精品| 日本vs亚洲vs韩国一区三区| 日韩a在线播放| 亚洲欧美不卡| 无码人妻丰满熟妇区毛片| 麻豆九一精品爱看视频在线观看免费| 久在线观看视频| 一区二区三区精品视频在线观看| 国产素人在线观看| 最新日韩在线| 99精品在线免费视频| 国产精品一国产精品k频道56| 亚洲欧美日韩精品在线| 日韩影院二区| 在线观看成人一级片| 欧美一区自拍| 九9re精品视频在线观看re6| 同性恋视频一区| 91美女片黄在线观| 香蕉成人app| 国内精品久久国产| 日韩精品导航| 日韩福利影院| 91精品99| 日韩av综合在线观看| 视频一区国产视频| 17c国产在线| 国产农村妇女毛片精品久久莱园子 | 亚洲精品一区二区18漫画| 成人精品视频一区二区三区| 亚洲精品在线视频免费观看| 久久精品亚洲麻豆av一区二区 | 亚洲三级黄色片| 91麻豆精品国产91| www.香蕉视频| 欧美色综合网站| 国产精品视频在线观看免费| 精品少妇一区二区| 久青草国产在线| 亚洲精品99久久久久中文字幕| 人操人视频在线观看| 最新日韩中文字幕| 久久av色综合| 国产成人精品一区| 三妻四妾完整版在线观看电视剧 | 久草综合在线| 成人午夜电影免费在线观看| 久操成人av| 日韩欧美一级在线| 久久高清国产| 中文字幕亚洲影院| 99视频在线观看一区三区| 国产午夜精品久久久久久久久| 亚洲一区二区三区四区的| 精品国产青草久久久久96| 日韩欧美中文字幕在线播放| 国产在线视频卡一卡二| 在线一区二区视频| 丰满少妇高潮在线观看| 精品久久久久久亚洲综合网| 男人天堂网在线| 欧美高清激情视频| 日本欧美在线| 欧美一卡2卡3卡4卡无卡免费观看水多多 | 精品美女一区二区三区| 91啦中文在线| 欧洲成人免费视频| 国产成人福利av| 正在播放精油久久| 视频一区在线视频| 中文字幕av观看| 亚洲午夜久久久久久久久电影网| 伊人网视频在线| 亚洲欧美精品在线| 国产精品高颜值在线观看| 91在线免费视频| 久久视频国产| 成年人小视频网站| 美女视频网站黄色亚洲| 天天做天天干天天操| 久久久久久久久99精品| 日韩精品人妻中文字幕| 色婷婷综合中文久久一本| 波多野结衣激情视频| 日韩av中文字幕在线播放| 欧美精品a∨在线观看不卡| 欧美国产精品va在线观看| 在线免费成人| 伊人久久99| 久久精品72免费观看| 天天操天天干天天操天天干| 亚洲视频在线观看一区| 久久婷婷综合国产| 制服丝袜中文字幕亚洲| 麻豆视频在线观看免费| 国产欧美日韩精品丝袜高跟鞋| 欧美影院精品| 中文字幕免费高| 麻豆91精品91久久久的内涵| 影音先锋制服丝袜| 色94色欧美sute亚洲线路一ni| 免费在线看v| 国产91在线视频| 欧美猛男做受videos| av无码精品一区二区三区| 国产亚洲综合av| 欧美日韩 一区二区三区| 在线播放精品一区二区三区| 精品视频在线一区二区在线| 亚洲一区三区在线观看| 亚洲精品国产日韩| a视频免费观看| 91福利在线观看| 91免费在线| 5566中文字幕一区二区| 亚洲无吗在线| 亚洲天堂2018av| av福利精品导航| 久草视频在线观| 亚洲女人天堂成人av在线| 一区二区视频免费完整版观看| 亚洲精品在线免费看| 精一区二区三区| 国产一级免费av| 亚洲欧洲午夜一线一品| 青草在线视频| 久久国产精品99久久久久久丝袜| 亚洲精品一二三区区别| 亚洲精品无码久久久久久久| 亚洲高清视频的网址| 欧美白人做受xxxx视频| 国产日本欧美一区二区三区| 亚洲v天堂v手机在线| 美女网站免费观看视频| ●精品国产综合乱码久久久久 | 毛片无码国产| 亚洲一区二区免费视频软件合集 | 男女污污视频在线观看| 国产精品久久久久久五月尺| 国产精品极品| 黄色av免费在线播放| 亚洲特级片在线| 日韩一卡二卡在线| 国产精品一久久香蕉国产线看观看| 欧美+亚洲+精品+三区| 粉色视频免费看| 亚洲国产aⅴ成人精品无吗| 成人不用播放器| 国产97在线播放| 欧美jizzhd精品欧美巨大免费| 少妇特黄一区二区三区|