国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

數(shù)據(jù)庫(kù)界的Swagger:一鍵生成數(shù)據(jù)庫(kù)文檔!你不了解一下?

共 27241字,需瀏覽 55分鐘

 ·

2021-10-08 19:56

對(duì)于API的文檔,我們有Swagger等工具來(lái)自動(dòng)生成了。但有有一類(lèi)文檔還是常常困擾著我們,那就是數(shù)據(jù)庫(kù)表結(jié)構(gòu)的文檔。相信很多同學(xué)都有過(guò)手寫(xiě)數(shù)據(jù)庫(kù)表結(jié)構(gòu)文檔 的經(jīng)歷吧?常規(guī)操作就是一通無(wú)腦的 CV 大法,產(chǎn)出一份小幾十頁(yè)的 Word 文檔。

那么,是否有什么工具,可以幫我們偷懶高效的自動(dòng) 生成數(shù)據(jù)庫(kù)表結(jié)構(gòu)文檔呢?

還真有!下面就來(lái)介紹這樣一個(gè)工具:screw!

2. screw 簡(jiǎn)介

screw 是一個(gè)簡(jiǎn)潔好用的數(shù)據(jù)庫(kù)表結(jié)構(gòu)文檔的生成工具 ,支持 MySQL、Oracle、PostgreSQL 等主流的關(guān)系數(shù)據(jù)庫(kù)。

screw 的倉(cāng)庫(kù)地址是 https://github.com/pingfangushi/screw,感興趣的胖友,可以研究一波。

生成的文檔有 HTML、Word、Markdown 三種格式 ,示例如下圖所示:

格式
HTML
Word
Markdown
如果您正在學(xué)習(xí)Spring Boot,推薦一個(gè)連載多年還在繼續(xù)更新的免費(fèi)教程:http://blog.didispace.com/spring-boot-learning-2x/

3. 快速入門(mén)

screw 有兩種方式 來(lái)生成文檔,通過(guò) Java 代碼 或者 Maven 插件 。

下面,我們來(lái)分別快速入門(mén)下。

3.1 使用 Java 代碼的方式

創(chuàng)建 lab-70-db-doc-screw-01 示例項(xiàng)目,使用 screw 的 Java 代碼 的方式,生成文檔。

示例示例

3.1.1 引入依賴(lài)

在 pom.xml 文件中,引入 screw 的依賴(lài) screw-core。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <parent>
        <artifactId>lab-70-db-doc</artifactId>
        <groupId>cn.iocoder.springboot.labs</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>lab-70-db-doc-screw-01</artifactId>

    <dependencies>
        <!-- screw 庫(kù),簡(jiǎn)潔好用的數(shù)據(jù)庫(kù)表結(jié)構(gòu)文檔生成器 -->
        <dependency>
            <groupId>cn.smallbun.screw</groupId>
            <artifactId>screw-core</artifactId>
            <version>1.0.5</version>
        </dependency>

        <!-- 數(shù)據(jù)庫(kù)連接 -->
        <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
            <version>3.4.5</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.22</version>
        </dependency>
    </dependencies>

</project>

依賴(lài) HikariCP 和 mysql-connector-java 是為了連接 MySQL 數(shù)據(jù)庫(kù)。

3.1.2 ScrewMain

創(chuàng)建 ScrewMain 類(lèi),使用 screw 生成文檔。代碼如下:

public class ScrewMain {

    private static final String DB_URL = "jdbc:mysql://400-infra.server.iocoder.cn:3306";
    private static final String DB_NAME = "mall_system";
    private static final String DB_USERNAME = "root";
    private static final String DB_PASSWORD = "3WLiVUBEwTbvAfsh";

    private static final String FILE_OUTPUT_DIR = "/Users/yunai/screw_test";
    private static final EngineFileType FILE_OUTPUT_TYPE = EngineFileType.HTML; // 可以設(shè)置 Word 或者 Markdown 格式
    private static final String DOC_FILE_NAME = "數(shù)據(jù)庫(kù)文檔";
    private static final String DOC_VERSION = "1.0.0";
    private static final String DOC_DESCRIPTION = "文檔描述";

    public static void main(String[] args) {
        // 創(chuàng)建 screw 的配置
        Configuration config = Configuration.builder()
                .version(DOC_VERSION)  // 版本
                .description(DOC_DESCRIPTION) // 描述
                .dataSource(buildDataSource()) // 數(shù)據(jù)源
                .engineConfig(buildEngineConfig()) // 引擎配置
                .produceConfig(buildProcessConfig()) // 處理配置
                .build();

        // 執(zhí)行 screw,生成數(shù)據(jù)庫(kù)文檔
        new DocumentationExecute(config).execute();
    }

    /**
     * 創(chuàng)建數(shù)據(jù)源
     */

    private static DataSource buildDataSource() {
        // 創(chuàng)建 HikariConfig 配置類(lèi)
        HikariConfig hikariConfig = new HikariConfig();
        hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
        hikariConfig.setJdbcUrl(DB_URL + "/" + DB_NAME);
        hikariConfig.setUsername(DB_USERNAME);
        hikariConfig.setPassword(DB_PASSWORD);
        hikariConfig.addDataSourceProperty("useInformationSchema""true"); // 設(shè)置可以獲取 tables remarks 信息
        // 創(chuàng)建數(shù)據(jù)源
        return new HikariDataSource(hikariConfig);
    }

    /**
     * 創(chuàng)建 screw 的引擎配置
     */

    private static EngineConfig buildEngineConfig() {
        return EngineConfig.builder()
                .fileOutputDir(FILE_OUTPUT_DIR) // 生成文件路徑
                .openOutputDir(false// 打開(kāi)目錄
                .fileType(FILE_OUTPUT_TYPE) // 文件類(lèi)型
                .produceType(EngineTemplateType.freemarker) // 文件類(lèi)型
                .fileName(DOC_FILE_NAME) // 自定義文件名稱(chēng)
                .build();
    }

    /**
     * 創(chuàng)建 screw 的處理配置,一般可忽略
     * 指定生成邏輯、當(dāng)存在指定表、指定表前綴、指定表后綴時(shí),將生成指定表,其余表不生成、并跳過(guò)忽略表配置
     */

    private static ProcessConfig buildProcessConfig() {
        return ProcessConfig.builder()
                .designatedTableName(Collections.<String>emptyList())  // 根據(jù)名稱(chēng)指定表生成
                .designatedTablePrefix(Collections.<String>emptyList()) //根據(jù)表前綴生成
                .designatedTableSuffix(Collections.<String>emptyList()) // 根據(jù)表后綴生成
                .ignoreTableName(Arrays.asList("test_user""test_group")) // 忽略表名
                .ignoreTablePrefix(Collections.singletonList("test_")) // 忽略表前綴
                .ignoreTableSuffix(Collections.singletonList("_test")) // 忽略表后綴
                .build();
    }

}

代碼比較簡(jiǎn)單,胖友看看注釋即可。

比較重要的變量,已經(jīng)抽取成靜態(tài) 變量,胖友看著修改哈。

3.1.3 簡(jiǎn)單測(cè)試

執(zhí)行 ScrewMain 程序,進(jìn)行文檔的生成。這里我們生成的是 HTML 文檔,效果如下圖所示:

HTML 文檔

3.2 使用 Maven 插件的方式

創(chuàng)建 lab-70-db-doc-screw-02 示例項(xiàng)目,使用 screw 的 Maven 插件 的方式,生成文檔。

示例示例

3.2.1 引入插件

在 pom.xml 文件中,引入 screw 的插件 screw-maven-plugin。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <parent>
        <artifactId>lab-70-db-doc</artifactId>
        <groupId>cn.iocoder.springboot.labs</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>lab-70-db-doc-screw-02</artifactId>

    <build>
        <plugins>
            <plugin>
                <groupId>cn.smallbun.screw</groupId>
                <artifactId>screw-maven-plugin</artifactId>
                <version>1.0.5</version>
                <dependencies>
                    <!-- 數(shù)據(jù)庫(kù)連接 -->
                    <dependency>
                        <groupId>com.zaxxer</groupId>
                        <artifactId>HikariCP</artifactId>
                        <version>3.4.5</version>
                    </dependency>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>8.0.22</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <!-- 數(shù)據(jù)庫(kù)相關(guān)配置 -->
                    <driverClassName>com.mysql.cj.jdbc.Driver</driverClassName>
                    <jdbcUrl>jdbc:mysql://400-infra.server.iocoder.cn:3306/mall_system</jdbcUrl>
                    <username>root</username>
                    <password>3WLiVUBEwTbvAfsh</password>
                    <!-- screw 配置 -->
                    <fileType>HTML</fileType>
                    <title>數(shù)據(jù)庫(kù)文檔</title> <!--標(biāo)題-->
                    <fileName>測(cè)試文檔名稱(chēng)</fileName> <!--文檔名稱(chēng) 為空時(shí):將采用[數(shù)據(jù)庫(kù)名稱(chēng)-描述-版本號(hào)]作為文檔名稱(chēng)-->
                    <description>數(shù)據(jù)庫(kù)文檔生成</description> <!--描述-->
                    <version>${project.version}</version> <!--版本-->
                    <openOutputDir>false</openOutputDir> <!--打開(kāi)文件輸出目錄-->
                    <produceType>freemarker</produceType> <!--生成模板-->
                </configuration>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

Maven 插件的配置項(xiàng) 比較少,胖友按需修改下 <configuration/> 即可。

3.2.2 簡(jiǎn)單測(cè)試

執(zhí)行 screw-maven-plugin 插件,會(huì)在 doc 目錄下生成文檔。如下圖所示:

執(zhí)行 Maven 插件

4. 生成實(shí)體類(lèi)

screw 的實(shí)現(xiàn)原理,是基于數(shù)據(jù)庫(kù)中的表結(jié)構(gòu) ,生成對(duì)應(yīng)的文檔。

那么,是否可以自動(dòng) 生成 Java 實(shí)體類(lèi)呢?答案是可以的,在 screw-extension 項(xiàng)目中,拓展 提供了該功能。

這樣,日常開(kāi)發(fā)中,在我們完成數(shù)據(jù)庫(kù)的建表 之后,可以直接生成對(duì)應(yīng)的 Java 實(shí)體類(lèi),避免枯燥的重復(fù)勞動(dòng)。

下面,我們來(lái)快速入門(mén)下。創(chuàng)建 lab-70-db-doc-screw-03 示例項(xiàng)目,使用 screw 的 Java 代碼 的方式,生成 Java 實(shí)體類(lèi)。

示例示例

4.1 引入依賴(lài)

在 pom.xml 文件中,額外 引入 screw 的依賴(lài) screw-extension。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <parent>
        <artifactId>lab-70-db-doc</artifactId>
        <groupId>cn.iocoder.springboot.labs</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>lab-70-db-doc-screw-03</artifactId>

    <dependencies>
        <!-- screw 庫(kù),簡(jiǎn)潔好用的數(shù)據(jù)庫(kù)表結(jié)構(gòu)文檔生成器 -->
        <dependency>
            <groupId>cn.smallbun.screw</groupId>
            <artifactId>screw-core</artifactId>
            <version>1.0.5</version>
        </dependency>
        <dependency>
            <groupId>cn.smallbun.screw</groupId>
            <artifactId>screw-extension</artifactId>
            <version>1.0.5</version>
        </dependency>

        <!-- 數(shù)據(jù)庫(kù)連接 -->
        <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
            <version>3.4.5</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.22</version>
        </dependency>
    </dependencies>

</project>

友情提示:由于 screw-extension 項(xiàng)目處于初步開(kāi)發(fā)階段,暫時(shí)未將該依賴(lài)推到 Maven 中央倉(cāng)庫(kù),所以需要自己克隆項(xiàng)目,進(jìn)行編譯打包到本地。

4.2 ScrewMain

創(chuàng)建 ScrewMain 類(lèi),使用 screw 生成 Java 實(shí)體類(lèi)。代碼如下:

public class ScrewMain {

    private static final String DB_URL = "jdbc:mysql://400-infra.server.iocoder.cn:3306";
    private static final String DB_NAME = "mall_system";
    private static final String DB_USERNAME = "root";
    private static final String DB_PASSWORD = "3WLiVUBEwTbvAfsh";

    private static final String FILE_OUTPUT_DIR = "/Users/yunai/screw_test";
    private static final String JAVA_CLASS_PACKAGE = "cn.iocoder.dataobject";

    public static void main(String[] args) {
        // 創(chuàng)建 screw 的配置
        PojoConfiguration config = PojoConfiguration.builder()
                .path(FILE_OUTPUT_DIR) // 生成 POJO 相關(guān)的目錄
                .packageName(JAVA_CLASS_PACKAGE) // 包名
                .nameStrategy(new HumpNameStrategy()) // 包名策略
                .useLombok(false// 是否使用 Lombok
                .dataSource(buildDataSource()) // 數(shù)據(jù)源
                .processConfig(buildProcessConfig()) // 處理配置
                .build();

        // 執(zhí)行 screw,生成 POJO 實(shí)體類(lèi)
        new PojoExecute(config).execute();
    }

    /**
     * 創(chuàng)建數(shù)據(jù)源
     */

    private static DataSource buildDataSource() {
        // 創(chuàng)建 HikariConfig 配置類(lèi)
        HikariConfig hikariConfig = new HikariConfig();
        hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
        hikariConfig.setJdbcUrl(DB_URL + "/" + DB_NAME);
        hikariConfig.setUsername(DB_USERNAME);
        hikariConfig.setPassword(DB_PASSWORD);
        hikariConfig.addDataSourceProperty("useInformationSchema""true"); // 設(shè)置可以獲取 tables remarks 信息
        // 創(chuàng)建數(shù)據(jù)源
        return new HikariDataSource(hikariConfig);
    }

    /**
     * 創(chuàng)建 screw 的處理配置,一般可忽略
     * 指定生成邏輯、當(dāng)存在指定表、指定表前綴、指定表后綴時(shí),將生成指定表,其余表不生成、并跳過(guò)忽略表配置
     */

    private static ProcessConfig buildProcessConfig() {
        return ProcessConfig.builder()
                .designatedTableName(Collections.<String>emptyList())  // 根據(jù)名稱(chēng)指定表生成
                .designatedTablePrefix(Collections.<String>emptyList()) //根據(jù)表前綴生成
                .designatedTableSuffix(Collections.<String>emptyList()) // 根據(jù)表后綴生成
                .ignoreTableName(Arrays.asList("test_user""test_group")) // 忽略表名
                .ignoreTablePrefix(Collections.singletonList("test_")) // 忽略表前綴
                .ignoreTableSuffix(Collections.singletonList("_test")) // 忽略表后綴
                .build();
    }

}

代碼比較簡(jiǎn)單,胖友看看注釋即可。不同于上面的快速入門(mén),這里我們使用 PojoConfiguration 作為配置類(lèi),使用 PojoExecute 作為執(zhí)行器。

比較重要的變量,已經(jīng)抽取成靜態(tài) 變量,胖友看著修改哈。

如果您正在學(xué)習(xí)Spring Boot,推薦一個(gè)連載多年還在繼續(xù)更新的免費(fèi)教程:http://blog.didispace.com/spring-boot-learning-2x/

4.3 簡(jiǎn)單測(cè)試

執(zhí)行 ScrewMain 程序,進(jìn)行 Java 實(shí)體類(lèi)的生成。效果如下圖所示:

Java 實(shí)體類(lèi)

生成的 Java 實(shí)體類(lèi)的成員屬性 還不太正確,需要等待作者進(jìn)行下修復(fù)。

666. 彩蛋

至此,我們已經(jīng)完成 screw 的學(xué)習(xí),一起來(lái)簡(jiǎn)單總結(jié)下:

  • screw 支持生成數(shù)據(jù)庫(kù)表結(jié)構(gòu)文檔 ,通過(guò) Java 代碼或者 Maven 插件的方式。
  • screw 支持生成 Java 實(shí)體類(lèi) ,通過(guò) screw-extension 提供。

初略喵了下 screw 的代碼,總體代碼量在 5000+ 行,核心代碼在 2000 行左右。項(xiàng)目分層干凈,代碼注釋完成,胖友可以選擇閱讀了解下。這樣,我們可以根據(jù)我們實(shí)際項(xiàng)目的需要,進(jìn)行二次開(kāi)發(fā) 。


往期推薦

被前公司辭退后,前領(lǐng)導(dǎo)打電話命令你給前同事解釋代碼,該怎么辦?

國(guó)慶第一天:先換個(gè)頭像,然后分享下國(guó)慶學(xué)習(xí)計(jì)劃吧!

Spring Boot 實(shí)現(xiàn)掃碼登錄,這種方式太香了!!

這是什么神仙公司?居然公布離職員工信息,還給差評(píng)?

“80后的人,真的該退出IT行業(yè)了”,某IT公司領(lǐng)導(dǎo)言論惹爭(zhēng)議!



技術(shù)交流群

最近有很多人問(wèn),有沒(méi)有讀者交流群,想知道怎么加入。加入方式很簡(jiǎn)單,有興趣的同學(xué),只需要點(diǎn)擊下方卡片,回復(fù)“加群,即可免費(fèi)加入我們的高質(zhì)量技術(shù)交流群!

點(diǎn)擊閱讀原文,送你免費(fèi)Spring Boot教程!

瀏覽 43
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 我要操影院| 国产www在线观看| 日韩毛片一级| 亚洲视频福利| 91亚洲精品国产成人| 特一级黄色电影| 国产口爆| 电影91久久久| 精品少妇人妻| 中文字幕日韩高清| 亚洲免费毛片| 9l视频自拍九色9l视频成人 | 日韩不卡免费| 丝袜制服中文字幕无码专区| 一区二区AV| 国产精品成人午夜福利| 久久久久久高清毛片一级| 丁香五月婷婷久久| 欧美成人看片黄a免费看| 搡BBB搡BBBB搡BBBB'| 欧美色图亚洲另类| 精品国产一区二区三区性色AV | 亚洲国产精| 国产一级a毛一级a毛片视频黑人| 亚洲无码门| 国产青青草| 操BBBB| 黄色视频在线观看国产| 欧美毛片在线观看| 成人视频18+在线观看| 岛国AV免费在线| 国产精品视频导航| 黄色香蕉网站| 狼友视频在线看| 在线观看三级网址| 加勒比DVD手机在线播放观看视频| 国产成人三级| 欧美一级黄色电影| 国产精品6| 亚洲精品国产av| 日韩黄片免费看| 国产高清A片| 亚洲无码AV在线观看| 91色色色色| aⅴ免费观看| 伊人三级网| 一级a片在线| 国产成人精品视频免费看| 久操无码视频| 91大神久久| 久久无码电影| 日韩无码毛片| 久热中文字幕| 伊人在线观看视频| 美日韩毛片| 激情视频网| 精品国产99| 日韩二区三区| 国产精品精品| 黄色三级av| 一区二区三区在线视频观看| www.91av| 欧美色交| 亚洲日本欧美| 午夜精品久久久久久久| ThePorn日本无码| 白嫩外女BBwBBwBBw| 国产无码小视频| 超碰牛牛| 大香蕉草久| 五月天激情av| 日韩免费在线视频观看| 国产成人+综合亚洲+天堂| 一级黄色片免费看| 69免费视频| 日本无码视频在线观看| 色九九综合| 国产欧美综合一区二区三区| 国产成人无码在线| 青青综合网| 伊人久久AV| 日韩在线99| 人妻少妇综合| 日韩三级片在线播放| 欧美国产精品一区二区三区| 美女性爱视频网站| 日韩AV电影网站| 男女av网站| AV香蕉| 国产热99| 天天日比| av资源在线看| 免费人成网站| 91精品久久久久久久久| 欧美黄色三级片| 国产操比视频| 人善交精品一区二区三区| 超碰国产在线| 夜夜操天天干| 国产在线激情视频| 欧美日韩一区二区三区| 国产男女性爱视频播放| 亚洲青草视频| 精品人妻中文字幕视频| 国产无遮挡又黄又爽又| 日韩色爱| 国产99页| 精品视频在线观看免费| a片免费网站| 欧美日韩一二| 欧美一級黃色A片免費看| 人人干人人操人人摸| 国内精品久久久| 四虎精品影院| 九九九免费视频| 色九九| 亚洲熟女一区二区三区妖精| 日韩高清一级免费| 婷婷五月天免费视频| 激情视频在线播放| 中文字幕视频免费| 国产成人午夜精品无码区久久麻豆| 久久99精品久久久久久水蜜桃| 午夜精东影业传媒在线观看| 天堂综合| 成人无码区免费AV片| 久久青| 丁香婷婷色五月| 人妻无码一二三区免费| 第四色网站| 无遮挡动态图| 在线中文字幕亚洲| 人人操人人干人人看| 五月丁香六月婷婷综合| 影音先锋在线视频| 人妻无码一区二区三区摄像头| 國產精品77777777777| 亚洲激情小说| 女BBBBBB女BBB| 夜夜爽夜夜爽| 欧美日韩一级二级三级| 国产三级无码视频| 高潮流水视频| 亚洲欧洲成人| 四虎884| 免费无码成人片在线观看在线| 99精品在线| 内射学生妹视频| 亚洲精品日韩综合观看成人91 | 亚洲国产成人av| 先锋影音成人资源| 18禁污网站| 黑人狂躁女人高潮视频| 国产黄A片免费网站免费| 国产伦精品一区二区三区妓女| 影音先锋成人资源AV在线观看| 国产熟女一区二区三区五月婷| 欧美三级不卡| 亚洲AV人人夜夜澡人人| 欧美日韩国产激情| 免费在线看黄色| 国产在线第一页| 外国成人视频| 欧美日韩中文在线视频| 久草大香蕉视频| 欧美成人高清无码| 中文无码日韩欧美久久| 丁香五月在线视频| 国产18欠欠欠一区二区| 欧美精品在线免费观看| 最近日本中文字幕中文翻译歌词| 国产成人精品久久久| 无码a区| 免费在线a| 影音先锋色站| 欧美国产中文| 久操视频免费在线观看| 国产淫语| 思思热在线| 亚洲第一色在线| www日韩欧美| 伊人免费在线| 北条麻妃99| 美日韩毛片| 十八禁网站在线| 久久久久99精品成人片直播| 日产电影一区二区三区| 黄色视频网站在线观看免费| 无码高清在线播放| 97色在线视频| 精品一区三区| 久草新视频| 日韩无码播放| 偷偷操av| 91亚洲国产成人精品一区二区三| 日日操夜夜| 在线无码视频播放| 黄片网站免费观看| 亚洲人一级电影| 国产一区二区视频在线| 99热这里精品| 水果派av| 亚洲国产成人精品午夜| 国产精品码ls字幕影视| 在线免费看A片| 久久黄色视频网站| 97无码人妻一区二区三区| h视频在线观看网站| 亚洲理论视频| 亚洲成人高清无码| 爱搞在线观看wwww| 国产精品综合| 中文在线a√在线8| 免费看污网站| 日韩av高清| 天天操狠狠操| 色操人 | 激情乱伦五月天| 五月婷婷俺來也| 亚洲人妖在线| 澳门四虎影院| 日韩激情| 波多野结衣高清av久久直播免| 影音先锋av成人电影| 国产无遮挡A片又黄又爽小直播| 尤物视频网址| 欧美日韩中文在线视频| 青娱乐网站| 日韩熟妇无码中文字幕| 亚洲高清在线观看| 国产无码电影网| 日本久久视频| 一级黄色电影网站| 吴梦梦一区二区三区| 可以看的毛片| 久久亚洲av| av一区二区三区| 家庭乱伦影视| 亚洲熟妇视频| 中文字幕乱妇无码Av在线| 黄色视频在线| 人人摸人人操人人射| 97人妻人人澡人人爽人人精品 | 日韩一卡二卡| 亚洲在线观看视频| 久久久久久久久久久国产精品| 91久久免费视频| 婷婷五月天激情四射| 吴梦梦一区二区在线观看| 一级a看片在线观看| 波多野结衣在线无码| 无码AV高清| 欧美色图另类图片| 91成人免费电影| 国产操逼免费看| 欧美日韩国产免费观看成人片| 国产在线观看无码免费视频| 亚洲无码视频在线观看| 中文无码影院| 91精品国产三级| 三级片AAA成人免费| 国产免费AV在线观看| 国产成人va| 国产性爱自拍一下| 亚洲阿v天堂| 中文字幕不卡在线| 亚洲黄色天堂| 欧美BBWBBWBBWBBWBBwBBW | 亚洲免费一区二区| 人人操干| 波多野结衣无码在线视频| 人人操人人插| 四川揉BBB搡BBB| 欧美狠狠撸| 亚洲av电影在线观看| 操久在线| 久久久久久久91| 蜜桃精品一区二区三区美女| 黄色亚洲网站| 国产二级片| 欧美黄色操逼| 午夜福利国产| 看毛片网站| 99精品在线播放| 成人性爱av| 翔田千里被躁120分钟| 国产五月天婷婷| 在线观看黄色电影| 91网站在线免费观看| 麻豆三级片在线观看| 天堂在线视频| 中文字幕av免费在线观看| 免费亲子乱婬一级A片| 亚洲最新无码视频| 一级特黄色| 亚洲无码三级片| 丁香六月婷婷综合激情欧美 | 五月天青青草超碰免费公开在线观看 | 大香蕉国产| 男女拍拍拍拍| 婷婷成人电影| 黄页网站视频| 九色PORNY蝌蚪视频| 天天色色婷婷| 一区二区无码精品| 人人射| 欧美乱伦内射| 婷婷日韩中文字幕| 97欧美日韩| 女人操逼| 丁香花中文字幕| 亚洲中文综合| 伊人在综合| 日韩在线观看一区二区| 天天日夜夜| 久久国产精品99久久人人澡| 学生妹一级J人片内射视频| aaa国产精品| 国产A片免费| 四川搡BBBBB搡BBB| 青青视频网| 欧洲尤物不卡播放六区| 成人视频18+在线观看| 在线观看亚洲视频| 欧美日韩日逼视频| 特级西西人体大胆无码| jizz国产视频| 黄色AV天堂| 中文资源在线√8| 日本熟妇一区二区三区| 一級免費网站| 亚洲AV无码成人精品区大猫| 操B五月天| 国产男女无套免费视频| 青青青在线| 日皮视频在线免费观看| 欧美激情伊人久久五月天| 精品中文字幕在线| 91成人在线观看国产| 婷婷午夜福利| 五月丁香在线视频| 久久国产乱子伦精品免费午夜...| 泄火熟妇2-ThePorn| 91久久超碰| 99久久婷婷国产综合精品草原 | 国产日韩在线播放| 婷婷久月| 91久久精品一区二区三区| 天堂在线中文| 91网站在线免费观看| 毛多水多丰满女人A片| 91成人在线影院| 国产一级a一级a免费视频| 香蕉国产精品| 国产免费黄色片| 艹逼视频免费观看| 亚洲AV无码电影| 国产女人水真多18毛片18精品 | 日韩在线女优天天干| 成人性爱在线观看| 西西WWW888大胆无码| 北条麻妃久久| 麻豆精品秘国产| 男女日逼| 国产无码小视频| 男女操逼视频网站免费观看| 国产色情视频在线观看| 亚洲香蕉av| 深爱五月激情| 一区二区中文字幕| 大鸡巴视频在线观看| 99热官方网站| 777777视频| 秋霞福利影院| 黄片免费网站| 亚洲综合精品| 亚洲AV无码一区二区三区少妇 | AV一区二区在线观看| 欧洲肥胖BBBBBBBBBB| 四川婬妇BBw搡BBBB搡| 人人人人人妻| 小黄片免费| 男人的天堂视频在线| 久操国产| 日韩免费AV电影| 99re在线视频| 亚洲人天堂| 人成免费网站| 毛片在线观看网站| 大香蕉久久精品| 一本色道久久加勒比精品| 囯产一级a一级a免费视频| 国产三级在线观看| 国产一级黄| 94精品人人人| 99黄色视频| 手机看片国产| 日韩www| 国产精品视频免费在线观看| 中文字幕人成人乱| 国产成人AV网站| 边添小泬边狠狠躁视频| 黄片网站免费观看| 91国语又粗又大对白| 国产精品午夜在线观看| 亚洲操逼片| 无码蜜桃吴梦梦| 无码天堂| 青草视频在线免费观看| 欧美操大逼| 特级西西444www高清| a片免费观看视频| 丁香婷婷男人天堂| 丰满人妻一区二区| 国产精品免费久久| 黄色成人18| 激情婷婷综合| 91福利视频网| 日韩免费高清视频| 日韩在线一区二区三区四区| 777免费观看成人电影视频| 亚洲AV无码| 奇米av在线| 麻豆精品| 成人黄色AV| 婷婷色大师| 无码av在线观看| 黄视频免费| 豆花无码视频一区二区| 99色热| 麻豆精品秘国产| 91羞射短视频在线观看| 影音先锋日韩| 色婷婷一二三精品A片| 东方美美高清无码一区| 三级在线观看视频| 欧美日韩成人网站| 亚洲成人网站在线观看| 亚洲精品久久久久久久久豆丁网| 色色色五月婷婷| av高清无码| 久久黄色小视频| 久久高潮| 亚洲秘无码一区二区三区观看| 日韩h视频| 久久色在线视频| 三级片在线观看视频| 露脸老熟女91集合| AAA一区二区三区| 国产黄色在线视频| 国产精品自拍偷拍| 日韩AV在线天堂| 高清一区二区三区| 97人妻天天摸天天爽天天 | www.豆花视频成人版| 亚州精品成人片| 欧美精品黄片| 一区二区无码高清| 黄色免费视频网站| 国产又粗又大又爽91嫩草| 91污| 手机AV在线| 日韩A片无码ⅩXXXX| 另类无码| 色综合五月| 成人国产精品| 91爱逼| 亚洲无码高清电影| 无码秘人妻一区红中av漫画| 天天添| 亚洲综合一区二区三区| 91色色| 免费无码国产| 一个人看的www日本高清视频 | 四虎亚洲无码| 九九九精品| 国内老熟妇对白HDXXXX| 大香蕉五月丁香| 在线天堂v| 一本大道东京热av无码| 日韩午夜av| 国产老女人农村HD| 人人爱人人妻人人操| 欧美性爱在线视频| 大香蕉尹人视频| 国产一级A片免费播放| 在线观看中文字幕| 91人妻人人澡人人| 99久久精品国产一区二区三区 | 精品无码一区二区人妻久久蜜桃| 亚洲欧美另类在线| 日韩成人观看| 唐嫣一级婬片A片AAA| 超碰199| 亚洲AV无码电影| 特级欧美AAAAAA| 日本親子亂子倫XXXX| 逼特逼视频| 中文字幕免费高清在线观看| 怡春院欧美| 精品国产久久久久| 91超碰在线| 成人在线小视频| 日韩黄色在线视频| 人妻熟女88AⅤ| 小佟丽娅大战91哥| 黄色av天堂| 不卡三区| 超碰国产97| 国产精品无码久久久久成人app | 影音先锋在线成人| 伊人私人影院| 精品一区二区久久久久久久网站 | 精品欧美一区二区三区久久久 | 亚洲香蕉在线视频| 精品av在线观看| 超碰91免费在线观看| 日韩精品在线视频| 日日操操| 亚洲激情片| 国产一区二区视频在线| 91视频福利网| A亚洲天堂| 97人妻人人澡人人爽人人精品 | 国产美女做爱| 亚洲无码影视| 性爱视频免费网站| 怡红院欧美| 91porn在线观看| 91AV在线观看视频| 久久久久国产一区二区三区四区| 丁香五月欧美| 一本一道无码免费看视频| 国产精品无码在线播放| 人人操人人妻人人看| 久久精品v| 大香蕉97| 色色视频网站| 欧美人妻精品| 久久精品国产亚洲AV成人婷婷| 香蕉在线播放| 熟女一区二区三区| 亚洲成人一区| 亚洲精品免费观看| 手机看片1024旧版| 日韩天堂在线观看| 国产乱子伦一区二区三| 精品视频久久久久久| 亚洲视频在线播放| 久艹视频| 三级视频网| 人人色人人操人人干| 国产一区二区视频在线| 熟妇操逼视频| 精品中文字幕在线播放| 精品在线播放| 爆乳一区二区| 婷婷精品在线| 人人澡超碰碰| 91久久久青青青青草| 特级爱爱视频| 免费一级黄色毛片| 国产日韩欧美| 女生被操网站| A黄色片| 熟女嗷嗷叫高潮合集91| 三级中文无码| 国产精品理论片| 三级视频网址| 日韩高清一级免费| 午夜福利干B在线免费小视频| 夜夜欢天天干| AV无码网站| 69网站| 一级黄色在线| 国产愉拍91九色国产愉拍| 免费观看在线黄片| 四川BBB搡BBB爽爽爽欧美| 九九操比| 老熟女17页一91| 91精品久久久久久久| 免费亲子乱婬一级A片| 成人做爰69片免费观看| 免费日韩视频| 五月天综合视频| 一级a片免费| 中文免费高清在线| 干干影院| 很色很黄的A片一| 在线观看免费完整版中文字幕视频| 欧美中文字幕在线观看| 中文字幕人妻日韩在线| 久久视频免费| 日韩精品久久久久久久酒店| 亚洲黄色视频网站在线观看| 亚洲肏屄网| 亚洲成人网站免费观看| 无码人妻AV一区| 无码人妻丰满熟妇啪啪| 污视频在线免费| 爆操表妹| 日韩无码一区二区三区| 在线观看亚洲视频| 久久久久久久国产精品| 精品毛片| 牛牛影视av| 丁香五月婷婷在线| 欧美成人高清视频| 青草久久视频| 欧美成年人视频| 夜夜骚av.一区二区三区四区| 国产xxxx视频| 久久精品视频免费看| 神马午夜激情| 中国免费毛片| 久久久www成人免费毛片| 亚洲乱码国产乱码精品天美传媒| 懂色成人Av| 国产黄色大片| 国产色婷婷| 九九九九精品| 北条麻妃久久| 亚洲日韩精品中文字幕在线| 韩国无码人妻| 婷婷综合色| 大香蕉精品视频| 午夜A区| 无码AV一区| 先锋影音资源网站| 在线毛片网站| 人人澡人人爽| 免费在线观看黄色片| 91色秘乱码一区二区| 丰满人妻一区二区三区免费| 国产成人自拍视频在线观看| 校园春色av| 天天拍天天射| 狠狠操2019| 91美女被操| 九色麻豆| 大鸡巴久久久久久久| 日韩亚洲精品中文字幕| 日韩一区二区三区免费视频 | 亚洲国产色婷婷| 亚洲激情欧美激情| 国产精品对白| 日本在线不卡视频| AV操逼网| 蜜臀久久99久久久久久宅男 | 毛片9| 青青草视频免费在线观看| 久爱视频| 日韩大片在线| 嫩草视频在线播放| 少妇搡BBBB搡BBB搡造水多, | 国产激情综合| 一级a片免费看| av毛片| 亚洲色图15P| 免费无码高清| 午夜大香蕉| 又a又黄高清无码视频| 亚洲AV成人片色在线观看麻豆| 亚洲品久久久蜜| 午夜做爱福利视频| 久久久精品电影91| 欧美自拍视频| 国产成人高清在线| 久久久无码人妻精品无码| 午夜AV福利影院| 不卡无码av| 亚洲福利网| 久久久久一区二区三区| 国产精品一区二区在线播放| 大香蕉在线视频网| 国产三级精品三级在线观看| 国产成人综合在线| 一级特黄妇女高潮AA片免费播放| 人人免费操| 大香久久| 国内精品卡一卡二卡三| 九哥草逼网| 国内成人精品| 国产精成人品| 一级爱爱| 国产天天操| 午夜av免费在线| 波多野结衣av在线观看窜天猴 | 3p视频网站| 人人妻日日摸狠狠躁| 九九九色视频| 欧美老妇BBBBBBBBB| 中文字幕精品三区无码| 九九久久久久| 2024AV在线| 日本免费无码| 婷婷亚洲天堂| 97视频在线观看免费| 亚洲无aV在线中文字幕| 黄色片在线免费看| 中文字幕一区二区三区四区五区| 亚洲三级视频| 婷婷开心色四房播播免费| 国产精品51麻豆cm传媒| 国产91嫩草乱婬A片2蜜臀| 成人无码影院日韩,成人年…| 伊人逼逼| 肏屄一区| 无码窝在线观看| 操久久久| 三级网址在线观看| 一级久久| 火淫玖玖免费精品| 日韩人妻精品一区二区| 亚洲欧美日韩在线| 深夜福利一区二区| 亚久久久| 欧美伊人大香蕉| 亚洲三级视频在线观看| 国产白丝在线| 热逼视频| 搞搞网日本9| 2017天天射| 亚洲无码三级视频| 日B视频在线观看| 久久久夜夜夜| 久草热在线| 安徽扫搡BBBB揉BBBB| Av久| 98无码人妻精品一区二区三区 | 在线观看黄A片免费网站| 西西人体444rt高清大胆模特| 黄色小视频在线免费观看| 翔田千里珍藏版无码| 操逼逼视频| 欧美日韩四区| 婷婷热| 午夜福利视频3000| 午夜久久电影| 91亚洲一线产区二线产区| 三级网站在线播放| 亚洲色无码人妻激情| 精品国产一二三| 国精品无码A区一区二区| 日本成人电影一区二区三区| 看一级黄色片| 人妻少妇无码视频| www.狠狠操| 日韩乱伦毛片| 国产乱子伦一区二区三区视频| 成人网中文字幕| 在线看91| 无码精品人妻一区二区三区漫画| 91九色口爆吞精| 黄色电影免费网站| 亚洲无遮挡| 学生妹一级片内射视频| 一级A片免费| 日本性爱一区| 中文字幕欧美日韩| 国外亚洲成AV人片在线观看| 西西人体444www| 精品国产毛片| 黑巨茎大战欧美白妞小说| 九色PORNY自拍视频| 少妇无码| 国产女人18毛片水18精品软件| 天堂网2025| 日皮视频在线| 17c精品麻豆一区二区免费| 黄色激情五月天| 91丨熟女露脸| 日本一级特级毛片视频| 香蕉视频一区| 91女人18毛片水多的意思 | 人人操人人爱人人摸| 91无码影院| 2025av在线| 四川少扫搡BBw搡BBBB| 日韩性爱网站| 麻豆传媒一区| 伊人久久香蕉网| 少妇白洁视频| 成人在线视频免费| 中文字幕首页| 先锋AV资源站| 777超碰| 国产主播福利| 日韩在线观看| 性欧美xxxx| 精品成人在线视频| 亚洲中文字幕影院| 黄片伊人| 亚洲AV无码成人精品区东京热 | 中文字幕成人视频| 久久综合99| 手机看片福利永久| 国产在线精品自拍| AV网站免费在线观看| 欧美性猛交XXXX乱大交蜜桃| 91外围女视频| 95四川乱子伦视频国产| 中文字字幕在线中文乱码电影| 摸BBB搡BBB搡BBBB| 97在线鲁碰免费视频| 秋霞中文字幕| 亚洲毛片亚洲毛片亚洲毛片| 国产群交| 黄色av免费观看| 高清无码不卡在线观看| 老太奶性BBwBBw侧所| www.超碰| 狠狠色一区| 无码人妻精品一区二区蜜桃网站| 黄色不卡| 青草国产| 日逼片| 另类综合激情| 91成人视频在线免费观看| 久操视频在线免费观看| 成人看片33x9.CC| 婷婷丁香五月在线| 免费国产黄色视频| 亚洲天堂成人网| 中文字幕巨乱亚洲高清A片28| 99久久综合国产精品二区| 蜜臀AV网| 操逼在线免费观看| 国内夫妻【20p】| 四虎影院最新地址| 人人看人人搂人人摸| 91绿帽人妻-ThePorn| 亚洲中文字幕av天堂| 91久久人澡人妻人人澡人人爽 | 国产精品V日韩精品V在线观看| 日韩乱伦AV| 青青草无码视频| 松岛枫在线视频| 欧美激情四射| 成人操B| 日韩东京热中文字幕| 91欧美精品成人AAA片| 丁香五月天社区| 亚洲av观看| 天天爽天天| 黄色电影网页| A毛片| 日老女人的逼| 欧美视频操逼| 国产精品自拍在线观看| 欧美XXX黑人XYX性爽| 山东熟妇搡BBBB搡BBBB| 无码欧美精品一区二区| 天天爱天天爽| 手机av在线| 手机无码在线播放| 91看片看婬黄大片| 精品国产久久久| 久久久久国产精品视频| 中文字幕在线观看日本| 亚洲无码在线播放| 成人精品永久免费视频99久久精品| 青青草原在线免费| 亚洲精品免费观看| 日韩三级中文| 中文字幕亚洲视频在线观看| 毛片视频免费观看| 欧美成人aaa| 特黄色视频| 岛国精品在线播放| 丁香花在线小说免费阅读| 欧美性猛交XXXX乱大交HD| 大香蕉久久爱| 综合插插| 欧美性爱视频免费观看| 97人妻人人澡| 欧美天天性| 再深点好爽灬轻点久久国产 | 青青草97国产精品麻豆| 国产美女做爱| www五月天| 99精品久久| 亚洲Av无码午夜国产精品色软件 | 日日骚亚洲| 亚洲自拍网站| 国产精品资源| 久久免费视频网站| 国产又爽又黄在线看| 青娱乐偷窥成| 国内不卡一卡二视频| 第一福利视频| 亚洲中文字幕日本| 91吴梦梦一区二区传媒| 夜夜骚AV一二三区无码| 在线高清无码视频| 免费a视频在线观看| 国产主播精品在线| 黄片视频在线| 亚洲国产91| 少妇高潮一区二区三区99|