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

使用 Springboot + Neo4j 實(shí)現(xiàn)知識(shí)圖譜功能開(kāi)發(fā)

開(kāi)發(fā) 前端
本次架構(gòu)方案通過(guò)整合 Springboot 和 Neo4j,實(shí)現(xiàn)了一套包含人員創(chuàng)建、朋友關(guān)系管理以及知識(shí)圖譜查看的功能系統(tǒng)。在實(shí)現(xiàn)過(guò)程中,充分考慮了功能的完整性、性能優(yōu)化以及用戶體驗(yàn)等方面。

Neo4j 框架介紹和特性

Neo4j 是一個(gè)高性能的、開(kāi)源的圖數(shù)據(jù)庫(kù)。它將數(shù)據(jù)存儲(chǔ)為圖結(jié)構(gòu),其中節(jié)點(diǎn)表示實(shí)體,邊表示實(shí)體之間的關(guān)系。這種圖數(shù)據(jù)模型非常適合處理復(fù)雜的關(guān)系型數(shù)據(jù),能夠高效地進(jìn)行關(guān)系查詢和遍歷。

Neo4j 的主要特性包括:

  1. 強(qiáng)大的圖查詢語(yǔ)言 Cypher:Cypher 是一種專門(mén)為 Neo4j 設(shè)計(jì)的聲明式查詢語(yǔ)言,使得查詢和操作圖數(shù)據(jù)變得直觀和高效。

Cypher 語(yǔ)言常用操作基本使用說(shuō)明:

創(chuàng)建節(jié)點(diǎn):

CREATE (n:Person {name: 'Alice', age: 30})

上述語(yǔ)句創(chuàng)建了一個(gè)名為"Alice",年齡為 30 歲的"Person"類型的節(jié)點(diǎn)。

創(chuàng)建關(guān)系:

MATCH (a:Person {name: 'Alice'}), (b:Person {name: 'Bob'})
CREATE (a)-[r:FRIEND {since: '2023'}]->(b)

此語(yǔ)句在"Alice"和"Bob"節(jié)點(diǎn)之間創(chuàng)建了名為"FRIEND",建立時(shí)間為"2023"的關(guān)系。

查詢節(jié)點(diǎn):

MATCH (n:Person) RETURN n

返回所有"Person"類型的節(jié)點(diǎn)。

查詢具有特定屬性的節(jié)點(diǎn):

MATCH (n:Person {age: 30}) RETURN n

查找年齡為 30 歲的"Person"節(jié)點(diǎn)。

更新節(jié)點(diǎn)屬性:

MATCH (n:Person {name: 'Alice'})
SET n.age = 31
RETURN n

將"Alice"節(jié)點(diǎn)的年齡更新為 31 歲。

刪除節(jié)點(diǎn)或關(guān)系:

MATCH (n:Person {name: 'Alice'})
DELETE n

刪除"Alice"節(jié)點(diǎn)。

MATCH (a:Person {name: 'Alice'})-[r:FRIEND]->(b:Person {name: 'Bob'})
DELETE r

刪除"Alice"和"Bob"之間的"FRIEND"關(guān)系。

按照條件篩選和排序結(jié)果:

MATCH (n:Person)
WHERE n.age > 20
RETURN n.name, n.age
ORDER BY n.age DESC

查找年齡大于 20 歲的"Person"節(jié)點(diǎn),并按照年齡降序排列返回其姓名和年齡。

使用聚合函數(shù):

MATCH (n:Person)
RETURN COUNT(n) AS personCount

計(jì)算"Person"節(jié)點(diǎn)的數(shù)量。

路徑查詢:

MATCH p = (a:Person {name: 'Alice'})-[*1..3]->(b:Person {name: 'Bob'})
RETURN p

查找從"Alice"到"Bob"最多經(jīng)過(guò) 3 步的路徑。

關(guān)聯(lián)查詢:

MATCH (a:Person)-[r:FRIEND]->(b:Person)
WHERE a.name = 'Alice' AND b.age > 25
RETURN b

查找"Alice"的朋友中年齡大于 25 歲的人。

系統(tǒng)安裝及基本使用說(shuō)明

(一)使用 Docker 安裝 Neo4j

  1. 拉取 Neo4j 的 Docker 鏡像:docker pull neo4j
  2. 啟動(dòng) Neo4j 容器:docker run -d -p 7474:7474 -p 7687:7687 --name neo4j neo4j

(二)啟動(dòng) Neo4j 服務(wù)

(三)基本使用

  1. 訪問(wèn) Neo4j 瀏覽器界面,通常在 http://localhost:7474/ 。
  2. 使用 Cypher 語(yǔ)言創(chuàng)建節(jié)點(diǎn)、關(guān)系和進(jìn)行查詢操作。

項(xiàng)目依賴配置(pom.xml)

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-neo4j</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- 其他必要的依賴 -->
</dependencies>

YAML 屬性文件配置(application.yml)

spring:
  data:
    neo4j:
      uri: bolt://localhost:7687
      username: your_username
      password: your_password

代碼示例

實(shí)體類

import org.neo4j.ogm.annotation.GeneratedValue;
import org.neo4j.ogm.annotation.Id;
import org.neo4j.ogm.annotation.NodeEntity;

@NodeEntity
public class Person {

    @Id
    @GeneratedValue
    private Long id;

    private String name;

    // 新增:朋友列表
    private List<Person> friends;

    // 構(gòu)造函數(shù)、getter 和 setter 方法
}

數(shù)據(jù)訪問(wèn)層

import org.springframework.data.neo4j.repository.Neo4jRepository;

public interface PersonRepository extends Neo4jRepository<Person, Long> {

    // 新增:根據(jù)用戶名查找用戶及其朋友
    Person findByNameAndFetchFriends(String name);

    // 新增:獲取知識(shí)圖譜的方法
    List<Person> getKnowledgeGraph();
}

服務(wù)層

import org.springframework.stereotype.Service;

@Service
public class PersonService {

    private final PersonRepository personRepository;

    public PersonService(PersonRepository personRepository) {
        this.personRepository = personRepository;
    }

    public void savePerson(Person person) {
        personRepository.save(person);
    }

    // 新增:添加朋友關(guān)系
    public void addFriendship(String personName1, String personName2) {
        Person person1 = personRepository.findByNameAndFetchFriends(personName1);
        Person person2 = personRepository.findByNameAndFetchFriends(personName2);
        person1.getFriends().add(person2);
        person2.getFriends().add(person1);
        personRepository.save(person1);
        personRepository.save(person2);
    }

    // 新增:獲取用戶的朋友列表
    public List<Person> getFriends(String personName) {
        Person person = personRepository.findByNameAndFetchFriends(personName);
        return person.getFriends();
    }

    // 新增:獲取知識(shí)圖譜
    public List<Person> getKnowledgeGraph() {
        return personRepository.getKnowledgeGraph();
    }
}

控制器層

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class PersonController {

    private final PersonService personService;

    public PersonController(PersonService personService) {
        this.personService = personService;
    }

    @PostMapping("/persons")
    public void createPerson(@RequestBody Person person) {
        personService.savePerson(person);
    }

    // 新增:添加朋友關(guān)系的接口
    @PostMapping("/addFriendship")
    public void addFriendship(@RequestBody AddFriendshipRequest request) {
        personService.addFriendship(request.getPersonName1(), request.getPersonName2());
    }

    // 新增:獲取用戶朋友列表的接口
    @GetMapping("/friends/{personName}")
    public List<Person> getFriends(@PathVariable String personName) {
        return personService.getFriends(personName);
    }

    // 新增:查看知識(shí)圖譜的接口
    @GetMapping("/knowledgeGraph")
    public List<Person> getKnowledgeGraph() {
        return personService.getKnowledgeGraph();
    }

    // 新增:添加朋友關(guān)系的請(qǐng)求類
    static class AddFriendshipRequest {
        private String personName1;
        private String personName2;

        public String getPersonName1() {
            return personName1;
        }

        public void setPersonName1(String personName1) {
            this.personName1 = personName1;
        }

        public String getPersonName2() {
            return personName2;
        }

        public void setPersonName2(String personName2) {
            this.personName2 = personName2;
        }
    }
}

前端代碼(使用 Vue.js 示例)

<template>
  <div>
    <input v-model="newPerson.name" placeholder="輸入人員姓名" />
    <button @click="createPerson">創(chuàng)建人員</button>

    <input v-model="personName1" placeholder="輸入第一個(gè)人員姓名" />
    <input v-model="personName2" placeholder="輸入第二個(gè)人員姓名" />
    <button @click="addFriendship">添加朋友關(guān)系</button>

    <input v-model="personNameForFriends" placeholder="輸入要查看朋友的人員姓名" />
    <button @click="getFriends">獲取朋友列表</button>

    <button @click="getKnowledgeGraph">查看知識(shí)圖譜</button>

    <ul v-if="knowledgeGraph.length > 0">
      <li v-for="person in knowledgeGraph" :key="person.name">{{ person.name }}</li>
    </ul>

    <ul v-if="friends.length > 0">
      <li v-for="friend in friends" :key="friend.name">{{ friend.name }}</li>
    </ul>
  </div>
</template>

<script>
import axios from 'axios';

export default {
  data() {
    return {
      newPerson: {
        name: ''
      },
      personName1: '',
      personName2: '',
      personNameForFriends: '',
      knowledgeGraph: [],
      friends: []
    };
  },
  methods: {
    createPerson() {
      axios.post('/persons', this.newPerson)
    .then(response => {
          console.log(response.data);
      })
   .catch(error => {
          console.error(error);
      });
    },
    addFriendship() {
      axios.post('/addFriendship', {
        personName1: this.personName1,
        personName2: this.personName2
      })
   .then(response => {
          console.log(response.data);
      })
   .catch(error => {
          console.error(error);
      });
    },
    getFriends() {
      axios.get(`/friends/${this.personNameForFriends}`)
   .then(response => {
          this.friends = response.data;
      })
   .catch(error => {
          console.error(error);
      });
    },
    getKnowledgeGraph() {
      axios.get('/knowledgeGraph')
   .then(response => {
          this.knowledgeGraph = response.data;
      })
   .catch(error => {
          console.error(error);
      });
    }
  }
}
</script>

總結(jié):

本次架構(gòu)方案通過(guò)整合 Springboot 和 Neo4j,實(shí)現(xiàn)了一套包含人員創(chuàng)建、朋友關(guān)系管理以及知識(shí)圖譜查看的功能系統(tǒng)。在實(shí)現(xiàn)過(guò)程中,充分考慮了功能的完整性、性能優(yōu)化以及用戶體驗(yàn)等方面。但在實(shí)際應(yīng)用中,仍需根據(jù)具體業(yè)務(wù)需求和數(shù)據(jù)規(guī)模進(jìn)行進(jìn)一步的調(diào)整和優(yōu)化,以確保系統(tǒng)的穩(wěn)定和高效運(yùn)行。

責(zé)任編輯:武曉燕 來(lái)源: 路條編程
相關(guān)推薦

2018-05-16 08:26:39

知識(shí)圖譜Neo4j

2024-06-03 10:53:18

LLMRAGGraphRAG

2025-10-09 00:00:00

Neo4jLLMs結(jié)構(gòu)化

2025-07-21 09:23:13

2025-07-18 08:15:55

2022-11-18 17:53:03

Neo4j

2021-12-27 07:31:37

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

2017-07-28 15:12:28

Neo4j圖數(shù)據(jù)庫(kù)

2021-01-19 10:52:15

知識(shí)圖譜

2025-04-27 00:10:00

AI人工智能知識(shí)圖譜

2017-03-06 16:48:56

知識(shí)圖譜構(gòu)建存儲(chǔ)

2022-04-13 11:32:45

Neo4j圖數(shù)據(jù)庫(kù)

2021-01-25 10:36:32

知識(shí)圖譜人工智能

2021-12-03 20:33:08

計(jì)算

2023-08-22 15:34:01

Python開(kāi)發(fā)

2025-06-06 01:00:00

AI人工智能知識(shí)圖譜

2024-06-03 07:28:43

2024-10-07 08:49:25

2011-07-26 12:48:52

neo4j圖數(shù)據(jù)庫(kù)

2015-09-28 08:57:06

Ruby APPNeo4j
點(diǎn)贊
收藏

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

国产精品第一国产精品| 精品在线播放视频| 亚洲高清国产拍精品26u| 国产精品久久久久久亚洲毛片| 国产欧美精品一区二区三区介绍| 91传媒免费观看| 亚洲国产欧美国产第一区| 亚洲成人免费在线| 水蜜桃亚洲精品| 精品国产亚洲av麻豆| 免费永久网站黄欧美| 日韩在线观看网址| 日批在线观看视频| 成人精品动漫| 午夜日韩在线电影| 日本不卡一区二区三区四区| 头脑特工队2在线播放| 开心九九激情九九欧美日韩精美视频电影 | 一区二区三区视频免费| 欧美一区二区三区影院| 精品视频一区二区三区四区五区| 亚洲一区二区三区中文字幕 | 国产手机在线视频| 91精品网站在线观看| 精品久久久久久久久久久久久 | 日韩欧美精品中文字幕| 穿情趣内衣被c到高潮视频| 黄色毛片在线观看| 不卡欧美aaaaa| 日本一区二区动态图| 亚洲福利一区二区| 在线国产伦理一区| 精品av中文字幕在线毛片| 国产精品456露脸| 国产精品久久久久久久久免费看| 免费看日韩毛片| 欧美性久久久| 精品中文字幕乱| 成人黄色短视频| 国产精品免费不| 精品亚洲男同gayvideo网站| 在线播放av网址| 亚洲无线观看| 日韩欧美一二三四区| 天天干天天操天天做| 成人网ww555视频免费看| 日韩欧美视频一区二区三区| 欧美老熟妇喷水| sm捆绑调教国产免费网站在线观看| 亚洲精品老司机| 欧美一级片免费观看| 青青青草网站免费视频在线观看| 波多野结衣中文一区| 国产成人女人毛片视频在线| 91在线观看喷潮| √天堂8资源中文在线| 先锋影音国产精品| 欧美成人伊人久久综合网| 超碰91在线播放| 免费看日产一区二区三区| 欧美高清视频不卡网| 五月天丁香花婷婷| 国产一区二区三区亚洲综合| 欧美一区二视频| 深夜做爰性大片蜜桃| 视频一区日韩精品| 精品成人佐山爱一区二区| 91丨porny丨对白| 亚洲裸色大胆大尺寸艺术写真| 日韩精品在线免费播放| 免费看污片网站| 日韩毛片视频| 久久91精品国产| 国产大片中文字幕在线观看| 在线一区视频| 青青草成人在线| 国产精品久久国产精品99gif| 400部精品国偷自产在线观看| 91精品久久| 亚洲最色的网站| 蜜桃视频一区二区在线观看| av女在线播放| 日本久久一区二区| 91女神在线观看| 日韩精品一区国产| 亚洲国模精品一区| 四虎永久免费影院| 色综合天天综合网中文字幕| 久久精品美女视频网站| 久草中文在线视频| 免费精品视频| 国产一区视频在线播放| 亚洲精品国产精| 久久久亚洲高清| 偷拍盗摄高潮叫床对白清晰| av在线加勒比| 欧美日韩国产乱码电影| 图片区偷拍区小说区| 美女少妇全过程你懂的久久| 久久精品国亚洲| www.国产高清| 国产一区二区在线免费观看| 精品午夜一区二区三区| av播放在线观看| 午夜亚洲福利老司机| 亚洲36d大奶网| 精品三级在线观看视频| 日韩少妇与小伙激情| 国产 欧美 日韩 在线| 国内一区二区在线| 欧美精品v日韩精品v国产精品| 理论片午午伦夜理片在线播放| 欧美日韩性生活视频| 五月天视频在线观看| 精品一区毛片| 久久人91精品久久久久久不卡| 亚洲AV无码成人精品区东京热 | 欧美精品久久久久久久久25p| 亚洲国产aⅴ精品一区二区| 国产一区二区美女视频| 国产奶水涨喷在线播放| 精品一区二区三区久久| 日韩精品一区二区三区四区五区| 丁香花高清在线观看完整版| 欧美丰满高潮xxxx喷水动漫| 精品无码国产污污污免费网站| 欧美三级在线| 91麻豆国产精品| 成年人视频网站在线| 粉嫩老牛aⅴ一区二区三区| 免费黄视频在线观看| 91综合久久一区二区| 国产精品jizz在线观看麻豆| 天天射天天色天天干| 夜夜嗨av一区二区三区中文字幕| 亚洲欧美日本一区二区三区| 精品一区二区三区在线| 日本精品中文字幕| 亚洲日本香蕉视频| 亚洲成人av免费| 亚洲最大视频网| 欧美日本中文| 5566中文字幕一区二区| a天堂中文在线官网在线| 欧美日韩日日夜夜| 中国美女黄色一级片| 蜜桃91丨九色丨蝌蚪91桃色| 日韩一区国产在线观看| 电影亚洲一区| 中文字幕日本欧美| 中文字幕在线观看1| 国产精品无人区| 成人性生交免费看| 日韩亚洲一区在线| 成人激情春色网| 好了av在线| 日韩一区二区视频| 免费在线一级片| 大胆亚洲人体视频| 亚洲美免无码中文字幕在线| 天美av一区二区三区久久| 91po在线观看91精品国产性色| 三区在线观看| 91成人在线精品| 99在线视频免费| 久久国产精品一区二区| 最新av网址在线观看| 91精品入口| 2019国产精品自在线拍国产不卡| 日本国产在线| 精品污污网站免费看| 熟女av一区二区| 国产白丝精品91爽爽久久| www.av毛片| 国产va免费精品观看精品视频 | 久久精品国产sm调教网站演员| 久9re热视频这里只有精品| 欧美在线视频观看| eeuss影院www在线播放| 91精品国产综合久久婷婷香蕉| 麻豆亚洲av熟女国产一区二| 91免费版在线| 中文字幕22页| 国产精品久久久久毛片大屁完整版| 青青成人在线| 国产一区二区三区| 91精品国产高清| a黄色在线观看| 日韩一区二区麻豆国产| 亚洲黄色小说图片| 国产精品国产精品国产专区不蜜| 一级黄色免费毛片| 媚黑女一区二区| 今天免费高清在线观看国语| 亚洲va久久久噜噜噜久久| 国产一区二区三区视频 | 精品99在线视频| 精品国产一区探花在线观看| 91欧美精品成人综合在线观看| 888av在线视频| 日韩在线视频免费观看高清中文| www.xxxx国产| 欧美亚洲国产一区二区三区va| 久久久久国产精品夜夜夜夜夜| 久久久久久久久久久久久夜| 麻豆精品国产传媒| 日本aⅴ亚洲精品中文乱码| 欧洲精品在线播放| 欧美mv日韩| 欧美成熟毛茸茸复古| 亚洲精品黑牛一区二区三区| 国产精品第七十二页| av电影在线免费| 久久精品久久久久久| 久久视频www| 精品不卡在线视频| 国产免费黄色片| 在线观看亚洲精品视频| 国产精品久久久免费视频| 亚洲精品成人精品456| 日本一区二区视频在线播放| 99精品1区2区| 91黄在线观看| 日韩激情久久| 中文字幕精品无码一区二区| 国产精品久久影院| 中文字幕高清视频| 成人精品一区二区三区四区 | 丁香花在线高清完整版视频 | 欧美少妇网站| 久久久久久999| www视频在线免费观看| 上原亚衣av一区二区三区| 久久综合九色综合久| 精品视频久久久久久| 国精产品乱码一区一区三区四区| 日韩欧美资源站| 在线不卡免费视频| 欧美性做爰猛烈叫床潮| 亚洲综合久久网| 色综合久久久久综合99| 国产农村妇女aaaaa视频| 亚洲成av人片在线观看无码| 久久久久久免费观看| 亚洲激情av在线| 欧美日韩在线国产| 一区二区三区免费在线观看| 青春草免费视频| 夜夜精品视频一区二区| 久草视频免费在线播放| 亚洲一区在线看| 精品无码一区二区三区电影桃花| 一区二区三区免费在线观看| 亚洲国产精品午夜在线观看| 午夜精品久久久久久久| 国产美女激情视频| 日本精品一级二级| 中文字幕乱码在线观看| 欧美日韩国产片| 亚洲国产精品视频在线| 精品日韩在线观看| 无码精品视频一区二区三区| 亚洲美女精品成人在线视频| 国产日产精品久久久久久婷婷| 国产一区二区三区在线视频| av基地在线| 蜜臀久久99精品久久久久久宅男| 国产乱妇乱子在线播视频播放网站| 久久久免费高清电视剧观看| 中文在线资源| 国产美女91呻吟求| 视频一区日韩| 欧美成人综合一区| 国产精品久久天天影视| 激情成人开心网| 免费在线成人| 色免费在线视频| 国产 日韩 欧美大片| 性色av蜜臀av色欲av| 欧美激情一区二区三区不卡| 久草视频手机在线| 亚洲超碰97人人做人人爱| 无码人妻一区二区三区线| 欧美一区二区三区视频免费| 日本韩国免费观看| 中文字幕亚洲欧美日韩2019| 丝袜综合欧美| 4p变态网欧美系列| 亚洲成人1区| 国产精品手机视频| 欧美日韩老妇| 欧美一级视频在线播放| 日韩极品在线观看| 三上悠亚 电影| 国产亚洲欧美一区在线观看| 丝袜 亚洲 另类 欧美 重口| 色呦呦日韩精品| 国产黄色片网站| 伊人久久精品视频| √8天堂资源地址中文在线| 国产美女搞久久| 另类ts人妖一区二区三区| 亚洲春色在线| 亚洲美女网站| 欧美国产日韩在线视频| 国产亚洲成aⅴ人片在线观看 | 欧美午夜www高清视频| 国产精品伊人久久| 国产亚洲欧洲高清一区| 91制片在线观看| 成人国产亚洲精品a区天堂华泰| 亚洲国产合集| 台湾无码一区二区| 精品一区二区免费看| 天天躁日日躁aaaxxⅹ| 亚洲综合一区在线| 91禁在线观看| 伊人久久男人天堂| 性欧美又大又长又硬| 国产精品国模大尺度私拍| 天天天综合网| 我要看一级黄色大片| 久久综合九色综合欧美98| 日本在线小视频| 日韩精品一区二区三区在线播放| 91涩漫在线观看| 国产精品扒开腿做| 色狼人综合干| 黄色免费福利视频| 成人性视频网站| 国产亚洲精品久久久久久无几年桃 | 卡通动漫精品一区二区三区| 中文字幕av久久| 久久精品国产久精国产| 色婷婷国产精品免| 欧美系列在线观看| 激情视频在线观看免费| 欧美伊久线香蕉线新在线| 欧美激情影院| 国产视频九色蝌蚪| 成人91在线观看| 日本午夜精品理论片a级app发布| 日韩欧美aaaaaa| 在线观看三级视频| 97碰碰视频| 欧美日韩国产探花| 不许穿内裤随时挨c调教h苏绵| 一区二区三区免费在线观看| 国产黄色大片网站| 欧美日韩国产123| 6080成人| 黄色网页免费在线观看| 91麻豆免费在线观看| 亚洲中文字幕无码爆乳av| 国产午夜精品一区二区三区| 99欧美精品| 中文视频一区视频二区视频三区| 韩国一区二区视频| 青娱乐国产在线视频| 精品国内二区三区| 国模精品视频| 欧美一区二区三区在线播放 | 日本中文字幕电影在线免费观看 | 亚洲婷婷综合色高清在线| 国产美女www爽爽爽视频| 欧美激情xxxxx| 任你弄精品视频免费观看| 熟妇人妻无乱码中文字幕真矢织江| 国产欧美精品日韩区二区麻豆天美| 伊人成年综合网| 美女福利视频一区| 久久久精品国产**网站| 久久九九国产视频| 中文字幕在线不卡国产视频| 精品人妻一区二区三区日产乱码| 91精品国产99久久久久久| 国产一区二区亚洲| 在线免费黄色网| 亚洲va欧美va人人爽| 粉嫩一区二区三区国产精品| 成人网欧美在线视频| 欧美午夜a级限制福利片| 粉嫩av蜜桃av蜜臀av| 欧美精品欧美精品系列| av资源在线| 亚洲欧美日韩国产成人综合一二三区| 国产乱码精品一区二区三| 国产无人区码熟妇毛片多| 日韩中文字幕在线视频播放| 超碰97久久国产精品牛牛| 欧美黄色一级片视频| 亚洲精品免费在线观看| 精品久久久久一区二区三区 | 一区二区不卡在线视频 午夜欧美不卡在 | 欧美大片免费高清观看| 在线观看亚洲视频啊啊啊啊| 成人精品视频一区二区三区| 91九色蝌蚪91por成人| 4k岛国日韩精品**专区| 中文字幕一区二区精品区|