午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁(yè) > 知識(shí)庫(kù) > Java操作MongoDB數(shù)據(jù)庫(kù)示例分享

Java操作MongoDB數(shù)據(jù)庫(kù)示例分享

熱門標(biāo)簽:智能電銷機(jī)器人銷售話術(shù) 企業(yè)智能外呼系統(tǒng)價(jià)格多少 高德地圖標(biāo)注商戶位置 福州電銷機(jī)器人源代碼 徐州ai電銷機(jī)器人原理 兗州電話外呼營(yíng)銷系統(tǒng) 機(jī)器人外呼系統(tǒng)軟件存在問題 南京400電話怎樣辦理 沈陽(yáng)營(yíng)銷電銷機(jī)器人招商

MongoDB是一個(gè)文檔型數(shù)據(jù)庫(kù),是NOSQL家族中最重要的成員之一,以下代碼封裝了MongoDB的基本操作。

MongoDBConfig.java

package com.posoftframework.mongodb;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import com.mongodb.DB;
import com.mongodb.Mongo;
/**
 * MongoDB配置類
 * 
 * @author yongtree
 * @date 2010-7-7 下午07:45:08
 * @version 1.0
 */
public class MongoDBConfig {
  private static Mongo mongo;
  private static DB db;
  private static final String MONGO_DB_ADDRESS = "localhost";
  private static final int MONGO_DB_PORT = 27017;
  private static final String MONGO_DB_USERNAME = "root";
  private static final String MONGO_DB_PASSWORD = "root";
  private static final String MONGO_DB_DBNAME = "mongodb";
  private static final String MONGO_DB_RESOURCE_FILE = "mongodb.cfg.properties";
  /**
   * Mongo數(shù)據(jù)庫(kù)參數(shù)
   */
  private static MapString, String> cfgMap = new HashMapString, String>();
  private static HashtableString, DB> mongoDBs = new HashtableString, DB>();
  /**
   * 初始化Mongo的數(shù)據(jù)庫(kù)
   */
  static {
    init();
  }
  public static File getConfigFile() {
    String path = MongoDBConfig.class.getResource("/").getPath();
    String fileName = path + MONGO_DB_RESOURCE_FILE;
    File file = new File(fileName);
    if (file.exists()) {
      return file;
    }
    return null;
  }
  @SuppressWarnings("unchecked")
  private static void initCfgMap() {
    File file = getConfigFile();
    if (file != null) {
      Properties p = new Properties();
      try {
        p.load(new FileInputStream(file));
        for (Enumeration enu = p.propertyNames(); enu.hasMoreElements();) {
          String key = (String) enu.nextElement();
          String value = (String) p.getProperty(key);
          cfgMap.put(key, value);
        }
      } catch (IOException e) {
        System.out.println("記載Mongo配置文件失敗!");
        e.printStackTrace();
      }
    } else {
      cfgMap.put("mongo.db.address", MONGO_DB_ADDRESS);
      cfgMap.put("mongo.db.port", String.valueOf(MONGO_DB_PORT));
      cfgMap.put("mongo.db.username", MONGO_DB_USERNAME);
      cfgMap.put("mongo.db.password", MONGO_DB_PASSWORD);
      cfgMap.put("mongo.db.dbname", MONGO_DB_DBNAME);
    }
  }
  /**
   * 初始化Mongo數(shù)據(jù)庫(kù)
   */
  private static void init() {
    initCfgMap();
    try {
      String address = cfgMap.get("mongo.db.address");
      int port = Integer.parseInt(cfgMap.get("mongo.db.port").toString());
      String dbName = cfgMap.get("mongo.db.dbname");
      String username = cfgMap.get("mongo.db.username");
      String password = cfgMap.get("mongo.db.password");
      mongo = new Mongo(address, port);
      if (dbName != null  !"".equals(dbName)) {
        db = mongo.getDB(dbName);
        if (username != null  !"".equals(username)) {
          db.addUser(username, password.toCharArray());
        }
        mongoDBs.put(dbName, db);
      }
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
  /**
   * 得到Mongo的實(shí)例
   * 
   * @return
   */
  public static Mongo getMongo() {
    return mongo;
  }
  /**
   * 得到Mongo的圖片數(shù)據(jù)庫(kù)
   * 
   * @return
   */
  public static DB getDB() {
    return db;
  }
  public static ListString> getDBNames() {
    return mongo.getDatabaseNames();
  }
  /**
   * 根據(jù)數(shù)據(jù)庫(kù)名稱,得到數(shù)據(jù)庫(kù)br/>
   * 如果不存在,則創(chuàng)建一個(gè)該名稱的數(shù)據(jù)庫(kù),并設(shè)置用戶名和密碼為配置文件中的參數(shù)值/br>
   * 
   * @param dbName
   * @return
   */
  public static DB getDBByName(String dbName) {
    DB db = mongo.getDB(dbName);
    if (!mongoDBs.contains(db)) {
      db.addUser(cfgMap.get("mongo.db.username"), cfgMap.get(
          "mongo.db.password").toCharArray());
      mongoDBs.put(dbName, db);
    }
    return db;
  }
}

MongoService.java

/************************* 版權(quán)聲明 *********************************
 *                                                               *
 *           版權(quán)所有:百洋軟件                                                    *
 *     Copyright (c) 2010 by www.po-soft.com                        *
 *                                                               *
 ************************* 變更記錄 *********************************
 *
 * 創(chuàng)建者:yongtree  創(chuàng)建日期: 2010-7-7
 * 備注:
 * 
 * 修改者:    修改日期:
 * 備注:
 * 
 */
package com.posoftframework.mongodb;
import java.util.List;
import java.util.Map;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
/**
 * 操作MongoDB的DAO接口
 * 
 * @author yongtree
 * @date 2010-7-7 下午04:44:43
 * @version 1.0
 */
public interface MongoService {
  public abstract DBCollection getCollection();
  /**
   * 根據(jù)數(shù)據(jù)集合的Map,插入數(shù)據(jù) map的key對(duì)應(yīng)數(shù)據(jù)庫(kù)中的DBCollection的key值
   * 
   * @param obj
   */
  public abstract DBObject insert(DBObject obj);
  /**
   * 根據(jù)ListMapString,Object>>結(jié)構(gòu)的數(shù)據(jù)集合,插入數(shù)據(jù)
   * 
   * @param list
   */
  public abstract void insertBatch(ListDBObject> list);
  /**
   * 按照條件參數(shù)集合map,刪除數(shù)據(jù)
   * 
   * @param map
   */
  public abstract void delete(DBObject obj);
  /**
   * 按照多種條件的并集,批量刪除數(shù)據(jù)
   * 
   * @param list
   */
  public abstract void deleteBatch(ListDBObject> list);
  /**
   * 得到Collection()總的記錄數(shù)
   * 
   * @return
   */
  public abstract long getCollectionCount();
  public abstract long getCount(DBObject query);
  public abstract ListDBObject> find(DBObject query);
  public abstract ListDBObject> find(DBObject query,DBObject sort);
  public abstract ListDBObject> find(DBObject query,DBObject sort,int start,int limit);
  /**
   * 根據(jù)whereFields參數(shù),更新setFields值
   * 
   * @param setFields
   * @param whereFields
   */
  public abstract void update(DBObject setFields,
      DBObject whereFields);
  public abstract ListDBObject> findAll();
  /**
   * 根據(jù)ID找到唯一數(shù)據(jù) 有1個(gè)id字段標(biāo)記
   * 
   * @param id
   * @return
   */
  public abstract DBObject getById(String id);
  /**
   * 獲取所有數(shù)據(jù)庫(kù)名稱
   * 
   * @return
   */
  public ListString> getAllDBNames();
  public abstract String getDbName();
  public abstract void setDbName(String dbName);
  public abstract DB getDb();
  public abstract String getCollName();
  public abstract void setCollName(String collName);
}

MongoServiceImpl.java

/************************* 版權(quán)聲明 *********************************
 *                                                               *
 *           版權(quán)所有:百洋軟件                                                    *
 *     Copyright (c) 2010 by www.po-soft.com                        *
 *                                                               *
 ************************* 變更記錄 *********************************
 *
 * 創(chuàng)建者:yongtree  創(chuàng)建日期: 2010-7-7
 * 備注:
 * 
 * 修改者:    修改日期:
 * 備注:
 * 
 */
package com.posoftframework.mongodb;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.bson.types.ObjectId;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
/**
 * 
 * @author yongtree
 * @date 2010-7-7 下午07:22:15
 * @version 1.0
 */
public class MongoServiceImpl implements MongoService {
  private String dbName;
  private String collName;
  private DB db;
  public MongoServiceImpl(String dbName, String collName) {
    this.dbName = dbName;
    this.collName = collName;
    try {
      db = MongoDBConfig.getDBByName(this.dbName);
    } catch (Throwable e) {
      e.printStackTrace();
    }
  }
  public MongoServiceImpl() {
    getDb();
  }
  public DBCollection getCollection() {
    return db.getCollection(this.collName);
  }
  public DBObject map2Obj(MapString, Object> map) {
    DBObject obj = new BasicDBObject();
    if (map.containsKey("class")  map.get("class") instanceof Class)
      map.remove("class");
    obj.putAll(map);
    return obj;
  }
  public DBObject insert(DBObject obj) {
    getCollection().insert(obj);
    return obj;
  }
  public void insertBatch(ListDBObject> list) {
    if (list == null || list.isEmpty()) {
      return;
    }
    ListDBObject> listDB = new ArrayListDBObject>();
    for (int i = 0; i  list.size(); i++) {
      listDB.add(list.get(i));
    }
    getCollection().insert(listDB);
  }
  public void delete(DBObject obj) {
    getCollection().remove(obj);
  }
  public void deleteBatch(ListDBObject> list) {
    if (list == null || list.isEmpty()) {
      return;
    }
    for (int i = 0; i  list.size(); i++) {
      getCollection().remove(list.get(i));
    }
  }
  public long getCollectionCount() {
    return getCollection().getCount();
  }
  public long getCount(DBObject obj) {
    if (obj != null)
      return getCollection().getCount(obj);
    return getCollectionCount();
  }
  public ListDBObject> find(DBObject obj) {
    DBCursor cur = getCollection().find(obj);
    return DBCursor2list(cur);
  }
  @Override
  public ListDBObject> find(DBObject query, DBObject sort) {
    DBCursor cur;
    if (query != null) {
      cur = getCollection().find(query);
    } else {
      cur = getCollection().find();
    }
    if (sort != null) {
      cur.sort(sort);
    }
    return DBCursor2list(cur);
  }
  @Override
  public ListDBObject> find(DBObject query, DBObject sort, int start,
      int limit) {
    DBCursor cur;
    if (query != null) {
      cur = getCollection().find(query);
    } else {
      cur = getCollection().find();
    }
    if (sort != null) {
      cur.sort(sort);
    }
    if (start == 0) {
      cur.batchSize(limit);
    } else {
      cur.skip(start).limit(limit);
    }
    return DBCursor2list(cur);
  }
  private ListDBObject> DBCursor2list(DBCursor cur) {
    ListDBObject> list = new ArrayListDBObject>();
    if (cur != null) {
      list = cur.toArray();
    }
    return list;
  }
  public void update(DBObject setFields, DBObject whereFields) {
    getCollection().updateMulti(setFields, whereFields);
  }
  public ListDBObject> findAll() {
    DBCursor cur = getCollection().find();
    ListDBObject> list = new ArrayListDBObject>();
    if (cur != null) {
      list = cur.toArray();
    }
    return list;
  }
  public DBObject getById(String id) {
    DBObject obj = new BasicDBObject();
    obj.put("_id", new ObjectId(id));
    DBObject result = getCollection().findOne(obj);
    return result;
  }
  public String getDbName() {
    return dbName;
  }
  public void setDbName(String dbName) {
    this.dbName = dbName;
    this.db = MongoDBConfig.getDBByName(this.dbName);
  }
  public String getCollName() {
    return collName;
  }
  public void setCollName(String collName) {
    this.collName = collName;
  }
  public DB getDb() {
    if (this.db == null) {
      if (this.dbName == null) {
        this.db = MongoDBConfig.getDB();
      } else {
        this.db = MongoDBConfig.getDBByName(this.dbName);
      }
    }
    return this.db;
  }
  public ListString> getAllDBNames() {
    return MongoDBConfig.getDBNames();
  }
}

您可能感興趣的文章:
  • Java的idea連接mongodb數(shù)據(jù)庫(kù)的詳細(xì)教程
  • Java操作MongoDB數(shù)據(jù)庫(kù)方法詳解
  • Java單例模式下的MongoDB數(shù)據(jù)庫(kù)操作工具類
  • Java操作Mongodb數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)的增刪查改功能示例
  • 【MongoDB for Java】Java操作MongoDB數(shù)據(jù)庫(kù)
  • java實(shí)現(xiàn)mongodb的數(shù)據(jù)庫(kù)連接池
  • Java操作MongoDB數(shù)據(jù)庫(kù)的示例代碼

標(biāo)簽:鶴崗 丹東 邯鄲 本溪 景德鎮(zhèn) 昭通 大理 吉安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Java操作MongoDB數(shù)據(jù)庫(kù)示例分享》,本文關(guān)鍵詞  Java,操作,MongoDB,數(shù)據(jù)庫(kù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Java操作MongoDB數(shù)據(jù)庫(kù)示例分享》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Java操作MongoDB數(shù)據(jù)庫(kù)示例分享的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    蜜桃av色综合| 亚洲美女区一区| 精品欧美日韩| 97人人爽人人爽人人爽| 日韩中文字幕免费视频| 永久免费观看片现看| 国产日产欧美一区| 欧美一区深夜视频| 国产麻豆xxxvideo实拍| 99riav一区二区三区| 一本大道东京热无码aⅴ| 国产婷婷色一区二区三区在线| 日韩视频在线免费播放| 国产精品丝袜久久久久久app| 日韩在线不卡一区| 日韩视频免费在线观看| 国产不卡在线播放| 国产大片一区二区三区| 欧美成人亚洲成人日韩成人| 国产美女精品视频国产| 亚洲在线www| 91丨porny丨在线中文 | 中文资源在线播放| 欧美高清一级片在线| 大桥未久一区二区三区| 亚洲自拍欧美精品| av免费一区二区| 午夜视频一区二区三区| 日本黄色录像片| 久热99视频在线观看| 日韩电影在线一区二区三区| 男人亚洲天堂网| 中文字幕不卡在线视频极品| 精品在线你懂的| 欧美一级片中文字幕| 欧美蜜桃一区二区三区| a级黄色免费视频| 最近2019中文免费高清视频观看www99 | 一区二区三区在线播放| 国产麻豆一区二区三区在线观看| 国产又粗又黄又爽| 日日夜夜精品网站| 国产精品资源在线观看| 中文字幕一区二区三区四区五区| 一区二区久久久| 国产精品无码av无码| 欧美军同video69gay| 六月婷婷七月丁香| 欧美一区二区三区在线观看| 公肉吊粗大爽色翁浪妇视频| 欧美成人一二三| 欧美日韩综合一区二区三区| 日韩视频免费观看高清完整版| 亚洲精品乱码久久久久久自慰| 懂色av中文一区二区三区| 成人黄色av片| 色综合久久天天综合网| 人妻丰满熟妇av无码久久洗澡| 亚洲情综合五月天| 黑人精品欧美一区二区蜜桃 | 久久久国产精品久久久| 中文字幕亚洲一区二区三区五十路| 国产麻豆欧美日韩一区| 91无套直看片红桃在线观看| 国产精品丝袜视频| 国产欧美日韩久久| 三日本三级少妇三级99| 日韩成人av在线| 欧美性受xxx黑人xyx性爽| 午夜视频久久久| 老司机免费视频一区二区三区| 国产精品女人久久久久久| 成人免费一区二区三区| 欧美成人免费观看| 国产自产视频一区二区三区| 国产精品久久国产| 精品久久久国产| 少妇高潮喷水在线观看| 国产视频一区在线| 久久精品日产第一区二区三区高清版 | 久久色在线播放| 99免费精品在线| 亚洲第一天堂久久| 亚洲欧美日韩一区二区三区在线| 日本免费观看视| 国产精品乱子乱xxxx| 色婷婷一区二区| 欧美精品xxxxx| 亚洲人在线视频| 国产网址在线观看| 久久香蕉国产线看观看网| 国产免费高清视频| 欧美三级一级片| 91精品国产欧美一区二区成人 | 国产无套内射又大又猛又粗又爽| 亚洲精美视频| 久久久999成人| 亚洲精品国产第一综合99久久| 久久综合网络一区二区| 日本一区二区免费高清视频| 日本欧美精品在线| 午夜伦理一区二区| 亚洲成人av网址| 青青草综合在线| 欧美日韩国产首页在线观看| 日本中文字幕久久| 丰满爆乳一区二区三区| 欧美性大战久久| 欧洲美一区二区三区亚洲| 亚洲欧美日韩视频一区| 成年人午夜视频| 国产亚洲二区| 欧美午夜影院一区| 18国产免费视频| 日韩中文字幕在线不卡| 精品久久国产老人久久综合| 国产精品久久毛片av大全日韩| 丝瓜av网站精品一区二区| 日本黄区免费视频观看| 一本大道东京热无码aⅴ| 欧美在线视频免费| 欧美日韩欧美一区二区| 日本sm残虐另类| 最新版天堂资源在线| 午夜精品视频网站| 久久久噜噜噜久久中文字幕色伊伊| 免费看毛片的网站| 99一区二区| 国产精品美日韩| 午夜免费看视频| 日韩高清人体午夜| 国产精品欧美亚洲| 日韩亚洲不卡在线| 久久久精品美女| 亚洲一区在线电影| 乳色吐息在线观看| 国产精品青青草| 亚洲女人被黑人巨大进入| 亚洲欧美日韩一区二区| 丝袜诱惑制服诱惑色一区在线观看| 99热只有这里有精品| 国产xxxx视频| 麻豆视频传媒入口| 日韩av成人在线| 日韩欧美在线网址| 日本成人超碰在线观看| 亚洲午夜久久久久久久久| 国产精品久久国产精品| 欧美精品在线一区二区三区| 激情五月激情综合网| 中国特级黄色片| 中文字幕9999| 日韩电影在线观看网站| 男人靠女人免费视频网站| 亚洲女人初尝黑人巨大| 久久久久久久网| 99久在线精品99re8热| 91午夜在线播放| 国产精品三级av| 国产又粗又猛又爽| 黑人巨大精品一区二区在线| 中国av免费看| 欧美牲交a欧美牲交aⅴ免费真| 亚洲国产精品激情在线观看 | 欧美另类高清视频在线| 欧美日韩成人在线观看| 一区二区三区四区亚洲| 污污网站免费在线观看| 国产精品伦子伦| 日韩精品久久久免费观看| 麻豆乱码国产一区二区三区 | 成人白浆超碰人人人人| 中文字幕国产专区| 天天干天天操天天做| 一区二区精品在线| 性欧美长视频免费观看不卡| 欧美精品久久99久久在免费线| 91毛片在线观看| 国产+高潮+白浆+无码| 国产欧美中文字幕| 日韩欧美黄色影院| 亚洲你懂的在线视频| 91女厕偷拍女厕偷拍高清| 国产在线不卡一卡二卡三卡四卡| 老司机精品视频网站| 久久一区激情| av片免费播放| 又骚又黄的视频| 青青草成人av| 91成人在线观看喷潮蘑菇| 亚洲国产精品久久久久婷婷老年| 久久久久免费精品国产| 欧美日韩精品二区第二页| 久久久久久99久久久精品网站| 91精品国产乱码久久久久| xxxx日本免费| 日韩欧美激情在线| 圆产精品久久久久久久久久久 | 精品欧美一区二区三区久久久| 亚洲高清久久网| 香蕉影视欧美成人| 国产麻豆91精品| 国产一卡二卡在线| 香港三日本8a三级少妇三级99| 在线视频91| 日韩在线观看电影完整版高清免费| 免费h精品视频在线播放| 久久亚洲高清| 国产精品久久波多野结衣| 97视频资源在线观看| 91欧美精品午夜性色福利在线| 成人免费福利视频| 国产福利精品av综合导导航| 国产小视频国产精品| 亚洲h在线观看| 99视频精品免费视频| 国产亚洲第一区| 欧美大片va欧美在线播放| 精品欧美乱码久久久久久| 波多野结衣在线一区| 一级片一级片一级片| 日本久久久网站| 日本免费久久高清视频| 精品久久久久久久久久国产 | 国产自产高清不卡| 中文无码精品一区二区三区| 在线免费观看成年人视频| www.com黄色片| 久久www免费人成精品| 亚洲欧美日韩一区二区在线| 91精品福利在线| 91成人免费电影| 欧美午夜精品电影| 亚洲第一av色| 国产精品素人视频| 国产精品视频一二三区 | 久久激情综合| 偷拍女澡堂一区二区三区| 欧美性猛交xxxx乱大交91| 欧美性久久久久| 97成人在线视频| 色婷婷综合久久久中文一区二区 | 99国产在线观看| 这里只有精品在线播放| 亚洲欧美色一区| 秋霞国产午夜精品免费视频| 国产一区二区播放| 亚洲国产成人va在线观看麻豆| 国产精品久久波多野结衣| 国产香蕉精品视频一区二区三区| 亚洲精品你懂的| 久久精品一区二区三区中文字幕| 国产在线观看免费视频今夜| 26uuu国产| 日韩精品av一区二区三区| 国产aⅴ夜夜欢一区二区三区| 在线观看亚洲专区| 91理论电影在线观看| 媚黑女一区二区| 久久久精品毛片| 色屁屁草草影院ccyy.com| 国产美女三级视频| 国产一区二区视频在线免费观看| 欧美激情第三页| 精品一区电影国产| 欧美日韩一区二区三区四区| 国产网红主播福利一区二区| 蜜桃av一区二区| 国产乱码精品一区二区三区精东 | 日本少妇xxxx软件| 日韩在线综合网| 亚洲精品一品区二品区三品区| 国产精品视频yy9099| 草民午夜欧美限制a级福利片| 欧美一二三在线| 亚洲乱码国产乱码精品精的特点| 91香蕉视频黄| 老司机午夜精品| 国产精品九九九九| 天堂网一区二区三区| chinese全程对白| 精品人妻一区二区三区日产乱码卜| 激情内射人妻1区2区3区| 日韩三级电影| 亚洲最大av网| 国产精品久久久久免费a∨大胸| 日韩最新在线视频| 欧美精品一区二区久久婷婷 | 91久久久一线二线三线品牌| 国产日韩欧美中文| 热99精品里视频精品| 欧美成人精品xxx| 久久精品人人爽| 日日摸夜夜添一区| 亚洲精品国产美女| 亚洲第一精品福利| 精品免费一区二区三区| 欧美人xxxx| 欧美一区二区三区电影| 日韩亚洲欧美中文三级| 欧美一级二级三级蜜桃| 欧美一区二区三区播放老司机| 777xxx欧美| 欧美日韩久久久| 欧美曰成人黄网| 欧美视频在线一区| 色美美综合视频| 精品成人av一区| 在线视频国内自拍亚洲视频| 欧美三级电影精品| 日韩一区二区三区四区五区六区| 欧美综合在线视频| 欧美一区二区在线看| 日韩三级视频在线观看| 精品国产免费一区二区三区四区| 亚洲国产日韩欧美在线99| 精品国产免费视频| 亚洲欧洲国产精品| 精品亚洲一区二区三区| 日韩亚洲第一页| 欧美多人乱p欧美4p久久| 51ⅴ精品国产91久久久久久| 国产精品99一区| 国产日韩在线一区| 久久国产精品精品国产色婷婷| 久久涩涩网站| 4444亚洲人成无码网在线观看| 亚欧无线一线二线三线区别| www.色偷偷.com| 久久久老熟女一区二区三区91| 欧美双性人妖o0| 99热在线观看精品| 波多野结衣视频观看| 欧美一级性视频| 国产成人综合亚洲91猫咪| 99精品一区二区三区| 国产欧美日韩不卡| 欧美性xxxx极品hd满灌| 欧美精品1区2区| 日韩高清免费观看| 欧美福利小视频| 国产精品第2页| 亚洲精品乱码视频| 天堂av在线网站| 日韩一级av毛片| 精品美女久久久久| 人妻精品无码一区二区| 另类中文字幕网| 国产喂奶挤奶一区二区三区| 国产精品的网站| 色婷婷久久久综合中文字幕| 日韩av在线网址| 欧美激情视频一区二区| 欧美与欧洲交xxxx免费观看| 成人精品视频久久久久| 色女人综合av| 日韩中文字幕在线不卡| 少妇丰满尤物大尺度写真| 欧美日韩免费做爰视频| 在线免费av网| 国产精品一区二区在线观看网站 | 黄色一级片免费播放| www.av成人| 国产精品自产拍| caoporen国产精品视频| 一区二区三区四区国产精品| 欧美xfplay| 国产精品久久久久久亚洲调教| 久久久福利视频| 91看片破解版| 99视频在线看| 久久99久久精品| 国产拍欧美日韩视频二区| 日韩美一区二区三区| 91禁外国网站| 中文字幕日韩精品久久| 免费不卡av网站| 亚洲一区二区三区高清视频| 国v精品久久久网| 欧美三电影在线| 2020久久国产精品| 午夜啪啪福利视频| 黄色网址在线视频| 亚洲天堂手机版| 2019国产精品| 日韩亚洲欧美在线| 国产精品久久久久久久天堂| 天堂av在线中文| 中文字幕伦理片| 狠狠躁夜夜躁av无码中文幕| 综合精品久久久| 色妞一区二区三区| 日韩在线导航| 无码人妻精品一区二区三应用大全| 国产精品福利电影| 国产欧美日产一区| 亚洲欧美日韩中文视频| 波多野结衣久草一区| 99国产精品免费视频| 精品人妻一区二区三区浪潮在线 | 九九视频精品免费| 色综合久久99| 九九精品视频在线观看| 无颜之月在线看| 色偷偷www8888| 成人黄色在线看| 亚洲成色777777在线观看影院| 久久国产精品亚洲va麻豆| 香港三日本8a三级少妇三级99| 久久久人人人|