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

SpringBoot與Calcite整合,實現(xiàn)多數(shù)據(jù)源統(tǒng)一查詢系統(tǒng)

數(shù)據(jù)庫 MySQL
最近,接到一個電商系統(tǒng)的兼職小單,其中訂單信息存儲在MySQL數(shù)據(jù)庫,而用戶信息存儲在PostgreSQL數(shù)據(jù)庫。客戶那邊想有一個統(tǒng)一查詢接口,可以通過SQL查詢同時獲取這兩個數(shù)據(jù)源的信息。

最近,接到一個電商系統(tǒng)的兼職小單,其中訂單信息存儲在MySQL數(shù)據(jù)庫,而用戶信息存儲在PostgreSQL數(shù)據(jù)庫。客戶那邊想有一個統(tǒng)一查詢接口,可以通過SQL查詢同時獲取這兩個數(shù)據(jù)源的信息。

為什么選擇Apache Calcite?

簡化開發(fā)流程

  • 抽象層次高: Apache Calcite 提供了高層次的抽象,使得開發(fā)者可以專注于業(yè)務邏輯,而不必處理底層的數(shù)據(jù)庫連接和查詢執(zhí)行細節(jié)。
  • 減少重復工作: 通過使用Calcite,可以避免重復造輪子,節(jié)省開發(fā)時間和成本。

強大的SQL解析和優(yōu)化能力

  • SQL標準支持: Apache Calcite 支持多種SQL方言(如MySQL、PostgreSQL等),可以無縫地處理不同數(shù)據(jù)庫的SQL語句。
  • 查詢優(yōu)化: 內置的查詢優(yōu)化器可以根據(jù)不同的數(shù)據(jù)源特性進行智能優(yōu)化,提高查詢性能。

靈活性和可擴展性

  • 自定義模式和表: 可以通過編程方式動態(tài)地添加和管理多個數(shù)據(jù)源,每個數(shù)據(jù)源可以有不同的模式和表結構。
  • 插件機制: 支持各種插件,可以根據(jù)需求靈活擴展功能,例如自定義函數(shù)、聚合操作等。

高性能

  • 內存計算: Apache Calcite 支持內存中的數(shù)據(jù)處理,減少了I/O開銷,提高了查詢速度。
  • 分布式計算: 雖然本項目主要關注單機版實現(xiàn),但Apache Calcite也可以擴展到分布式環(huán)境中,支持大規(guī)模數(shù)據(jù)集的處理。

集成性強

  • 與其他工具集成: 支持與其他大數(shù)據(jù)工具和技術棧(如Apache Flink、Presto等)集成,形成完整的數(shù)據(jù)分析解決方案。

哪些公司使用了Apache Calcite?

  • Google 在其內部的一些數(shù)據(jù)處理系統(tǒng)中使用 Apache Calcite,特別是在需要高性能和靈活性的場景下。
  • IBM 在其數(shù)據(jù)倉庫和分析解決方案中使用 Apache Calcite,以提高查詢性能和靈活性。
  • Intel 使用 Apache Calcite 來支持其大數(shù)據(jù)分析工具和解決方案,特別是在內存計算方面。
  • Alibaba Cloud: 阿里巴巴云在其大數(shù)據(jù)平臺中使用 Apache Calcite 提供強大的查詢優(yōu)化和執(zhí)行能力。
  • MaxCompute (ODPS): 阿里巴巴的大規(guī)模數(shù)據(jù)計算服務 MaxCompute 使用 Calcite 進行 SQL 查詢處理。
  • Elasticsearch 的某些高級功能,如 Kibana 中的復雜查詢,依賴于 Apache Calcite 進行 SQL 解析和優(yōu)化。
  • Netflix 使用 Apache Calcite 來構建其內部的數(shù)據(jù)虛擬化層,支持復雜的查詢和數(shù)據(jù)分析需求。
  • Microsoft 在其一些大數(shù)據(jù)產(chǎn)品和服務中使用 Apache Calcite,例如 Azure Synapse Analytics。
  • Teradata 使用 Apache Calcite 來增強其數(shù)據(jù)庫系統(tǒng)的查詢優(yōu)化和執(zhí)行性能。
  • Uber 使用 Apache Calcite 來處理其龐大的數(shù)據(jù)集,并支持復雜的查詢和數(shù)據(jù)分析需求。

應用場景

數(shù)據(jù)虛擬化

  • 虛擬數(shù)據(jù)層: 創(chuàng)建一個虛擬的數(shù)據(jù)層,將分散在不同系統(tǒng)中的數(shù)據(jù)集中起來,提供統(tǒng)一的視圖。
  • 動態(tài)數(shù)據(jù)源管理: 動態(tài)地添加和管理數(shù)據(jù)源,支持靈活的數(shù)據(jù)架構設計。

商業(yè)智能 (BI) 工具

  • 報表生成: 作為 BI 工具的核心組件,支持復雜的報表生成和數(shù)據(jù)分析。
  • 自助服務分析: 提供自助服務分析功能,允許非技術人員進行數(shù)據(jù)探索和分析。

機器學習與人工智能

  • 特征工程: 在機器學習管道中使用 Calcite 進行特征提取和數(shù)據(jù)準備。
  • 模型訓練: 結合其他 AI 框架,利用 Calcite 進行大規(guī)模數(shù)據(jù)集的查詢和處理。

多數(shù)據(jù)源查詢

  • 統(tǒng)一接口訪問多個數(shù)據(jù)庫: 允許用戶通過單一接口查詢存儲在不同數(shù)據(jù)庫(如 MySQL、PostgreSQL、Oracle 等)中的數(shù)據(jù)。
  • 聯(lián)合查詢: 支持跨數(shù)據(jù)源的復雜 SQL 查詢,例如從不同的數(shù)據(jù)庫中獲取相關聯(lián)的數(shù)據(jù)。

大數(shù)據(jù)平臺集成

  • 與 Hadoop 生態(tài)系統(tǒng)集成: 與 Hive、HBase、Druid 等大數(shù)據(jù)工具結合,提供統(tǒng)一的查詢接口。
  • 流處理與批處理: 支持 Apache Flink 和 Apache Beam 等流處理框架,實現(xiàn)實時數(shù)據(jù)分析。

嵌入式數(shù)據(jù)庫

  • 輕量級數(shù)據(jù)庫引擎: 提供一個輕量級的 SQL 引擎,適用于嵌入式應用程序和內存數(shù)據(jù)庫。
  • 內存計算: 利用內存計算加速查詢性能,適合需要快速響應的應用場景。

數(shù)據(jù)湖解決方案

  • 統(tǒng)一元數(shù)據(jù)管理: 提供統(tǒng)一的元數(shù)據(jù)管理和查詢接口,方便數(shù)據(jù)湖的建設和維護。
  • 多樣化數(shù)據(jù)格式支持: 支持多種數(shù)據(jù)格式(如 JSON、Parquet、ORC 等),滿足不同類型的數(shù)據(jù)存儲需求。

代碼實操

<dependencies>
    <!-- Spring Boot Starter Web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- Apache Calcite Core -->
    <dependency>
        <groupId>org.apache.calcite</groupId>
        <artifactId>calcite-core</artifactId>
        <version>1.32.0</version>
    </dependency>

    <!-- HikariCP Connection Pool -->
    <dependency>
        <groupId>com.zaxxer</groupId>
        <artifactId>HikariCP</artifactId>
    </dependency>

    <!-- MySQL Connector Java -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>

    <!-- PostgreSQL JDBC Driver -->
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <scope>runtime</scope>
    </dependency>

    <!-- Test Dependencies -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

application.yml

spring:
  datasource:
    order-db:
      url:jdbc:mysql://localhost:3306/order_db?useSSL=false&serverTimezone=UTC
      username:root
      password:root
      driver-class-name:com.mysql.cj.jdbc.Driver
    user-db:
      url:jdbc:postgresql://localhost:5432/user_db
      username:postgres
      password:postgres
      driver-class-name:org.postgresql.Driver

jpa:
    show-sql:true
    hibernate:
      ddl-auto:update
    properties:
      hibernate:
        dialect:org.hibernate.dialect.MySQL8Dialect

數(shù)據(jù)源配置

package com.example.multids.config;

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;

@Configuration
publicclass DataSourceConfig {

    @Bean(name = "mysqlDataSource")
    public DataSource mysqlDataSource() {
        // 配置MySQL數(shù)據(jù)源
        HikariConfig config = new HikariConfig();
        config.setJdbcUrl("jdbc:mysql://localhost:3306/order_db?useSSL=false&serverTimezone=UTC");
        config.setUsername("root");
        config.setPassword("root");
        returnnew HikariDataSource(config);
    }

    @Bean(name = "postgresDataSource")
    public DataSource postgresDataSource() {
        // 配置PostgreSQL數(shù)據(jù)源
        HikariConfig config = new HikariConfig();
        config.setJdbcUrl("jdbc:postgresql://localhost:5432/user_db");
        config.setUsername("postgres");
        config.setPassword("postgres");
        returnnew HikariDataSource(config);
    }
}

自定義數(shù)據(jù)源工廠

package com.example.multids.factory;

import com.example.multids.schema.MySchemas;
import org.apache.calcite.adapter.jdbc.JdbcSchema;
import org.apache.calcite.adapter.java.ReflectiveSchema;
import org.apache.calcite.config.Lex;
import org.apache.calcite.jdbc.CalciteConnection;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

publicclass DataSourceFactory {

    public static CalciteConnection createConnection(DataSource mysqlDataSource, DataSource postgresDataSource) throws SQLException {
        // 定義Calcite模型JSON字符串
        String modelJson = "{\n" +
                "  \"version\": \"1.0\",\n" +
                "  \"defaultSchema\": \"my_schemas\",\n" +
                "  \"schemas\": [\n" +
                "    {\n" +
                "      \"name\": \"my_schemas\",\n" +
                "      \"type\": \"custom\",\n" +
                "      \"factory\": \"" + ReflectiveSchema.Factory.class.getName() + "\",\n" +
                "      \"operand\": {\n" +
                "        \"class\": \"" + MySchemas.class.getName() + "\"\n" +
                "      }\n" +
                "    }\n" +
                "  ]\n" +
                "}";
        
        // 創(chuàng)建Calcite連接
        Connection connection = DriverManager.getConnection("jdbc:calcite:model=" + modelJson);
        CalciteConnection calciteConnection = connection.unwrap(CalciteConnection.class);

        // 獲取根模式并添加子模式
        SchemaPlus schema = calciteConnection.getRootSchema().getSubSchema("my_schemas");
        schema.add("orders", JdbcSchema.create(calciteConnection.getRootSchema(), "orders", mysqlDataSource, null, Lex.MYSQL));
        schema.add("users", JdbcSchema.create(calciteConnection.getRootSchema(), "users", postgresDataSource, null, Lex.POSTGRESQL));

        return calciteConnection;
    }
}

自定義模式

package com.example.multids.schema;

import org.apache.calcite.schema.impl.AbstractSchema;

import java.util.Map;

public class MySchemas extends AbstractSchema {
    @Override
    protected Map<String, org.apache.calcite.schema.Table> getTableMap() {
        // 返回表映射,這里不需要額外處理
        return super.getTableMap();
    }
}

查詢控制器

package com.example.multids.controller;

import com.example.multids.factory.DataSourceFactory;
import org.apache.calcite.jdbc.CalciteConnection;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.sql.DataSource;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

@RestController
publicclass QueryController {

    privatefinal DataSource mysqlDataSource;
    privatefinal DataSource postgresDataSource;

    @Autowired
    public QueryController(@Qualifier("mysqlDataSource") DataSource mysqlDataSource,
                           @Qualifier("postgresDataSource") DataSource postgresDataSource) {
        this.mysqlDataSource = mysqlDataSource;
        this.postgresDataSource = postgresDataSource;
    }

    @GetMapping("/query")
    public List<List<String>> query(@RequestParam String sql) throws SQLException {
        // 創(chuàng)建Calcite連接
        CalciteConnection connection = DataSourceFactory.createConnection(mysqlDataSource, postgresDataSource);
        Statement statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery(sql);

        // 處理查詢結果
        List<List<String>> result = new ArrayList<>();
        while (resultSet.next()) {
            int columnCount = resultSet.getMetaData().getColumnCount();
            List<String> row = new ArrayList<>();
            for (int i = 1; i <= columnCount; i++) {
                row.add(resultSet.getString(i));
            }
            result.add(row);
        }

        // 關閉資源
        resultSet.close();
        statement.close();
        connection.close();

        return result;
    }
}

Application

package com.example.multids;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MultidsApplication {
    public static void main(String[] args) {
        SpringApplication.run(MultidsApplication.class, args);
    }
}

測試

MySQL orders 表

CREATE TABLE orders (
    id INT PRIMARY KEY,
    user_id INT,
    amount DECIMAL(10, 2),
    order_date DATETIME
);

PostgreSQL users 表

CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100)
);

測試執(zhí)行一個聯(lián)合查詢,從兩個不同的數(shù)據(jù)源中獲取數(shù)據(jù),SQL語句是:

SELECT o.id AS order_id, u.name AS user_name, o.amount, o.order_date
FROM orders o
JOIN users u ON o.user_id = u.id;

測試結果

$ curl -X GET "http://localhost:8080/query?sql=SELECT%20o.id%20AS%20order_id,%20u.name%20AS%20user_name,%20o.amount,%20o.order_date%20FROM%20orders%20o%20JOIN%20users%20u%20ON%20o.user_id%20=%20u.id"

[
    ["1", "Alice", "199.99", "2025-04-10 21:30:00"],
    ["2", "Bob", "250.75", "2025-04-10 20:45:00"]
]

責任編輯:武曉燕 來源: Java知識日歷
相關推薦

2023-06-07 08:08:37

MybatisSpringBoot

2023-09-07 08:39:39

copy屬性數(shù)據(jù)源

2024-10-30 10:22:17

2022-05-18 12:04:19

Mybatis數(shù)據(jù)源Spring

2023-01-04 09:33:31

SpringBootMybatis

2020-06-02 07:55:31

SpringBoot多數(shù)據(jù)源

2020-11-24 09:56:12

數(shù)據(jù)源讀寫分離

2020-03-13 14:05:14

SpringBoot+數(shù)據(jù)源Java

2023-10-18 15:25:29

數(shù)據(jù)源數(shù)據(jù)庫

2025-04-17 03:33:00

SpringSQL動態(tài)查詢

2022-12-19 07:21:35

Hutool-db數(shù)據(jù)庫JDBC

2020-12-31 07:55:33

spring bootMybatis數(shù)據(jù)庫

2025-02-05 09:17:40

2025-06-03 02:10:00

SpringInfluxDB數(shù)據(jù)

2009-08-14 10:26:27

ibatis多數(shù)據(jù)源

2023-10-31 07:52:53

多數(shù)據(jù)源管理后端

2021-10-18 06:54:47

數(shù)據(jù)源數(shù)據(jù)預處理

2025-04-23 08:50:00

SpringBootCurator分布式鎖

2022-05-10 10:43:35

數(shù)據(jù)源動態(tài)切換Spring

2023-11-27 07:33:55

點贊
收藏

51CTO技術棧公眾號

国产一区二区三区四区五区在线| 日韩在线视频网站| 男人和女人啪啪网站| 亚洲 欧美 自拍偷拍| 巨乳诱惑日韩免费av| 亚洲三级av在线| 三日本三级少妇三级99| 成全电影大全在线观看| 久久这里只有精品6| 国产欧美一区二区三区视频| 欧美精品一级片| 天海翼精品一区二区三区| 欧美四级电影在线观看| 亚洲激情免费视频| 欧洲毛片在线| 国产美女久久久久| 97色在线视频| 久久久99999| 天天躁日日躁狠狠躁欧美| 欧美丰满一区二区免费视频| 大j8黑人w巨大888a片| 麻豆视频在线| 久久久www免费人成精品| 99国产在线视频| 中文在线字幕免费观| 国产一区欧美| 精品精品国产国产自在线| 欧美成人三级伦在线观看| av日韩一区| 激情成人中文字幕| 国产人妻人伦精品| 午夜黄色小视频| 国产不卡高清在线观看视频| 国产精品丝袜久久久久久不卡| 69精品久久久| 91精品国产91久久久久久密臀| 亚洲天堂日韩电影| 国产 中文 字幕 日韩 在线| 日韩一区免费| 91麻豆精品国产91| 久久99爱视频| 污污视频网站免费观看| 亚洲人成在线观| 99国产精品国产精品毛片| 久久亚洲精品小早川怜子| 日韩av黄色在线观看| 国产精品50页| 欧美天天在线| 欧美精品在线免费观看| 国精产品一区一区二区三区mba| 欧美猛男男男激情videos| 日韩精品极品在线观看| 国产二级一片内射视频播放| 日日夜夜精品视频| 日韩精品一区二区三区在线播放| 在线免费看v片| 国产精品久久久久77777丨| 91福利国产精品| 黄色片视频在线播放| 免费毛片b在线观看| 五月婷婷激情综合| 欧美 日韩 国产在线观看| av手机在线观看| 午夜激情久久久| 欧美 日韩 激情| 91av亚洲| 欧美在线你懂得| 色婷婷狠狠18| 国产高清亚洲| 精品国产污网站| 国产精品无码电影| 亚洲色图美女| 色先锋资源久久综合5566| 亚洲熟女少妇一区二区| 欧美独立站高清久久| 精品国产一区二区在线| 欧美日韩在线国产| 亚洲一级网站| 热久久99这里有精品| 最好看的日本字幕mv视频大全| 日本成人在线一区| 亚洲伊人久久综合| 天天干视频在线| 国产亚洲欧美色| 一区二区三区四区久久| 美女精品导航| 色综合久久久网| 伊人国产在线视频| 涩爱av色老久久精品偷偷鲁 | 国产综合色在线| 超碰97在线资源| 久草视频在线看| 亚洲三级在线看| 日韩在线综合网| 伊人亚洲精品| 亚洲精品美女久久久| 激情五月深爱五月| 欧美日韩18| 国产va免费精品高清在线观看| 亚洲天堂网在线观看视频| 国产成人丝袜美腿| 视频在线精品一区| 好久没做在线观看| 欧美日韩精品系列| 网站免费在线观看| 影视亚洲一区二区三区| 国产va免费精品高清在线| 亚洲成人精品女人久久久| 国产欧美日韩在线看| 久久手机在线视频| 欧美另类激情| 亚洲日韩中文字幕在线播放| 久久久久亚洲AV| 美女诱惑一区二区| 欧美三级华人主播| 福利小视频在线| 欧美人妇做爰xxxⅹ性高电影| 在线免费观看av的网站| 精品国产一区二区三区久久久久久| 欧美大肚乱孕交hd孕妇| 亚洲自拍另类综合| 成人一区二区三区视频在线观看| 在线精品国产| 精品久久ai| 玖玖精品在线| 午夜在线观看视频| 日韩国产综合| 欧美精品videosex牲欧美| 最近中文字幕在线观看| 99久久免费精品| 久久久久久久久久伊人| 久草视频手机在线观看| 国产一区美女| 91久久精品一区二区别| 日本在线观看网站| 色8久久人人97超碰香蕉987| 大尺度做爰床戏呻吟舒畅| 亚洲色图网站| 91精品在线一区| 91官网在线| 精品视频一区 二区 三区| 中文字幕一区二区人妻在线不卡| 亚洲精品字幕| 国产一区在线观| 成年男女免费视频网站不卡| 日韩欧美综合在线| 强乱中文字幕av一区乱码| 国产主播一区二区三区| 9999在线观看| 中文字幕久久精品一区二区| 欧美成人午夜激情| www.久久色| 亚洲一区在线观看视频| 91精品人妻一区二区三区四区| 伊人久久大香线| 成人黄色片视频网站| 免费毛片在线看片免费丝瓜视频 | 国产欧美日韩麻豆91| 大香煮伊手机一区| 欧美在线电影| 91精品免费久久久久久久久| 都市激情一区| 欧美高清视频www夜色资源网| 婷婷国产成人精品视频| 国模一区二区三区白浆| 强伦女教师2:伦理在线观看| 国产剧情一区二区在线观看| 久久久久久国产免费 | 成人午夜碰碰视频| 精品久久一二三| 九九综合久久| 国产美女久久久| 亚洲国产精品精华素| 亚洲精品一区二区三区在线观看| 特黄视频免费看| 国产精品美女久久久久aⅴ| 天堂中文av在线| 欧美午夜不卡| 日本不卡高清视频一区| 亚洲一区有码| 97在线观看免费高清| 国产福利片在线| 欧美一区二区三区色| 日韩美女黄色片| 欧美激情一区二区在线| 日本亚洲一区二区三区| 亚洲一区二区成人| 一区二区在线观看网站| 99精品国产一区二区三区2021| 91地址最新发布| 日韩美女网站| 亚洲国产福利在线| 综合久久中文字幕| 亚洲国产精品久久人人爱| 性欧美精品男男| 国产成人亚洲精品狼色在线| 人妻熟女一二三区夜夜爱| 日韩欧美网址| 国产欧美一区二区三区不卡高清| av高清一区| 久久免费视频网| 在线观看完整版免费| 亚洲国产成人一区| 国内精品国产成人国产三级| 色久优优欧美色久优优| 毛片aaaaa| 中文字幕日韩精品一区| 欧美色图亚洲激情| 国产精品一区二区果冻传媒| 日日摸天天爽天天爽视频| 黄色成人在线网址| 亚洲美女搞黄| 香蕉视频一区| 国产伦精品一区二区三毛| 亚洲色图综合区| 麻豆精品在线视频| www.爱色av.com| 欧美激情日韩| 永久免费精品视频网站| 国产麻豆精品久久| 久久久久久久久久码影片| 精品一区91| 国产一区香蕉久久| 99re久久| 国产成人极品视频| 天天综合av| 97福利一区二区| 男插女视频久久久| 欧美国产视频一区二区| aaa大片在线观看| 中文字幕在线观看亚洲| 黄色片在线播放| 国产视频久久久久久久| 天堂在线视频网站| 亚洲第一在线视频| 黄色一级大片在线免费看国产| 69久久99精品久久久久婷婷| 中文字幕一区二区三区波野结| 色激情天天射综合网| 男人日女人网站| 黑人与娇小精品av专区| 日本一级片免费看| 午夜精品福利一区二区三区蜜桃| 久久午夜无码鲁丝片| 一区二区三区蜜桃网| 免费日韩在线视频| 亚洲午夜久久久久| 久久久久久久久99| 亚洲国产精品久久人人爱| 日本一区二区不卡在线| 亚洲成人免费av| 日本一区二区免费在线观看| 亚洲h在线观看| 亚洲国产精一区二区三区性色| 亚洲国产精品久久人人爱| 久久夜色精品亚洲| 欧美日韩中文字幕日韩欧美| 中文字幕高清在线免费播放| 日本丶国产丶欧美色综合| 中文字幕在线观看高清| 欧美日韩二区三区| www.四虎在线观看| 亚洲国语精品自产拍在线观看| 天天干天天爱天天操| 国产亚洲欧洲黄色| 欧美成年黄网站色视频| 欧美日韩成人在线播放| 国产在线精彩视频| 国产精品福利在线观看| 日本免费在线一区| 国产传媒一区二区| 蜜桃视频欧美| 日韩视频在线观看视频| 极品少妇一区二区三区| 91视频最新入口| 免费国产亚洲视频| 蜜桃视频无码区在线观看| 91麻豆福利精品推荐| 日韩av网站在线播放| 亚洲图片欧美色图| 亚洲精品久久久久久久蜜桃| 91超碰这里只有精品国产| 人妻精品无码一区二区| 亚洲色图13p| 啪啪免费视频一区| 国产精品草莓在线免费观看| 国产在线一区不卡| 裸模一区二区三区免费| 亚洲激情五月| 99爱视频在线| 国内精品久久久久影院一蜜桃| 亚洲一级av无码毛片精品| 国产精品久久毛片a| 精品在线视频免费观看| 欧美图区在线视频| 天堂av资源网| 美女少妇精品视频| 人人视频精品| 国产精品久久7| 日韩国产在线| 国产乱子夫妻xx黑人xyx真爽| 国产最新精品精品你懂的| 亚洲午夜久久久久久久久红桃| 一色屋精品亚洲香蕉网站| 日韩毛片一区二区三区| 日韩一级完整毛片| av中文资源在线| 97成人在线视频| 911亚洲精品| 综合一区中文字幕| 久久性色av| 91丝袜在线观看| 中文字幕亚洲不卡| 99在线观看视频| 黄色一级片在线免费观看| 国产女同互慰高潮91漫画| 免费人成在线观看| 欧美日韩亚洲综合| 日漫免费在线观看网站| 欧美激情视频在线| 国产精品一区二区美女视频免费看| 任我爽在线视频精品一| 一区二区三区高清视频在线观看| 性鲍视频在线观看| 最新中文字幕一区二区三区| 国产精品乱码一区二区视频| 亚洲精品电影在线| 成人高潮aa毛片免费| 99久久精品免费看国产四区| 91精品国产乱码久久久久久久| 在线观看av日韩| www久久精品| 在线观看免费国产视频| 精品久久久久久最新网址| 成年人黄视频在线观看| 国产欧美va欧美va香蕉在线| 欧美日韩一区二区三区视频播放| av网址在线观看免费| 久久久久成人黄色影片| 中文字幕精品无码一区二区| 日韩精品极品视频免费观看| a国产在线视频| 国内精品一区二区| 国产欧美69| 人妻无码一区二区三区| 欧美视频一区二区三区…| 午夜小视频免费| 91成人福利在线| 你懂的视频欧美| 91香蕉视频污版| 中文字幕精品一区二区三区精品| 亚洲男人天堂网址| 在线成人激情视频| 亚洲ww精品| 亚洲五码在线观看视频| 岛国精品一区二区| 波多野结衣国产| 亚洲视频在线观看免费| 国产精品字幕| 一区二区三区偷拍| 国产精品小仙女| 国产乡下妇女做爰| 亚洲欧美www| 国外成人福利视频| 国产制服91一区二区三区制服| 高清不卡在线观看av| 西西44rtwww国产精品| 亚洲香蕉av在线一区二区三区| 97成人超碰| 女女百合国产免费网站| 99热这里都是精品| 无码人妻丰满熟妇奶水区码| 日韩在线资源网| 成人盗摄视频| 少妇人妻互换不带套| 亚洲三级视频在线观看| 四季av日韩精品一区| 国产精品欧美日韩一区二区| 欧美大片专区| 国产三级视频网站| 欧美精品一级二级三级| 成人免费图片免费观看| 性欧美videosex高清少妇| 国产黄色精品视频| 中文字幕69页| 欧美激情久久久久| 国产欧美高清视频在线| 亚洲av毛片在线观看| 一本大道av伊人久久综合| 国产网友自拍视频导航网站在线观看 | 欧美性色黄大片手机版| 日本电影在线观看| 天堂av一区二区| 成人白浆超碰人人人人| 在线观看免费中文字幕| 91av中文字幕| 中文字幕一区二区三区欧美日韩| 91精品人妻一区二区| 精品欧美一区二区三区精品久久| 日本综合视频|