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

如何用Java操作MongoDB

數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù) MongoDB
在上一篇文章中介紹到了在MongoDB的控制臺(tái)完成MongoDB的數(shù)據(jù)操作,通過(guò)前一篇文章我們對(duì)MongoDB有了全面的認(rèn)識(shí)和理解。現(xiàn)在我們就用Java來(lái)操作MongoDB的數(shù)據(jù)。

上一篇文章介紹到了在MongoDB的控制臺(tái)完成MongoDB的數(shù)據(jù)操作,通過(guò)前一篇文章我們對(duì)MongoDB有了全面的認(rèn)識(shí)和理解。現(xiàn)在我們就用Java來(lái)操作MongoDB的數(shù)據(jù)。

開發(fā)環(huán)境:

  1. System:Windows
  2. IDE:eclipse、MyEclipse 8
  3. Database:mongoDB

開發(fā)依賴庫(kù):

  1. JavaEE5、mongo-2.5.3.jar、junit-4.8.2.jar
  2. Email:hoojo_@126.com
  3. Blog:http://blog.csdn.net/IBM_hoojo

一、準(zhǔn)備工作

1、 首先,下載mongoDB對(duì)Java支持的驅(qū)動(dòng)包

驅(qū)動(dòng)包下載地址:https://github.com/mongodb/mongo-java-driver/downloads

mongoDB對(duì)Java的相關(guān)支持、技術(shù):http://www.mongodb.org/display/DOCS/Java+Language+Center

驅(qū)動(dòng)源碼下載:https://download.github.com/mongodb-mongo-java-driver-r2.6.1-7-g6037357.zip

在線查看源碼:https://github.com/mongodb/mongo-java-driver

2、 下面建立一個(gè)JavaProject工程,導(dǎo)入下載下來(lái)的驅(qū)動(dòng)包。即可在Java中使用mongoDB,目錄如下:

#FormatImgID_0#

二、Java操作MongoDB示例

在本示例之前你需要啟動(dòng)mongod.exe的服務(wù),啟動(dòng)后,下面的程序才能順利執(zhí)行;

1、 建立SimpleTest.java,完成簡(jiǎn)單的mongoDB數(shù)據(jù)庫(kù)操作

Mongo mongo = new Mongo();

這樣就創(chuàng)建了一個(gè)MongoDB的數(shù)據(jù)庫(kù)連接對(duì)象,它默認(rèn)連接到當(dāng)前機(jī)器的localhost地址,端口是27017。

DB db = mongo.getDB(“test”);

這樣就獲得了一個(gè)test的數(shù)據(jù)庫(kù),如果mongoDB中沒(méi)有創(chuàng)建這個(gè)數(shù)據(jù)庫(kù)也是可以正常運(yùn)行的。如果你讀過(guò)上一篇文章就知道,mongoDB可以在沒(méi)有創(chuàng)建這個(gè)數(shù)據(jù)庫(kù)的情況下,完成數(shù)據(jù)的添加操作。當(dāng)添加的時(shí)候,沒(méi)有這個(gè)庫(kù),mongoDB會(huì)自動(dòng)創(chuàng)建當(dāng)前數(shù)據(jù)庫(kù)。

得到了db,下一步我們要獲取一個(gè)“聚集集合DBCollection”,通過(guò)db對(duì)象的getCollection方法來(lái)完成。

DBCollection users = db.getCollection("users");

這樣就獲得了一個(gè)DBCollection,它相當(dāng)于我們數(shù)據(jù)庫(kù)的“表”。

查詢所有數(shù)據(jù)

  1. package com.hoo.test;  
  2.    
  3. import java.net.UnknownHostException;  
  4. import com.mongodb.DB;  
  5. import com.mongodb.DBCollection;  
  6. import com.mongodb.DBCursor;  
  7. import com.mongodb.Mongo;  
  8. import com.mongodb.MongoException;  
  9. import com.mongodb.util.JSON;  
  10.    
  11. /**  
  12.  * function:MongoDB 簡(jiǎn)單示例  
  13.  * @author hoojo  
  14.  * @createDate 2011-5-24 下午02:42:29  
  15.  * @file SimpleTest.java  
  16.  * @package com.hoo.test  
  17.  * @project MongoDB  
  18.  * @blog http://blog.csdn.net/IBM_hoojo  
  19.  * @email hoojo_@126.com  
  20.  * @version 1.0  
  21.  */ 
  22. public class SimpleTest {  
  23.    
  24.     public static void main(String[] args) throws UnknownHostException, MongoException {  
  25.         Mongo mg = new Mongo();  
  26.         //查詢所有的Database  
  27.         for (String name : mg.getDatabaseNames()) {  
  28.             System.out.println("dbName: " + name);  
  29.         }  
  30.           
  31.         DB db = mg.getDB("test");  
  32.         //查詢所有的聚集集合  
  33.         for (String name : db.getCollectionNames()) {  
  34.             System.out.println("collectionName: " + name);  
  35.         }  
  36.           
  37.         DBCollection users = db.getCollection("users");  
  38.           
  39.         //查詢所有的數(shù)據(jù)  
  40.         DBCursor cur = users.find();  
  41.         while (cur.hasNext()) {  
  42.             System.out.println(cur.next());  
  43.         }  
  44.         System.out.println(cur.count());  
  45.         System.out.println(cur.getCursorId());  
  46.         System.out.println(JSON.serialize(cur));  
  47.     }  
  48. }  

2、 完成CRUD操作,首先建立一個(gè)MongoDB4CRUDTest.java,基本測(cè)試代碼如下: 

  1. package com.hoo.test;    
  2.      
  3.  
  4. import java.net.UnknownHostException;    
  5. import java.util.ArrayList;    
  6. import java.util.List;    
  7. import org.bson.types.ObjectId;    
  8. import org.junit.After;    
  9. import org.junit.Before;    
  10. import org.junit.Test;    
  11. import com.mongodb.BasicDBObject;    
  12. import com.mongodb.Bytes;    
  13. import com.mongodb.DB;    
  14. import com.mongodb.DBCollection;    
  15. import com.mongodb.DBCursor;    
  16. import com.mongodb.DBObject;    
  17. import com.mongodb.Mongo;    
  18. import com.mongodb.MongoException;    
  19. import com.mongodb.QueryOperators;    
  20. import com.mongodb.util.JSON;    
  21.      
  22. /**    
  23.  * function:實(shí)現(xiàn)MongoDB的CRUD操作    
  24.  * @author hoojo    
  25.  * @createDate 2011-6-2 下午03:21:23    
  26.  * @file MongoDB4CRUDTest.java    
  27.  * @package com.hoo.test    
  28.  * @project MongoDB    
  29.  * @blog http://blog.csdn.net/IBM_hoojo    
  30.  * @email hoojo_@126.com    
  31.  * @version 1.0    
  32.  */   
  33. public class MongoDB4CRUDTest {    
  34.         
  35.     private Mongo mg = null;    
  36.     private DB db;    
  37.     private DBCollection users;    
  38.         
  39.     @Before   
  40.     public void init() {    
  41.         try {    
  42.             mg = new Mongo();    
  43.             //mg = new Mongo("localhost", 27017);    
  44.         } catch (UnknownHostException e) {    
  45.             e.printStackTrace();    
  46.         } catch (MongoException e) {    
  47.             e.printStackTrace();    
  48.         }    
  49.         //獲取temp DB;如果默認(rèn)沒(méi)有創(chuàng)建,mongodb會(huì)自動(dòng)創(chuàng)建    
  50.         db = mg.getDB("temp");    
  51.         //獲取users DBCollection;如果默認(rèn)沒(méi)有創(chuàng)建,mongodb會(huì)自動(dòng)創(chuàng)建    
  52.         users = db.getCollection("users");    
  53.     }    
  54.         
  55.  
  56.     @After   
  57.     public void destory() {    
  58.         if (mg != null)    
  59.             mg.close();    
  60.         mg = null;    
  61.         db = null;    
  62.         users = null;    
  63.         System.gc();    
  64.     }    
  65.     public void print(Object o) {    
  66.         System.out.println(o);    
  67.     }    
  68. }  

#p#

3、 添加操作

在添加操作之前,我們需要寫個(gè)查詢方法,來(lái)查詢所有的數(shù)據(jù)。代碼如下:

  1. /**  
  2.  * function: 查詢所有數(shù)據(jù)  
  3.  * @author hoojo  
  4.  * @createDate 2011-6-2 下午03:22:40  
  5.  */ 
  6. private void queryAll() {  
  7.     print("查詢users的所有數(shù)據(jù):");  
  8.     //db游標(biāo)  
  9.     DBCursor cur = users.find();  
  10.     while (cur.hasNext()) {  
  11.         print(cur.next());  
  12.     }  
  13. }  
  14.    
  15. @Test 
  16. public void add() {  
  17.     //先查詢所有數(shù)據(jù)  
  18.     queryAll();  
  19.     print("count: " + users.count());  
  20.       
  21.     DBObject user = new BasicDBObject();  
  22.     user.put("name""hoojo");  
  23.     user.put("age"24);  
  24.     //users.save(user)保存,getN()獲取影響行數(shù)  
  25.     //print(users.save(user).getN());  
  26.       
  27.     //擴(kuò)展字段,隨意添加字段,不影響現(xiàn)有數(shù)據(jù)  
  28.     user.put("sex""男");  
  29.     print(users.save(user).getN());  
  30.       
  31.     //添加多條數(shù)據(jù),傳遞Array對(duì)象  
  32.     print(users.insert(user, new BasicDBObject("name""tom")).getN());  
  33.       
  34.     //添加List集合  
  35.     List list = new ArrayList();  
  36.     list.add(user);  
  37.     DBObject user2 = new BasicDBObject("name""lucy");  
  38.     user.put("age"22);  
  39.     list.add(user2);  
  40.     //添加List集合  
  41.     print(users.insert(list).getN());  
  42.       
  43.     //查詢下數(shù)據(jù),看看是否添加成功  
  44.     print("count: " + users.count());  
  45.     queryAll();  

4、 刪除數(shù)據(jù)

  1. @Test 
  2. public void remove() {  
  3.     queryAll();  
  4.     print("刪除id = 4de73f7acd812d61b4626a77:" + users.remove(new BasicDBObject("_id"new ObjectId("4de73f7acd812d61b4626a77"))).getN());  
  5.     print("remove age >= 24: " + users.remove(new BasicDBObject("age"new BasicDBObject("$gte"24))).getN());  

5、 修改數(shù)據(jù)

  1. @Test 
  2. public void modify() {  
  3.     print("修改:" + users.update(new BasicDBObject("_id"new ObjectId("4dde25d06be7c53ffbd70906")), new BasicDBObject("age"99)).getN());  
  4.     print("修改:" + users.update(  
  5.             new BasicDBObject("_id"new ObjectId("4dde2b06feb038463ff09042")),   
  6.             new BasicDBObject("age"121),  
  7.             true,//如果數(shù)據(jù)庫(kù)不存在,是否添加  
  8.             false//多條修改  
  9.             ).getN());  
  10.     print("修改:" + users.update(  
  11.             new BasicDBObject("name""haha"),   
  12.             new BasicDBObject("name""dingding"),  
  13.             true,//如果數(shù)據(jù)庫(kù)不存在,是否添加  
  14.             true//false只修改第一天,true如果有多條就不修改  
  15.             ).getN());  
  16.       
  17.     //當(dāng)數(shù)據(jù)庫(kù)不存在就不修改、不添加數(shù)據(jù),當(dāng)多條數(shù)據(jù)就不修改  
  18.     //print("修改多條:" + coll.updateMulti(new BasicDBObject("_id", new ObjectId("4dde23616be7c19df07db42c")), new BasicDBObject("name", "199")));  

#p#

6、 查詢數(shù)據(jù)

  1. @Test 
  2. public void query() {  
  3.     //查詢所有  
  4.     //queryAll();  
  5.       
  6.     //查詢id = 4de73f7acd812d61b4626a77  
  7.     print("find id = 4de73f7acd812d61b4626a77: " + users.find(new BasicDBObject("_id"new ObjectId("4de73f7acd812d61b4626a77"))).toArray());  
  8.       
  9.     //查詢age = 24  
  10.     print("find age = 24: " + users.find(new BasicDBObject("age"24)).toArray());  
  11.       
  12.     //查詢age >= 24  
  13.     print("find age >= 24: " + users.find(new BasicDBObject("age"new BasicDBObject("$gte"24))).toArray());  
  14.     print("find age <= 24: " + users.find(new BasicDBObject("age"new BasicDBObject("$lte"24))).toArray());  
  15.       
  16.     print("查詢age!=25:" + users.find(new BasicDBObject("age"new BasicDBObject("$ne"25))).toArray());  
  17.     print("查詢age in 25/26/27:" + users.find(new BasicDBObject("age"new BasicDBObject(QueryOperators.IN, new int[] { 252627 }))).toArray());  
  18.     print("查詢age not in 25/26/27:" + users.find(new BasicDBObject("age"new BasicDBObject(QueryOperators.NIN, new int[] { 252627 }))).toArray());  
  19.     print("查詢age exists 排序:" + users.find(new BasicDBObject("age"new BasicDBObject(QueryOperators.EXISTS, true))).toArray());  
  20.       
  21.     print("只查詢age屬性:" + users.find(nullnew BasicDBObject("age"true)).toArray());  
  22.     print("只查屬性:" + users.find(nullnew BasicDBObject("age"true), 02).toArray());  
  23.     print("只查屬性:" + users.find(nullnew BasicDBObject("age"true), 02, Bytes.QUERYOPTION_NOTIMEOUT).toArray());  
  24.       
  25.     //只查詢一條數(shù)據(jù),多條去第一條  
  26.     print("findOne: " + users.findOne());  
  27.     print("findOne: " + users.findOne(new BasicDBObject("age"26)));  
  28.     print("findOne: " + users.findOne(new BasicDBObject("age"26), new BasicDBObject("name"true)));  
  29.       
  30.     //查詢修改、刪除  
  31.     print("findAndRemove 查詢age=25的數(shù)據(jù),并且刪除: " + users.findAndRemove(new BasicDBObject("age"25)));  
  32.       
  33.     //查詢age=26的數(shù)據(jù),并且修改name的值為Abc  
  34.     print("findAndModify: " + users.findAndModify(new BasicDBObject("age"26), new BasicDBObject("name""Abc")));  
  35.     print("findAndModify: " + users.findAndModify(  
  36.         new BasicDBObject("age"28), //查詢age=28的數(shù)據(jù)  
  37.         new BasicDBObject("name"true), //查詢name屬性  
  38.         new BasicDBObject("age"true), //按照age排序  
  39.         false//是否刪除,true表示刪除  
  40.         new BasicDBObject("name""Abc"), //修改的值,將name修改成Abc  
  41.         true,   
  42.         true));  
  43.       
  44.     queryAll();  

mongoDB不支持聯(lián)合查詢、子查詢,這需要我們自己在程序中完成。將查詢的結(jié)果集在Java查詢中進(jìn)行需要的過(guò)濾即可。

7、 其他操作

  1. public void testOthers() {  
  2.     DBObject user = new BasicDBObject();  
  3.     user.put("name""hoojo");  
  4.     user.put("age"24);  
  5.       
  6.     //JSON 對(duì)象轉(zhuǎn)換          
  7.     print("serialize: " + JSON.serialize(user));  
  8.     //反序列化  
  9.     print("parse: " + JSON.parse("{ \"name\" : \"hoojo\" , \"age\" : 24}"));  
  10.       
  11.     print("判斷temp Collection是否存在: " + db.collectionExists("temp"));  
  12.       
  13.     //如果不存在就創(chuàng)建  
  14.     if (!db.collectionExists("temp")) {  
  15.         DBObject options = new BasicDBObject();  
  16.         options.put("size"20);  
  17.         options.put("capped"20);  
  18.         options.put("max"20);  
  19.         print(db.createCollection("account", options));  
  20.     }  
  21.       
  22.     //設(shè)置db為只讀  
  23.     db.setReadOnly(true);  
  24.       
  25.     //只讀不能寫入數(shù)據(jù)  
  26.     db.getCollection("test").save(user);  

 好了,這里基本上就介紹這么多Java操作MongoDB的方法。其他的東西還需要你自己多多研究。上面操作MongoDB的方法都是一些常用的方法,比較簡(jiǎn)單。

原文鏈接:http://www.cnblogs.com/hoojo/archive/2011/06/02/2068665.html

【編輯推薦】

 

  1. 淘寶海量數(shù)據(jù)庫(kù)之克服隨機(jī)IO難題
  2. 數(shù)據(jù)庫(kù)如何抵抗隨機(jī)IO的問(wèn)題、方法與現(xiàn)實(shí)
  3. 一步一步設(shè)計(jì)你的數(shù)據(jù)庫(kù)之不可輕視的需求分析
  4. 養(yǎng)成一個(gè)SQL好習(xí)慣帶來(lái)一筆大財(cái)富

 

責(zé)任編輯:艾婧 來(lái)源: hoojo的博客
相關(guān)推薦

2011-07-13 14:02:42

OracleExcel

2023-12-18 16:07:15

2009-06-22 11:52:00

javascriptxml

2022-07-15 11:33:01

供應(yīng)鏈VR虛擬現(xiàn)實(shí)

2009-06-19 14:44:04

ODBCMySQL

2024-03-25 08:18:31

2011-08-08 15:25:42

iPhone SQLite BLOB

2020-09-24 16:05:44

C語(yǔ)言sqlite3函數(shù)

2018-03-07 15:24:41

PythonMySQL

2011-07-22 13:22:10

Java.NETDataTable

2011-09-02 09:51:21

2009-02-05 14:17:37

FTP服務(wù)器Java

2010-04-16 11:03:02

Oracle存儲(chǔ)過(guò)程

2011-03-21 13:28:14

MongoDB文件存取

2021-03-04 10:37:37

PythonMongoDB數(shù)據(jù)庫(kù)

2021-04-02 06:35:49

Bash讀寫文件Linux

2018-03-27 18:12:12

PythonHTML

2011-03-15 09:10:47

iptablesNAT

2023-12-15 10:21:20

Java聲音識(shí)別

2022-12-02 08:17:27

JavaHTML標(biāo)簽
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

激情综合色播五月| 在线免费观看日本欧美爱情大片| 色欧美片视频在线观看在线视频| 欧美一区国产一区| 97久久人国产精品婷婷| 18成人免费观看视频| 亚洲午夜激情免费视频| a级大片免费看| 日本久久免费| 亚洲综合视频在线| 先锋影音欧美| 性xxxx视频播放免费| 美女在线一区二区| 91av成人在线| 免费成年人视频在线观看| 久久精品福利| 91精品国产综合久久蜜臀| 成人观看免费完整观看| 亚洲电影视频在线| 欧美国产日本视频| 精品日韩美女| 精品人妻av一区二区三区| 日韩国产欧美视频| 91黑丝在线观看| 中文字幕手机在线观看| 成人精品亚洲| 亚洲美女性生活视频| 国产成人精品免费视频| 黑鬼狂亚洲人videos| 国产欧美日韩精品高清二区综合区| 日韩精品中午字幕| 亚洲高清视频免费| 福利一区二区免费视频| 色婷婷国产精品综合在线观看| 玖玖精品在线视频| 免费在线观看黄| 国产欧美日韩在线| 欧美一区二区三区四区在线观看地址| 蜜臀久久久久久999| 国产一区二区免费看| 国产一区二区香蕉| 国产乡下妇女三片| 日本系列欧美系列| 国产福利精品视频| 天天爱天天做天天爽| 久久一区视频| 欧洲精品在线视频| 日本中文字幕久久| 美女91精品| 国产mv免费观看入口亚洲| 少妇久久久久久久久久| 久久丝袜视频| 日韩大陆欧美高清视频区| 中文字幕第九页| 精品久久ai电影| 亚洲国产精品电影在线观看| 男人的天堂影院| 欧美日韩精品一区二区三区在线观看| 亚洲第一偷拍网| 国产人妻黑人一区二区三区| 日韩美女精品| 亚洲视频在线观看视频| 精品无码在线观看| 欧美残忍xxxx极端| 欧美另类xxx| 日本少妇激情视频| 国产欧美精品| 国产精品9999| 91成年人视频| 国产成人av电影| 久久99精品久久久久久久青青日本 | 熟妇人妻久久中文字幕| 欧美日韩看看2015永久免费| 国产亚洲激情在线| 91精品国产闺蜜国产在线闺蜜| 欧美黄在线观看| 97精品在线观看| 香蕉污视频在线观看| 国内成人精品2018免费看| 成人黄动漫网站免费| 日韩欧美在线番号| 国产精品久久久久久久久果冻传媒| 18视频在线观看娇喘| 成人女同在线观看| 欧美影院一区二区| 成年人性生活视频| 伊人精品一区| 久久夜色撩人精品| 国产在线视频第一页| 快she精品国产999| 91九色偷拍| 精品一二三区视频| 一区二区三区精品在线| 国产黄色特级片| 亚洲国产中文在线二区三区免| 日韩国产精品视频| 日韩av手机在线免费观看| 狠狠爱综合网| 国产免费一区二区三区在线能观看 | 色偷偷888欧美精品久久久| 91视频综合网| 亚洲欧美日韩国产综合精品二区 | 国产精品久久久久久久久图文区 | 国产a免费视频| 久久国产精品99国产| 亚洲xxx自由成熟| 欧美人体大胆444www| 美女国产一区二区三区| 国产v亚洲v天堂无码| 国产精品免费观看| 国产喂奶挤奶一区二区三区| 无码毛片aaa在线| 亚洲精品一级二级| 欧美成人一级视频| 2014亚洲天堂| 首页亚洲欧美制服丝腿| 国产精品久久久久久久久久久久午夜片 | 亚洲一级免费观看| 日韩在线黄色| 欧美精品国产精品日韩精品| 国产又粗又猛又黄| 久久蜜臀中文字幕| 久久久久久久久久久99| 日本精品视频| 久久亚洲一区二区三区四区五区高| 欧美性猛交xxxx乱大交hd| 成人精品电影在线观看| 9191国产视频| av在线播放一区二区| 欧美日韩视频在线一区二区| 亚洲黄色在线网站| 亚洲成色精品| 国产精品久久久久免费| 五月天激情在线| 欧美一级在线免费| √天堂中文官网8在线| 久久99精品久久久久婷婷| 日韩伦理一区二区三区av在线| 最近高清中文在线字幕在线观看1| 亚洲精品在线电影| 久久久久无码国产精品| 懂色av噜噜一区二区三区av| 国产人妻人伦精品| 日韩成人在线看| 欧美美女操人视频| 亚洲av综合色区无码一区爱av| 亚洲精品视频一区二区| ass极品水嫩小美女ass| 国产精品草草| 国产精品视频一区二区三区经| 欧美家庭影院| 亚洲国产精品成人精品| 国产91国语对白在线| 久久久蜜桃精品| 久久精品视频91| 欧美肉体xxxx裸体137大胆| 国产精品久久久久久五月尺| 91在线不卡| 欧美一区二区三区四区在线观看 | 男男做爰猛烈叫床爽爽小说| 国产视频久久| 深夜福利成人| 在线视频成人| 欧美精品激情blacked18| 亚欧洲精品视频| 91福利精品视频| 一级免费黄色录像| 国产成人在线视频网址| 日韩欧美视频网站| 第四色成人网| 5g影院天天爽成人免费下载| 爱看av在线入口| 亚洲热线99精品视频| 亚洲网站免费观看| 一区二区三区国产精品| 熟女丰满老熟女熟妇| 日本网站在线观看一区二区三区| 最新中文字幕久久| 女人抽搐喷水高潮国产精品| 国产精品草莓在线免费观看 | 66m—66摸成人免费视频| 国产在线你懂得| 91精品黄色片免费大全| 久草手机在线视频| 1024成人网| 亚洲成人av免费在线观看| 日韩二区在线观看| 妺妺窝人体色www看人体| 久久综合色占| 99在线首页视频| 欧美人与性动交xxⅹxx| 欧美剧在线观看| 韩国中文字幕2020精品| 日韩欧美另类在线| 中文亚洲av片在线观看| 亚洲成av人片一区二区三区| 亚洲第一综合网| 成人黄色小视频在线观看| 一道本视频在线观看| 亚洲经典自拍| 亚洲 欧洲 日韩| 免费视频国产一区| 97人人模人人爽人人少妇| 另类激情视频| 久久久久久久久久久av| 亚洲xxxxxx| 亚洲老头同性xxxxx| 亚洲av无码一区二区三区dv| 欧美三级在线视频| 少妇一级淫片免费放中国 | 成人黄色av片| 午夜日本精品| 一区二区三区|亚洲午夜| 亚洲精品蜜桃乱晃| 国产欧美日韩一区二区三区| 国产免费区一区二区三视频免费 | 不卡中文字幕av| 北岛玲一区二区三区| 精品偷拍一区二区三区在线看| 精品国产亚洲一区二区麻豆| 欧美视频一区在线| 日韩精品久久久久久免费| 亚洲大片一区二区三区| 色婷婷在线视频观看| 亚洲国产精品成人综合| 加勒比一区二区| 91女神在线视频| 国产精品扒开腿做爽爽爽a片唱戏 亚洲av成人精品一区二区三区 | 亚洲高清av一区二区三区| 人人超碰91尤物精品国产| wwwxxx黄色片| 另类激情亚洲| 久久无码高潮喷水| 亚洲一区欧美二区| 大j8黑人w巨大888a片| 亚洲视频中文| 亚洲一区二区三区av无码| 欧美黄色一级视频| 大胆欧美熟妇xx| 欧美亚洲不卡| 99在线观看视频免费| 国语精品一区| www.av91| 国产精品最新自拍| 欧美xxxxx在线视频| 久久久人人人| 精品少妇无遮挡毛片| 免费久久99精品国产| 邪恶网站在线观看| 精品在线播放午夜| 中文字幕乱妇无码av在线| 国产91在线观看| 成年人小视频在线观看| 91在线观看一区二区| 短视频在线观看| 久久精品视频免费| 欧美亚洲色综久久精品国产| 中文字幕一区二区三区在线播放| 亚洲精品一区二区三区在线播放| 亚洲日本va午夜在线影院| 538精品在线视频| 亚洲国产精品嫩草影院| 国产精品免费精品一区| 欧美色综合网站| 国产草草影院ccyycom| 亚洲国产成人精品电影| 国内av一区二区三区| 视频一区视频二区国产精品 | 欧美性受xxxx白人性爽| 日本欧美一区| 97超碰人人看人人| 日韩免费电影在线观看| 亚洲精品一品区二品区三品区| 91精品精品| 国产麻豆日韩| 伊人成综合网伊人222| 在线观看欧美一区| 亚洲视频免费| av污在线观看| 盗摄精品av一区二区三区| 亚洲人成人无码网www国产| 亚洲天天做日日做天天谢日日欢 | 亚洲日本激情| 国产成人黄色网址| 成人毛片在线观看| 美国一级黄色录像| 亚洲午夜在线电影| 日本成人一级片| 欧美精品一区二区三区四区 | 日本在线观看天堂男亚洲 | 成人欧美一区二区三区的电影| 成人h猎奇视频网站| 欧美三级电影在线| 手机在线视频你懂的| 性欧美xxxx大乳国产app| 成年人网站av| 中文字幕国产一区| 你懂的国产视频| 欧美精品在线观看一区二区| 香蕉视频成人在线| 欧美激情亚洲另类| 日本成人一区二区| 欧美另类视频在线| 一区福利视频| xxxx在线免费观看| 久久亚洲一级片| 国产精品99无码一区二区| 欧美日韩成人在线一区| 青青草在线免费视频| 久久久久国色av免费观看性色| 老司机精品视频网| 日韩欧美精品一区二区三区经典| 亚洲黄色天堂| 男插女视频网站| 中文字幕永久在线不卡| 成人免费一级片| 日韩毛片在线观看| 成年网站在线视频网站| 91久色国产| 亚洲成人精品| 国产又黄又猛的视频| 国产三级一区二区| 久久久免费高清视频| 亚洲国产精品久久久久秋霞蜜臀| 俄罗斯嫩小性bbwbbw| 日韩综合中文字幕| 韩国精品视频在线观看 | 成人免费自拍视频| 成人av国产| 国产真人无码作爱视频免费| 91啦中文在线观看| 特级西西444www大精品视频免费看| 精品久久久久久久久久久久久久久久久 | 国产精品7m凸凹视频分类| 激情内射人妻1区2区3区 | 国产剧情一区在线| 免费看一级大片| 欧美精品v国产精品v日韩精品| 川上优的av在线一区二区| 国产精品激情av电影在线观看| 久久99青青| 99热手机在线| 国产精品美女一区二区在线观看| 一区二区视频免费观看| 久久精品国产亚洲精品| 国产高清视频一区二区| 男女啪啪免费观看| 粉嫩绯色av一区二区在线观看| 久久精品99久久久久久| 亚洲成人激情在线观看| 欧美a级在线观看| 欧美日韩一区二区视频在线观看| 久久久久久久欧美精品| 性猛交娇小69hd| 欧美精品免费视频| 五月婷婷视频在线观看| 狠狠色噜噜狠狠狠狠色吗综合| 国产精品永久| 国产一二三四视频| 欧美一级夜夜爽| jizzjizz中国精品麻豆| 久久99精品国产一区二区三区| 日韩电影免费在线看| 国产午夜精品理论片| 欧美草草影院在线视频| 日本在线啊啊| 亚洲免费不卡| 国产传媒欧美日韩成人| 91看片在线播放| 亚洲图片欧美日产| 国产精品一区二区三区www| 成人在线播放网址| 久久久国产精品麻豆| 国产理论视频在线观看| 久久久久久尹人网香蕉| 精品72久久久久中文字幕| caoporm在线视频| 亚洲成av人片一区二区三区| 成人亚洲性情网站www在线观看| 91嫩草在线| 日韩精品乱码免费| 免费在线观看av网址| 亚洲欧美成人一区二区在线电影| 久久人体av| 俄罗斯av网站| 中文字幕亚洲不卡| 午夜视频福利在线| 成人做爰www免费看视频网站| 亚洲成人中文| 日韩成人短视频| 亚洲欧美成人在线| japanese色系久久精品| 冲田杏梨av在线| 午夜日韩在线电影| 久操免费在线| 日产国产精品精品a∨| 成人性生交大片免费看视频在线| 人妻中文字幕一区二区三区| 久久久亚洲精品视频| 99热国内精品|