3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

mybatis看这一篇就够了,简单全面一发入魂

發布時間:2023/12/3 综合教程 29 生活家
生活随笔 收集整理的這篇文章主要介紹了 mybatis看这一篇就够了,简单全面一发入魂 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • Mybatis
    • 概述
    • 快速入門
      • 原生開發示例
      • 基于Mapper代理的示例
      • 基于注解的示例
    • 應用場景
      • 主鍵返回
      • 批量查詢
      • 動態SQL
      • 緩存
      • 關聯查詢
      • 延遲加載
      • 逆向工程
      • PageHelper分頁插件
      • Mybatis Plus

Mybatis

概述

  1. mybatis是什么?有什么特點?

    它是一款半自動的ORM持久層框架,具有較高的SQL靈活性,支持高級映射(一對一,一對多),動態SQL,延遲加載和緩存等特性,但它的數據庫無關性較低

    • 什么是ORM?

      Object Relation Mapping,對象關系映射。對象指的是Java對象,關系指的是數據庫中的關系模型,對象關系映射,指的就是在Java對象和數據庫的關系模型之間建立一種對應關系,比如用一個Java的Student類,去對應數據庫中的一張student表,類中的屬性和表中的列一一對應。Student類就對應student表,一個Student對象就對應student表中的一行數據

    • 為什么mybatis是半自動的ORM框架?

      用mybatis進行開發,需要手動編寫SQL語句。而全自動的ORM框架,如hibernate,則不需要編寫SQL語句。用hibernate開發,只需要定義好ORM映射關系,就可以直接進行CRUD操作了。由于mybatis需要手寫SQL語句,所以它有較高的靈活性,可以根據需要,自由地對SQL進行定制,也因為要手寫SQL,當要切換數據庫時,SQL語句可能就要重寫,因為不同的數據庫有不同的方言(Dialect),所以mybatis的數據庫無關性低。雖然mybatis需要手寫SQL,但相比JDBC,它提供了輸入映射和輸出映射,可以很方便地進行SQL參數設置,以及結果集封裝。并且還提供了關聯查詢動態SQL等功能,極大地提升了開發的效率。并且它的學習成本也比hibernate低很多

快速入門

只需要通過如下幾個步驟,即可用mybatis快速進行持久層的開發

  1. 編寫全局配置文件
  2. 編寫mapper映射文件
  3. 加載全局配置文件,生成SqlSessionFactory
  4. 創建SqlSession,調用mapper映射文件中的SQL語句來執行CRUD操作

原生開發示例

  1. 在本地虛擬機mysql上創建一個庫yogurt,并在里面創建一張student表

  2. 打開IDEA,創建一個maven項目

  3. 導入依賴的jar包

    	<dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.10</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.6</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version><scope>provided</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.10</version><scope>test</scope></dependency></dependencies>
    
  4. 創建一個po類

    package com.yogurt.po;import lombok.*;@Getter
    @Setter
    @NoArgsConstructor
    @AllArgsConstructor
    @ToString
    public class Student {private Integer id;private String name;private Integer score;private Integer age;private Integer gender;}
  5. 編寫mapper映射文件(編寫SQL)

    <!-- StudentMapper.xml -->
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="test"><select id="findAll" resultType="com.yogurt.po.Student">SELECT * FROM student;</select><insert id="insert" parameterType="com.yogurt.po.Student">INSERT INTO student (name,score,age,gender) VALUES (#{name},#{score},#{age},#{gender});</insert><delete id="delete" parameterType="int">DELETE FROM student WHERE id = #{id};</delete>
    </mapper>
    
  6. 編寫數據源properties文件

    db.url=jdbc:mysql://192.168.183.129:3306/yogurt?characterEncoding=utf8
    db.user=root
    db.password=root
    db.driver=com.mysql.jdbc.Driver
    
  7. 編寫全局配置文件(主要是配置數據源信息)

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration><!-- 配置文件信息 --><properties resource="properties/db.properties"></properties><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><!-- 從配置文件中加載屬性 --><property name="driver" value="${db.driver}"/><property name="url" value="${db.url}"/><property name="username" value="${db.user}"/><property name="password" value="${db.password}"/></dataSource></environment></environments><mappers><!-- 加載前面編寫的SQL語句的文件 --><mapper resource="StudentMapper.xml"/></mappers></configuration>
    
  8. 編寫dao類

    package com.yogurt.dao;import com.yogurt.po.Student;
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException;
    import java.io.InputStream;
    import java.util.List;public class StudentDao {private SqlSessionFactory sqlSessionFactory;public StudentDao(String configPath) throws IOException {InputStream inputStream = Resources.getResourceAsStream(configPath);sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);}public List<Student> findAll() {SqlSession sqlSession = sqlSessionFactory.openSession();List<Student> studentList = sqlSession.selectList("findAll");sqlSession.close();return studentList;}public int addStudent(Student student) {SqlSession sqlSession = sqlSessionFactory.openSession();int rowsAffected = sqlSession.insert("insert", student);sqlSession.commit();sqlSession.close();return rowsAffected;}public int deleteStudent(int id) {SqlSession sqlSession = sqlSessionFactory.openSession();int rowsAffected = sqlSession.delete("delete",id);sqlSession.commit();sqlSession.close();return rowsAffected;}
    }
  9. 測試

    public class SimpleTest {private StudentDao studentDao;@Beforepublic void init() throws IOException {studentDao = new StudentDao("mybatis-config.xml");}@Testpublic void insertTest() {Student student = new Student();student.setName("yogurt");student.setAge(24);student.setGender(1);student.setScore(100);studentDao.addStudent(student);}@Testpublic void findAllTest() {List<Student> all = studentDao.findAll();all.forEach(System.out::println);}
    }
    

總結

  1. 編寫mapper.xml,書寫SQL,并定義好SQL的輸入參數,和輸出參數
  2. 編寫全局配置文件,配置數據源,以及要加載的mapper.xml文件
  3. 通過全局配置文件,創建SqlSessionFactory
  4. 每次進行CRUD時,通過SqlSessionFactory創建一個SqlSession
  5. 調用SqlSession上的selectOneselectListinsertdeleteupdate等方法,傳入mapper.xml中SQL標簽的id,以及輸入參數

注意要點

  1. 全局配置文件中,各個標簽要按照如下順序進行配置,因為mybatis加載配置文件的源碼中是按照這個順序進行解析的

    <configuration><!-- 配置順序如下properties  settingstypeAliasestypeHandlersobjectFactorypluginsenvironmentsenvironmenttransactionManagerdataSourcemappers-->
    </configuration>
    

    各個子標簽說明如下

    • <properties>

      一般將數據源的信息單獨放在一個properties文件中,然后用這個標簽引入,在下面environment標簽中,就可以用${}占位符快速獲取數據源的信息

    • <settings>

      用來開啟或關閉mybatis的一些特性,比如可以用<setting name="lazyLoadingEnabled" value="true"/>來開啟延遲加載,可以用<settings name="cacheEnabled" value="true"/>來開啟二級緩存

    • <typeAliases>

      在mapper.xml中需要使用parameterTyperesultType屬性來配置SQL語句的輸入參數類型和輸出參數類型,類必須要寫上全限定名,比如一個SQL的返回值映射為Student類,則resultType屬性要寫com.yogurt.po.Student,這太長了,所以可以用別名來簡化書寫,比如

      <typeAliases><typeAlias type="com.yogurt.po.Student" alias="student"/>
      </typeAliases>
      

      之后就可以在resultType上直接寫student,mybatis會根據別名配置自動找到對應的類。

      當然,如果想要一次性給某個包下的所有類設置別名,可以用如下的方式

      <typeAliases><package name="com.yogurt.po"/>
      </typeAliases>
      

      如此,指定包下的所有類,都會以簡單類名的小寫形式,作為它的別名

      另外,對于基本的Java類型 -> 8大基本類型以及包裝類,以及String類型,mybatis提供了默認的別名,別名為其簡單類名的小寫,比如原本需要寫java.lang.String,其實可以簡寫為string

    • <typeHandlers>

      用于處理Java類型和Jdbc類型之間的轉換,mybatis有許多內置的TypeHandler,比如StringTypeHandler,會處理Java類型String和Jdbc類型CHAR和VARCHAR。這個標簽用的不多

    • <objectFactory>

      mybatis會根據resultTyperesultMap的屬性來將查詢得到的結果封裝成對應的Java類,它有一個默認的DefaultObjectFactory,用于創建對象實例,這個標簽用的也不多

    • <plugins>

      可以用來配置mybatis的插件,比如在開發中經常需要對查詢結果進行分頁,就需要用到pageHelper分頁插件,這些插件就是通過這個標簽進行配置的。在mybatis底層,運用了責任鏈模式+動態代理去實現插件的功能

      <!-- PageHelper 分頁插件 -->
      <plugins><plugin interceptor="com.github.pagehelper.PageInterceptor"><property name="helperDialect" value="mysql"/></plugin>
      </plugins>
      
    • <environments>

      用來配置數據源

    • <mappers>

      用來配置mapper.xml映射文件,這些xml文件里都是SQL語句

  2. mapper.xml的SQL語句中的占位符${}#{}

    一般會采用#{}#{}在mybatis中,最后會被解析為?,其實就是Jdbc的PreparedStatement中的?占位符,它有預編譯的過程,會對輸入參數進行類型解析(如果入參是String類型,設置參數時會自動加上引號),可以防止SQL注入,如果parameterType屬性指定的入參類型是簡單類型的話(簡單類型指的是8種java原始類型再加一個String),#{}中的變量名可以任意,如果入參類型是pojo,比如是Student類

    public class Student{private String name;private Integer age;//setter/getter
    }
    

    那么#{name}表示取入參對象Student中的name屬性,#{age}表示取age屬性,這個過程是通過反射來做的,這不同于${}${}取對象的屬性使用的是OGNL(Object Graph Navigation Language)表達式

    ${},一般會用在模糊查詢的情景,比如SELECT * FROM student WHERE name like '%${name}%';

    它的處理階段在#{}之前,它不會做參數類型解析,而僅僅是做了字符串的拼接,若入參的Student對象的name屬性為zhangsan,則上面那條SQL最終被解析為SELECT * FROM student WHERE name like '%zhangsan%';

    而如果此時用的是SELECT * FROM student WHERE name like '%#{name}%'; 這條SQL最終就會變成

    SELECT * FROM student WHERE name like '%'zhangsan'%'; 所以模糊查詢只能用${},雖然普通的入參也可以用${},但由于${}不會做類型解析,就存在SQL注入的風險,比如

    SELECT * FROM user WHERE name = '${name}' AND password = '${password}'

    我可以讓一個user對象的password屬性為'OR '1' = '1,最終的SQL就變成了

    SELECT * FROM user WHERE name = 'yogurt' AND password = ''OR '1' = '1',因為OR '1' = '1'恒成立,這樣攻擊者在不需要知道用戶名和密碼的情況下,也能夠完成登錄驗證

    另外,對于pojo的入參,${}中獲取對象屬性的語法和#{}幾乎一樣,但${}在mybatis底層是通過OGNL表達式語言進行處理的,這跟#{}的反射處理有所不同

    對于簡單類型(8種java原始類型再加一個String)的入參,${}中參數的名字必須是value,例子如下

    <select id="fuzzyCount" parameterType="string" resultType="int">SELECT count(1) FROM `user` WHERE name like '%${value}%'
    </select>
    

    為什么簡單類型的變量名必須為value呢?因為mybatis源碼中寫死的value,哈哈

上面其實是比較原始的開發方式,我們需要編寫dao類,針對mapper.xml中的每個SQL標簽,做一次封裝,SQL標簽的id要以字符串的形式傳遞給SqlSession的相關方法,容易出錯,非常不方便;為了簡化開發,mybatis提供了mapper接口代理的開發方式,不需要再編寫dao類,只需要編寫一個mapper接口,一個mapper的接口和一個mapper.xml相對應,只需要調用SqlSession對象上的getMapper(),傳入mapper接口的class信息,即可獲得一個mapper代理對象,直接調用mapper接口中的方法,即相當于調用mapper.xml中的各個SQL標簽,此時就不需要指定SQL標簽的id字符串了,mapper接口中的一個方法,就對應了mapper.xml中的一個SQL標簽

基于Mapper代理的示例

全局配置文件和mapper.xml文件是最基本的配置,仍然需要。不過,這次我們不編寫dao類,我們直接創建一個mapper接口

package com.yogurt.mapper;import com.yogurt.po.Student;import java.util.List;public interface StudentMapper {List<Student> findAll();int insert(Student student);int delete(Integer id);List<Student> findByName(String value);
}

而我們的mapper.xml文件如下

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.yogurt.mapper.StudentMapper"><select id="findAll" resultType="com.yogurt.po.Student">SELECT * FROM student;</select><insert id="insert" parameterType="com.yogurt.po.Student">INSERT INTO student (name,score,age,gender) VALUES (#{name},#{score},#{age},#{gender});</insert><delete id="delete" parameterType="int">DELETE FROM student WHERE id = #{id};</delete><select id="findByName" parameterType="string" resultType="student">SELECT * FROM student WHERE name like '%${value}%';</select>
</mapper>

mapper接口和mapper.xml之間需要遵循一定規則,才能成功的讓mybatis將mapper接口和mapper.xml綁定起來

  1. mapper接口的全限定名,要和mapper.xml的namespace屬性一致
  2. mapper接口中的方法名要和mapper.xml中的SQL標簽的id一致
  3. mapper接口中的方法入參類型,要和mapper.xml中SQL語句的入參類型一致
  4. mapper接口中的方法出參類型,要和mapper.xml中SQL語句的返回值類型一致

測試代碼如下

public class MapperProxyTest {private SqlSessionFactory sqlSessionFactory;@Beforepublic void init() throws IOException {InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);}@Testpublic void test() {SqlSession sqlSession = sqlSessionFactory.openSession();StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);List<Student> studentList = mapper.findAll();studentList.forEach(System.out::println);}
}

結果如下

這個mapper接口,mybatis會自動找到對應的mapper.xml,然后對mapper接口使用動態代理的方式生成一個代理類

基于注解的示例

如果實在看xml配置文件不順眼,則可以考慮使用注解的開發方式,不過注解的開發方式,會將SQL語句寫到代碼文件中,后續的維護性和擴展性不是很好(如果想修改SQL語句,就得改代碼,得重新打包部署,而如果用xml方式,則只需要修改xml,用新的xml取替換舊的xml即可)

使用注解的開發方式,也還是得有一個全局配置的xml文件,不過mapper.xml就可以省掉了,具體操作只用2步,如下

  1. 創建一個Mapper接口

    package com.yogurt.mapper;
    import com.yogurt.po.Student;
    import org.apache.ibatis.annotations.Insert;
    import org.apache.ibatis.annotations.Select;
    import java.util.List;public interface PureStudentMapper {@Select("SELECT * FROM student")List<Student> findAll();@Insert("INSERT INTO student (name,age,score,gender) VALUES (#{name},#{age},#{score},#{gender})")int insert(Student student);
    }
    
  2. 在全局配置文件中修改<mappers>標簽,直接指定加載這個類

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration><properties resource="properties/db.properties"></properties><typeAliases><package name="com.yogurt.po"/></typeAliases><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${db.driver}"/><property name="url" value="${db.url}"/><property name="username" value="${db.user}"/><property name="password" value="${db.password}"/></dataSource></environment></environments><mappers><mapper class="com.yogurt.mapper.PureStudentMapper"/></mappers></configuration>
    

測試代碼如下

public class PureMapperTest {private SqlSessionFactory sqlSessionFactory;@Beforepublic void init() throws IOException {InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);}@Testpublic void test() {SqlSession sqlSession = sqlSessionFactory.openSession();PureStudentMapper mapper = sqlSession.getMapper(PureStudentMapper.class);mapper.insert(new Student(10,"Tomcat",120,60,0));sqlSession.commit();List<Student> studentList = mapper.findAll();studentList.forEach(System.out::println);}
}

結果如下


注:當使用注解開發時,若需要傳入多個參數,可以結合@Param注解,示例如下

package org.mybatis.demo.mapper;import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.mybatis.demo.po.Student;import java.util.List;public interface PureStudentMapper {@Select("SELECT * FROM student WHERE name like '%${name}%' AND major like '%${major}%'")List<Student> find(@Param("name") String name, @Param("major") String major);
}

@Param標簽會被mybatis處理并封裝成一個Map對象,比如上面的示例中,實際傳入的參數是一個Map對象,@Param標簽幫忙向Map中設置了值,即它做了

Map<String,Object> map = new HashMap<>();
map.put("name", name);
map.put("major",major);

將方法形參中的namemajor放到了map對象中,所以在@Select標簽中可以用${name}${major}取出map對象中的值。
--------------------(我是分割線)

上面我們見到了在全局配置文件中,兩種配置mapper的方式,分別是

<!-- 在mapper接口中使用注解 -->
<mappers><mapper class="com.yogurt.mapper.PureStudentMapper"/>
</mappers><!-- 普通加載xml -->
<mappers><mapper resource="StudentMapper.xml"/>
</mappers>

而在實際工作中,一般我們會將一張表的SQL操作封裝在一個mapper.xml中,可能有許多張表需要操作,那么我們是不是要在<mappers>標簽下寫多個<mapper>標簽呢?其實不用,還有第三種加載mapper的方法,使用<package>標簽

<mappers><package name="com.yogurt.mapper"/>
</mappers>

這樣就會自動加載com.yogurt.mapper包下的所有mapper,這種方式需要將mapper接口文件和mapper.xml文件都放在com.yogurt.mapper包下,且接口文件和xml文件的文件名要一致。注意,在IDEA的maven開發環境下,maven中還需配置<resources>標簽,否則maven打包不會將java源碼目錄下的xml文件打包進去,見下文

三種加載mapper的方式總結

  • <mapper resource="" />

    加載普通的xml文件,傳入xml的相對路徑(相對于類路徑)

  • <mapper class="" />

    使用mapper接口的全限定名來加載,若mapper接口采用注解方式,則不需要xml;若mapper接口沒有采用注解方式,則mapper接口和xml文件的名稱要相同,且在同一個目錄

  • <package name="" />

    掃描指定包下的所有mapper,若mapper接口采用注解方式,則不需要xml;若mapper接口沒有采用注解方式,則mapper接口和xml文件的名稱要相同,且在同一目錄

注意:用后兩種方式加載mapper接口和mapper.xml映射文件時,可能會報錯

仔細檢查了一下,mapper接口文件和xml映射文件確實放在了同一個目錄下,而且文件名一致,xml映射文件的namespace也和mapper接口的全限定名對的上。為什么會這樣呢?

其實是因為,對于src/main/java 源碼目錄下的文件,maven打包時只會將該目錄下的java文件打包,而其他類型的文件都不會被打包進去,去工程目錄的target目錄下看看maven構建后生成的文件

我們需要在pom.xml中的<build> 標簽下 添加<resources> 標簽,指定打包時要將xml文件打包進去

<build><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource></resources>
</build>

此時再用maven進行打包,看到對應目錄下有了xml映射文件(特別注意,這里配置了pom.xml下的resource標簽后,可能會引發一些問題,例如原本src/main/resources資源目錄下的文件沒有被打包進來,參考我的這篇文章maven打包時的資源文件問題)

此時再運行單元測試,就能正常得到結果了

應用場景

主鍵返回

通常我們會將數據庫表的主鍵id設為自增。在插入一條記錄時,我們不設置其主鍵id,而讓數據庫自動生成該條記錄的主鍵id,那么在插入一條記錄后,如何得到數據庫自動生成的這條記錄的主鍵id呢?有兩種方式

  1. 使用useGeneratedKeyskeyProperty屬性

    <insert id="insert" parameterType="com.yogurt.po.Student" useGeneratedKeys="true" keyProperty="id">INSERT INTO student (name,score,age,gender) VALUES (#{name},#{score},#{age},#{gender});</insert>
    
  2. 使用<selectKey>子標簽

    <insert id="insert" parameterType="com.yogurt.po.Student">INSERT INTO student (name,score,age,gender) VALUES (#{name},#{score},#{age},#{gender});<selectKey keyProperty="id" order="AFTER" resultType="int" >SELECT LAST_INSERT_ID();</selectKey></insert>
    

    如果使用的是mysql這樣的支持自增主鍵的數據庫,可以簡單的使用第一種方式;對于不支持自增主鍵的數據庫,如oracle,則沒有主鍵返回這一概念,而需要在插入之前先生成一個主鍵。此時可以用<selectKey>標簽,設置其order屬性為BEFORE,并在標簽體內寫上生成主鍵的SQL語句,這樣在插入之前,會先處理<selectKey>,生成主鍵,再執行真正的插入操作。

    <selectKey>標簽其實就是一條SQL,這條SQL的執行,可以放在主SQL執行之前或之后,并且會將其執行得到的結果封裝到入參的Java對象的指定屬性上。注意<selectKey>子標簽只能用在<insert><update>標簽中。上面的LAST_INSERT_ID()實際上是MySQL提供的一個函數,可以用來獲取最近插入或更新的記錄的主鍵id。

測試代碼如下

public class MapperProxyTest {private SqlSessionFactory sqlSessionFactory;@Beforepublic void init() throws IOException {InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);}@Testpublic void test() {SqlSession sqlSession = sqlSessionFactory.openSession();StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);Student student = new Student(-1, "Podman", 130, 15, 0);mapper.insert(student);sqlSession.commit();System.out.println(student.getId());}
}

結果如下

批量查詢

主要是動態SQL標簽的使用,注意如果parameterTypeList的話,則在標簽體內引用這個List,只能用變量名list,如果parameterType是數組,則只能用變量名array

<select id="batchFind" resultType="student" parameterType="java.util.List">SELECT * FROM student<where><if test="list != null and list.size() > 0">AND id in<foreach collection="list" item="id" open="(" separator="," close=")">#{id}</foreach></if></where>
</select>
	@Testpublic void testBatchQuery() {SqlSession sqlSession = sqlSessionFactory.openSession();StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);List<Student> students = mapper.batchFind(Arrays.asList(1, 2, 3, 7, 9));students.forEach(System.out::println);}

結果

動態SQL

可以根據具體的參數條件,來對SQL語句進行動態拼接。

比如在以前的開發中,由于不確定查詢參數是否存在,許多人會使用類似于where 1 = 1 來作為前綴,然后后面用AND 拼接要查詢的參數,這樣,就算要查詢的參數為空,也能夠正確執行查詢,如果不加1 = 1,則如果查詢參數為空,SQL語句就會變成SELECT * FROM student where ,SQL不合法。

mybatis里的動態標簽主要有

  • if

    <!-- 示例 -->
    <select id="find" resultType="student" parameterType="student">SELECT * FROM student WHERE age >= 18<if test="name != null and name != ''">AND name like '%${name}%'</if>
    </select>
    

    當滿足test條件時,才會將<if>標簽內的SQL語句拼接上去

  • choose

    <!-- choose 和 when , otherwise 是配套標簽 
    類似于java中的switch,只會選中滿足條件的一個
    -->
    <select id="findActiveBlogLike"resultType="Blog">SELECT * FROM BLOG WHERE state = ‘ACTIVE’<choose><when test="title != null">AND title like #{title}</when><when test="author != null and author.name != null">AND author_name like #{author.name}</when><otherwise>AND featured = 1</otherwise></choose>
    </select>
    
  • trim

    • where

      <where>標簽只會在至少有一個子元素返回了SQL語句時,才會向SQL語句中添加WHERE,并且如果WHERE之后是以AND或OR開頭,會自動將其刪掉

      <select id="findActiveBlogLike"resultType="Blog">SELECT * FROM BLOG<where><if test="state != null">state = #{state}</if><if test="title != null">AND title like #{title}</if><if test="author != null and author.name != null">AND author_name like #{author.name}</if></where>
      </select>
      

      <where>標簽可以用<trim>標簽代替

      <trim prefix="WHERE" prefixOverrides="AND | OR">...
      </trim>
      
    • set

      在至少有一個子元素返回了SQL語句時,才會向SQL語句中添加SET,并且如果SET之后是以,開頭的話,會自動將其刪掉

      <set>標簽相當于如下的<trim>標簽

      <trim prefix="SET" prefixOverrides=",">...
      </trim>
      

    可以通過<trim>標簽更加靈活地對SQL進行定制

    實際上在mybatis源碼,也能看到trim與set,where標簽的父子關系

  • foreach

    用來做迭代拼接的,通常會與SQL語句中的IN查詢條件結合使用,注意,到parameterType為List(鏈表)或者Array(數組),后面在引用時,參數名必須為list或者array。如在foreach標簽中,collection屬性則為需要迭代的集合,由于入參是個List,所以參數名必須為list

    <select id="batchFind" resultType="student" parameterType="list">SELECT * FROM student WHERE id in<foreach collection="list" item="item" open="(" separator="," close=")">#{item}</foreach>
    </select>
    
  • sql

    可將重復的SQL片段提取出來,然后在需要的地方,使用<include>標簽進行引用

    <select id="findUser" parameterType="user" resultType="user">SELECT * FROM user<include refid="whereClause"/>
    </select><sql id="whereClause"><where><if test="user != null">AND username like '%${user.name}%'</if></where>
    </sql>
    
  • bind

    mybatis的動態SQL都是用OGNL表達式進行解析的,如果需要創建OGNL表達式以外的變量,可以用bind標簽

    <select id="selectBlogsLike" resultType="Blog"><bind name="pattern" value="'%' + _parameter.getTitle() + '%'" />SELECT * FROM BLOGWHERE title LIKE #{pattern}
    </select>
    

緩存

  • 一級緩存

    默認開啟,同一個SqlSesion級別共享的緩存,在一個SqlSession的生命周期內,執行2次相同的SQL查詢,則第二次SQL查詢會直接取緩存的數據,而不走數據庫,當然,若第一次和第二次相同的SQL查詢之間,執行了DML(INSERT/UPDATE/DELETE),則一級緩存會被清空,第二次查詢相同SQL仍然會走數據庫

    一級緩存在下面情況會被清除

    • 在同一個SqlSession下執行增刪改操作時(不必提交),會清除一級緩存
    • SqlSession提交或關閉時(關閉時會自動提交),會清除一級緩存
    • 對mapper.xml中的某個CRUD標簽,設置屬性flushCache=true,這樣會導致該MappedStatement的一級緩存,二級緩存都失效(一個CRUD標簽在mybatis中會被封裝成一個MappedStatement)
    • 在全局配置文件中設置 <setting name="localCacheScope" value="STATEMENT"/>,這樣會使一級緩存失效,二級緩存不受影響
  • 二級緩存

    默認關閉,可通過全局配置文件中的<settings name="cacheEnabled" value="true"/>開啟二級緩存總開關,然后在某個具體的mapper.xml中增加<cache />,即開啟了該mapper.xml的二級緩存。二級緩存是mapper級別的緩存,粒度比一級緩存大,多個SqlSession可以共享同一個mapper的二級緩存。注意開啟二級緩存后,SqlSession需要提交,查詢的數據才會被刷新到二級緩存當中

緩存的詳細分析可以參考我之前的文章 => 極簡mybatis緩存

關聯查詢

使用<resultMap> 標簽以及<association><collection> 子標簽,進行關聯查詢,比較簡單,不多說

延遲加載

延遲加載是結合關聯查詢進行應用的。也就是說,只在<association><collection> 標簽上起作用

對于關聯查詢,若不采用延遲加載策略,而是一次性將關聯的從信息都查詢出來,則在主信息比較多的情況下,會產生N+1問題,導致性能降低。比如用戶信息和訂單信息是一對多的關系,在查詢用戶信息時,設置了關聯查詢訂單信息,如不采用延遲加載策略,假設共有100個用戶,則我們查這100個用戶的基本信息只需要一次SQL查詢

select * from user;

若開啟了關聯查詢,且不是延遲加載,則對于這100個用戶,會發出100條SQL去查用戶對應的訂單信息,這樣會造成不必要的性能開銷(其實我認為稱之為1+N問題更為合適)

select * from orders where u_id = 1;
select * from orders where u_id = 2;
....
select * from orders where u_id = 100;

當我們可能只關心id=3的用戶的訂單信息,則很多的關聯信息是無用的,于是,采用延遲加載策略,可以按需加載從信息,在需要某個主信息對應的從信息時,再發送SQL去執行查詢,而不是一次性全部查出來,這樣能很好的提升性能。

另外,針對N+1問題,除了采用延遲加載的策略按需進行關聯查詢。如果在某些場景下,確實需要查詢所有主信息關聯的從信息。在上面的例子中,就是如果確實需要把這100個用戶關聯的訂單信息全部查詢出來,那怎么辦呢?這里提供2個解決思路。

1是采用連接查詢,只使用1條SQL即可,如下

select * from user as u left join orders as o on u.id = o.u_id;

但使用連接查詢查出來的結果是兩表的笛卡爾積,還需要自行進行數據的分組處理

2是使用兩個步驟來完成,先執行一條SQL,查出全部的用戶信息,并把用戶的id放在一個集合中,然后第二條SQL采用IN關鍵字查詢即可。這種方式也可以簡化為子查詢,如下

select * from orders where u_id in (select id from user);

現在說回來,mybatis的延遲加載默認是關閉的,可以通過全局配置文件中的<setting name="lazyLoadingEnabled" value="true"/>來開啟,開啟后,所有的SELECT查詢,若有關聯對象,都會采用延遲加載的策略。當然,也可以對指定的某個CRUD標簽單獨禁用延遲加載策略,通過設置SELECT標簽中的fetchType=eager,則可以關閉該標簽的延遲加載。

(還有一個侵入式延遲加載的概念,在配置文件中通過<setting name="aggressiveLazyLoading" value="true">來開啟,大概是說,訪問主對象中的主信息時,就會觸發延遲加載,將從信息查詢上來,這其實并不是真正意義的延遲加載,真正意義上的延遲加載應該是訪問主對象中的從信息時,才觸發延遲加載,去加載從信息,侵入式延遲加載默認是關閉的,一般情況下可以不用管他)

注意,延遲加載在關聯查詢的場景下才有意義。需要配合<resultMap>標簽下的<association><collecction> 標簽使用

<!-- StudentMapper.xml -->
<resultMap id="studentExt" type="com.yogurt.po.StudentExt"><result property="id" column="id"/><result property="name" column="name"/><result property="score" column="score"/><result property="age" column="age"/><result property="gender" column="gender"/><!-- 當延遲加載總開關開啟時,resultMap下的association和collection標簽中,若通過select屬性指定嵌套查詢的SQL,則其fetchType默認是lazy的,當在延遲加載總開關開啟時,需要對個別的關聯查詢禁用延遲加載時,才有必要配置fetchType = eager --><!--column用于指定用于關聯查詢的列property用于指定要封裝到StudentExt中的哪個屬性javaType用于指定關聯查詢得到的對象select用于指定關聯查詢時,調用的是哪一個DQL--><association property="clazz" javaType="com.yogurt.po.Clazz" column="class_id"select="com.yogurt.mapper.ClassMapper.findById" fetchType="lazy"/></resultMap><select id="findLazy" parameterType="string" resultMap="studentExt">SELECT * FROM student WHERE name like '%${value}%';</select>
<!-- com.yogurt.mapper.ClassMapper -->
<select id="findById" parameterType="int" resultType="com.yogurt.po.Clazz">SELECT * FROM class WHERE id = #{id}
</select>
/** 用于封裝關聯查詢的對象 **/
public class StudentExt{private Integer id;private String name;private Integer score;private Integer age;private Integer gender;/** 關聯對象 **/private Clazz clazz;//getter/setter
}

逆向工程

mybatis官方提供了mapper自動生成工具mybatis-generator-core來針對單表,生成PO類,以及Mapper接口和mapper.xml映射文件。針對單表,可以不需要再手動編寫xml配置文件和mapper接口文件了,非常方便。美中不足的是它不支持生成關聯查詢。一般做關聯查詢,就自己單獨寫SQL就好了。

基于IDEA的mybatis逆向工程操作步驟如下

  1. 配置maven插件

    <build><plugins><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.7</version><configuration><!-- 輸出日志 --><verbose>true</verbose><overwrite>true</overwrite></configuration></plugin></plugins></build>
    
  2. 在resources目錄下創建名為generatorConfig.xml的配置文件

  3. 配置文件的模板如下

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><!--導入屬性配置--><properties resource="properties/xx.properties"></properties><!-- 指定數據庫驅動的jdbc驅動jar包的位置 --><classPathEntry location="C:\Users\Vergi\.m2\repository\mysql\mysql-connector-java\8.0.11\mysql-connector-java-8.0.11.jar" /><!-- context 是逆向工程的主要配置信息 --><!-- id:起個名字 --><!-- targetRuntime:設置生成的文件適用于那個 mybatis 版本 --><context id="default" targetRuntime="MyBatis3"><!--optional,旨在創建class時,對注釋進行控制--><commentGenerator><property name="suppressDate" value="true" /><!-- 是否去除自動生成的注釋 true:是 : false:否 --><property name="suppressAllComments" value="true" /></commentGenerator><!--jdbc的數據庫連接--><jdbcConnection driverClass="${db.driver}"connectionURL="${db.url}"userId="${db.user}"password="${db.password}"></jdbcConnection><!--非必須,類型處理器,在數據庫類型和java類型之間的轉換控制--><javaTypeResolver><!-- 默認情況下數據庫中的 decimal,bigInt 在 Java 對應是 sql 下的 BigDecimal 類 --><!-- 不是 double 和 long 類型 --><!-- 使用常用的基本類型代替 sql 包下的引用類型 --><property name="forceBigDecimals" value="false" /></javaTypeResolver><!-- targetPackage:生成的實體類所在的包 --><!-- targetProject:生成的實體類所在的硬盤位置 --><javaModelGenerator targetPackage="mybatis.generator.model"targetProject=".\src\main\java"><!-- 是否允許子包 --><property name="enableSubPackages" value="false" /><!-- 是否清理從數據庫中查詢出的字符串左右兩邊的空白字符 --><property name="trimStrings" value="true" /></javaModelGenerator><!-- targetPackage 和 targetProject:生成的 mapper.xml 文件的包和位置 --><sqlMapGenerator targetPackage="mybatis.generator.mappers"targetProject=".\src\main\resources"><!-- 針對數據庫的一個配置,是否把 schema 作為字包名 --><property name="enableSubPackages" value="false" /></sqlMapGenerator><!-- targetPackage 和 targetProject:生成的 mapper接口文件的包和位置 --><javaClientGenerator type="XMLMAPPER"targetPackage="mybatis.generator.dao" targetProject=".\src\main\java"><!-- 針對 oracle 數據庫的一個配置,是否把 schema 作為子包名 --><property name="enableSubPackages" value="false" /></javaClientGenerator><!-- 這里指定要生成的表 --><table tableName="student"/><table tableName="product"/></context>
    </generatorConfiguration>
    
  4. 雙擊執行mybatis-generator的maven插件

執行日志如下

生成的文件如下

能看到mybatis-generator除了給我們生成了基本的PO類(上圖的Student和Product),還額外生成了Example類。Example類是為了方便執行SQL時傳遞查詢條件的。使用的示例如下

public class GeneratorTest {private SqlSessionFactory sqlSessionFactory;@Beforepublic void init() throws IOException {InputStream resourceAsStream = Resources.getResourceAsStream("mysql8-config.xml");sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);}@Testpublic void test() {SqlSession sqlSession = sqlSessionFactory.openSession();StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);StudentExample example = new StudentExample();StudentExample.Criteria criteria = example.createCriteria();criteria.andNameLike("%o%");List<Student> students = mapper.selectByExample(example);students.forEach(System.out::println);}
}

結果如下

PageHelper分頁插件

使用該插件,快速實現查詢結果的分頁,使用步驟如下

  1. pom.xml中配置依賴

    <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.6</version>
    </dependency>
    
  2. mybatis全局配置文件中配置<plugin>標簽

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration><properties resource="properties/xx.properties"></properties><plugins><plugin interceptor="com.github.pagehelper.PageInterceptor"><property name="helperDialect" value="mysql"/></plugin></plugins><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${db.driver}"/><property name="url" value="${db.url}"/><property name="username" value="${db.user}"/><property name="password" value="${db.password}"/></dataSource></environment></environments><mappers><package name="mybatis.generator.dao"/></mappers></configuration>
    
  3. 在執行查詢之前,先設置分頁信息

    // 查詢第一頁,每頁3條信息
    PageHelper.startPage(1,3);
    

    先看一下查所有數據

    	@Testpublic void test() {SqlSession sqlSession = sqlSessionFactory.openSession();ProductMapper mapper = sqlSession.getMapper(ProductMapper.class);//PageHelper.startPage(1,3);List<Product> products = mapper.selectByExample(new ProductExample());products.forEach(System.out::println);}
    

    加上PageHelper分頁

    	@Testpublic void test() {SqlSession sqlSession = sqlSessionFactory.openSession();ProductMapper mapper = sqlSession.getMapper(ProductMapper.class);PageHelper.startPage(1,3);List<Product> products = mapper.selectByExample(new ProductExample());products.forEach(System.out::println);}
    


    特別注意:在編寫mapper.xml的時候,SQL語句的結尾不要帶上;,因為PageHelper插件是在SQL末尾拼接LIMIT關鍵字來進行分頁的,若SQL語句帶上了;,就會造成SQL語法錯誤

    另外,PageHelper會先查詢總數量,然后再發出分頁查詢,打開mybatis的日志時,可以看到發出了2條SQL
    當開啟PageHelper時,查詢得到的List實際是PageHelper中自定義的一個類Page,這個類實現了List接口,并封裝了分頁的相關信息(總頁數,當前頁碼等)。

    可以通過PageInfo來獲取分頁的相關信息,代碼如下

    @Test
    public void test() {SqlSession sqlSession = factory.openSession();PageHelper.startPage(1,3);ProductMapper mapper = sqlSession.getMapper(ProductMapper.class);List<Product> list = mapper.findAll();list.forEach(System.out::println);PageInfo<Product> pageInfo = new PageInfo<>(list);System.out.println(pageInfo.getTotal()); // 獲得總數System.out.println(pageInfo.getPageSize());  // 獲得總頁數
    }
    

    PageHelper插件的源碼分析可以查看我之前的文章 =>
    極簡PageHelper源碼分析

Mybatis Plus

mybatis雖然非常方便,但也需要編寫大量的SQL語句,于是mybatis plus就應運而生了。它是一個mybatis增強工具,為了簡化開發,提高效率。搭配Spring-Boot食用簡直不要太爽。

可以參考我的這篇文章 mybatis-plus一發入魂 ,或者mybatis-plus官網,以及慕課網的入門教程和進階教程

(完)

注:該文是一篇較為全面詳細的筆記,內容篇幅很長。當對mybatis的使用較為熟練后,可以查看這篇極為簡短的 mybatis精髓總結,從整體架構和源碼層面上把握mybatis。

總結

以上是生活随笔為你收集整理的mybatis看这一篇就够了,简单全面一发入魂的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

精品国产乱码久久久久乱码 | 人妻少妇精品久久 | 国产精品va在线观看无码 | 亚洲一区二区三区四区 | 人人爽人人澡人人人妻 | 美女毛片一区二区三区四区 | 欧洲极品少妇 | 网友自拍区视频精品 | 日本精品人妻无码免费大全 | 亚洲国产精品一区二区美利坚 | 国产又爽又黄又刺激的视频 | 成人av无码一区二区三区 | 丰满人妻一区二区三区免费视频 | 亚洲熟妇自偷自拍另类 | 性欧美大战久久久久久久 | 国产午夜无码视频在线观看 | 日本精品少妇一区二区三区 | 亚洲中文字幕无码一久久区 | 亚洲国产欧美日韩精品一区二区三区 | 日韩欧美中文字幕在线三区 | 黄网在线观看免费网站 | 成 人 网 站国产免费观看 | 国产乱人无码伦av在线a | 熟女俱乐部五十路六十路av | 97精品人妻一区二区三区香蕉 | 国产麻豆精品精东影业av网站 | 中文字幕+乱码+中文字幕一区 | 思思久久99热只有频精品66 | 亚洲啪av永久无码精品放毛片 | 日韩精品成人一区二区三区 | 国产欧美精品一区二区三区 | 亚洲成av人片在线观看无码不卡 | 正在播放东北夫妻内射 | 国产色视频一区二区三区 | 男人的天堂av网站 | 老司机亚洲精品影院 | 性生交大片免费看女人按摩摩 | 国产精品高潮呻吟av久久4虎 | 精品欧美一区二区三区久久久 | 亚欧洲精品在线视频免费观看 | 乱码午夜-极国产极内射 | av香港经典三级级 在线 | 国产高清av在线播放 | 男女超爽视频免费播放 | 麻豆人妻少妇精品无码专区 | 亚洲综合另类小说色区 | 中国女人内谢69xxxx | 无码精品国产va在线观看dvd | 国产午夜亚洲精品不卡 | 欧美成人免费全部网站 | 亚洲国产精品成人久久蜜臀 | 伊人久久大香线蕉av一区二区 | 人妻互换免费中文字幕 | 7777奇米四色成人眼影 | 大地资源网第二页免费观看 | 国产高清不卡无码视频 | 精品国产一区二区三区av 性色 | 午夜精品一区二区三区的区别 | 天天综合网天天综合色 | 亚洲欧美国产精品久久 | 亚洲综合在线一区二区三区 | 人人爽人人澡人人人妻 | 亚洲中文字幕久久无码 | 动漫av网站免费观看 | 国产成人无码av在线影院 | 水蜜桃色314在线观看 | 午夜性刺激在线视频免费 | 国产麻豆精品一区二区三区v视界 | 日韩精品乱码av一区二区 | 国产女主播喷水视频在线观看 | 美女黄网站人色视频免费国产 | 午夜性刺激在线视频免费 | 18无码粉嫩小泬无套在线观看 | 婷婷五月综合激情中文字幕 | 中文字幕无码免费久久9一区9 | 色综合久久网 | 黑人巨大精品欧美一区二区 | 国产精品理论片在线观看 | 国产精品无码一区二区桃花视频 | 成熟妇人a片免费看网站 | 亚洲一区二区三区 | 中文字幕无码日韩欧毛 | 精品久久综合1区2区3区激情 | 丰满岳乱妇在线观看中字无码 | 青春草在线视频免费观看 | 老太婆性杂交欧美肥老太 | 亚洲国产欧美在线成人 | 日本一卡二卡不卡视频查询 | 国产精品人人爽人人做我的可爱 | 76少妇精品导航 | 丝袜足控一区二区三区 | 日本乱偷人妻中文字幕 | 无码成人精品区在线观看 | 99麻豆久久久国产精品免费 | 青春草在线视频免费观看 | 国产成人精品一区二区在线小狼 | 国产无遮挡又黄又爽又色 | 久久午夜无码鲁丝片秋霞 | 青草视频在线播放 | 国产精品99爱免费视频 | 人人妻人人澡人人爽欧美一区九九 | 丰满少妇熟乱xxxxx视频 | 亚洲 欧美 激情 小说 另类 | 精品久久久久久人妻无码中文字幕 | 欧美熟妇另类久久久久久不卡 | 成熟妇人a片免费看网站 | www国产亚洲精品久久久日本 | 六月丁香婷婷色狠狠久久 | 一本一道久久综合久久 | 色综合视频一区二区三区 | 牲欲强的熟妇农村老妇女视频 | 国产成人综合色在线观看网站 | 国内老熟妇对白xxxxhd | 377p欧洲日本亚洲大胆 | 国产口爆吞精在线视频 | 熟女少妇在线视频播放 | 亚洲中文字幕va福利 | 日韩精品乱码av一区二区 | 野外少妇愉情中文字幕 | 人妻与老人中文字幕 | 爱做久久久久久 | 国产热a欧美热a在线视频 | 色欲av亚洲一区无码少妇 | 国产乱人偷精品人妻a片 | 午夜福利试看120秒体验区 | 久久99热只有频精品8 | 亚洲精品无码国产 | а√资源新版在线天堂 | 亚洲精品www久久久 | 国语自产偷拍精品视频偷 | 久久天天躁狠狠躁夜夜免费观看 | 欧洲欧美人成视频在线 | 玩弄中年熟妇正在播放 | 无码乱肉视频免费大全合集 | 久9re热视频这里只有精品 | 国产va免费精品观看 | 无码吃奶揉捏奶头高潮视频 | 日本精品人妻无码77777 天堂一区人妻无码 | 国产精品自产拍在线观看 | 天天摸天天碰天天添 | 色五月丁香五月综合五月 | 天天躁夜夜躁狠狠是什么心态 | 九月婷婷人人澡人人添人人爽 | 一本大道久久东京热无码av | 久久熟妇人妻午夜寂寞影院 | 成熟女人特级毛片www免费 | 亚洲一区二区三区在线观看网站 | 2020久久超碰国产精品最新 | 无码人妻av免费一区二区三区 | 亚洲综合久久一区二区 | 亚洲精品成人av在线 | 国产精品人人妻人人爽 | 免费国产黄网站在线观看 | 乱人伦人妻中文字幕无码久久网 | 97精品人妻一区二区三区香蕉 | 国语精品一区二区三区 | 国语精品一区二区三区 | 亚洲精品一区三区三区在线观看 | 亚洲精品久久久久avwww潮水 | 亚洲娇小与黑人巨大交 | 国产精品沙发午睡系列 | 精品夜夜澡人妻无码av蜜桃 | 骚片av蜜桃精品一区 | 精品日本一区二区三区在线观看 | 亚洲の无码国产の无码影院 | 国产尤物精品视频 | 国产成人综合在线女婷五月99播放 | 18无码粉嫩小泬无套在线观看 | 狠狠cao日日穞夜夜穞av | 中文亚洲成a人片在线观看 | 欧美日韩精品 | 少妇性l交大片欧洲热妇乱xxx | 在线欧美精品一区二区三区 | 久久国产36精品色熟妇 | 女人和拘做爰正片视频 | 亚洲成av人片天堂网无码】 | 欧美性猛交内射兽交老熟妇 | 色诱久久久久综合网ywww | 午夜不卡av免费 一本久久a久久精品vr综合 | 久久精品人人做人人综合试看 | 国产精品办公室沙发 | 一本无码人妻在中文字幕免费 | 欧美激情一区二区三区成人 | 午夜福利一区二区三区在线观看 | 日本饥渴人妻欲求不满 | 欧美色就是色 | 久久综合久久自在自线精品自 | 色一情一乱一伦一区二区三欧美 | 国产在线一区二区三区四区五区 | 狠狠亚洲超碰狼人久久 | 亚洲春色在线视频 | 婷婷丁香六月激情综合啪 | 夜夜影院未满十八勿进 | 人人妻人人藻人人爽欧美一区 | 装睡被陌生人摸出水好爽 | 国产婷婷色一区二区三区在线 | 狂野欧美性猛xxxx乱大交 | 日韩亚洲欧美精品综合 | 熟女俱乐部五十路六十路av | 欧美xxxx黑人又粗又长 | 国产 精品 自在自线 | 丰满肥臀大屁股熟妇激情视频 | 精品国产一区二区三区四区在线看 | 亚洲国产精品一区二区美利坚 | 日本爽爽爽爽爽爽在线观看免 | 久久精品女人的天堂av | 97久久精品无码一区二区 | 偷窥村妇洗澡毛毛多 | 中文字幕人妻丝袜二区 | 青青青爽视频在线观看 | 亚洲成在人网站无码天堂 | 奇米影视7777久久精品 | 午夜精品久久久久久久 | 久久国产精品萌白酱免费 | 东京热无码av男人的天堂 | 亚洲国产综合无码一区 | 精品久久久久香蕉网 | 一个人看的视频www在线 | 亚洲综合无码久久精品综合 | 午夜福利电影 | 国产乱码精品一品二品 | 久久天天躁狠狠躁夜夜免费观看 | 国产激情无码一区二区app | 精品国产一区二区三区av 性色 | 久久无码专区国产精品s | 国产高清av在线播放 | 日本一本二本三区免费 | 丰满少妇人妻久久久久久 | 国产人妻精品一区二区三区 | 欧美高清在线精品一区 | 日韩人妻无码一区二区三区久久99 | 亚洲第一网站男人都懂 | 国产乱人无码伦av在线a | 高清不卡一区二区三区 | av无码不卡在线观看免费 | 色一情一乱一伦一视频免费看 | 综合激情五月综合激情五月激情1 | 一本色道久久综合狠狠躁 | 日日天日日夜日日摸 | 久久99热只有频精品8 | 黄网在线观看免费网站 | 日韩在线不卡免费视频一区 | 成人片黄网站色大片免费观看 | 正在播放老肥熟妇露脸 | 男人和女人高潮免费网站 | 久久亚洲中文字幕精品一区 | 999久久久国产精品消防器材 | 欧美乱妇无乱码大黄a片 | 日日噜噜噜噜夜夜爽亚洲精品 | 日韩精品无码一本二本三本色 | 老熟妇仑乱视频一区二区 | 日韩欧美群交p片內射中文 | 性色欲情网站iwww九文堂 | 欧美老妇交乱视频在线观看 | 77777熟女视频在线观看 а天堂中文在线官网 | 国产精品自产拍在线观看 | 精品亚洲成av人在线观看 | 西西人体www44rt大胆高清 | 丰满妇女强制高潮18xxxx | 日韩欧美群交p片內射中文 | 国产人妻人伦精品1国产丝袜 | 香港三级日本三级妇三级 | 国产办公室秘书无码精品99 | 亚洲国产成人av在线观看 | 日韩人妻无码一区二区三区久久99 | √天堂资源地址中文在线 | 国产精品高潮呻吟av久久 | 最近的中文字幕在线看视频 | 伦伦影院午夜理论片 | 麻豆国产人妻欲求不满谁演的 | 精品国产乱码久久久久乱码 | 动漫av一区二区在线观看 | 大屁股大乳丰满人妻 | 欧美xxxxx精品 | 久久99精品国产.久久久久 | 国产精品99久久精品爆乳 | 丰满人妻被黑人猛烈进入 | 国产欧美亚洲精品a | 亚洲精品成人福利网站 | 曰本女人与公拘交酡免费视频 | 日韩无套无码精品 | 美女毛片一区二区三区四区 | 最近免费中文字幕中文高清百度 | 国产精品va在线观看无码 | 日本丰满熟妇videos | 国产艳妇av在线观看果冻传媒 | 午夜嘿嘿嘿影院 | 欧洲精品码一区二区三区免费看 | 男女性色大片免费网站 | 全球成人中文在线 | 日韩精品一区二区av在线 | 一二三四社区在线中文视频 | 国产综合久久久久鬼色 | 特级做a爰片毛片免费69 | 色综合久久久无码中文字幕 | 老子影院午夜精品无码 | 亚洲中文字幕在线观看 | 精品偷拍一区二区三区在线看 | 男人的天堂av网站 | 国产成人精品三级麻豆 | 国产午夜无码精品免费看 | v一区无码内射国产 | 一区二区三区高清视频一 | 欧美亚洲日韩国产人成在线播放 | 无码人妻精品一区二区三区不卡 | 啦啦啦www在线观看免费视频 | 在线天堂新版最新版在线8 | 欧美黑人性暴力猛交喷水 | 97资源共享在线视频 | 免费乱码人妻系列无码专区 | 亚洲中文字幕在线观看 | 无遮挡国产高潮视频免费观看 | 久久久久成人精品免费播放动漫 | 在线欧美精品一区二区三区 | av无码电影一区二区三区 | 天海翼激烈高潮到腰振不止 | 日韩精品无码一本二本三本色 | 国产尤物精品视频 | 亚洲精品一区国产 | 国产精品办公室沙发 | 亚洲区欧美区综合区自拍区 | 领导边摸边吃奶边做爽在线观看 | 亚洲国产综合无码一区 | 日本护士毛茸茸高潮 | 国产成人亚洲综合无码 | 亚洲人成网站免费播放 | 国产av无码专区亚洲awww | 无码中文字幕色专区 | 国内揄拍国内精品少妇国语 | 欧美日韩亚洲国产精品 | 正在播放老肥熟妇露脸 | 精品无码av一区二区三区 | 亚洲国产精品无码久久久久高潮 | 黑人巨大精品欧美黑寡妇 | 国产成人无码午夜视频在线观看 | 久久五月精品中文字幕 | 亚洲 日韩 欧美 成人 在线观看 | 98国产精品综合一区二区三区 | 99国产欧美久久久精品 | 99久久精品午夜一区二区 | 久久久久99精品国产片 | 自拍偷自拍亚洲精品被多人伦好爽 | 精品国产av色一区二区深夜久久 | 啦啦啦www在线观看免费视频 | 亚洲一区二区三区无码久久 | 国产麻豆精品精东影业av网站 | 免费观看激色视频网站 | 亚洲成av人片在线观看无码不卡 | 97无码免费人妻超级碰碰夜夜 | 天天摸天天碰天天添 | 亚洲经典千人经典日产 | 久久午夜无码鲁丝片午夜精品 | а√资源新版在线天堂 | 国产精品第一国产精品 | 骚片av蜜桃精品一区 | 夜夜躁日日躁狠狠久久av | 国产精品人人妻人人爽 | 麻豆国产人妻欲求不满 | 夜夜高潮次次欢爽av女 | 国产肉丝袜在线观看 | 香蕉久久久久久av成人 | av人摸人人人澡人人超碰下载 | 青草视频在线播放 | 亚洲欧美综合区丁香五月小说 | 亚拍精品一区二区三区探花 | 日日碰狠狠躁久久躁蜜桃 | 精品国产麻豆免费人成网站 | 婷婷五月综合缴情在线视频 | 亚洲日韩乱码中文无码蜜桃臀网站 | 国产av一区二区三区最新精品 | 亚洲精品久久久久久久久久久 | 人妻无码久久精品人妻 | 精品国产青草久久久久福利 | 中文字幕 亚洲精品 第1页 | 亚洲精品国产精品乱码视色 | 18禁黄网站男男禁片免费观看 | 国产绳艺sm调教室论坛 | 爽爽影院免费观看 | 老熟妇仑乱视频一区二区 | 国产热a欧美热a在线视频 | 亚洲一区二区三区含羞草 | 麻豆成人精品国产免费 | 又粗又大又硬又长又爽 | 丰满少妇弄高潮了www | 日韩精品乱码av一区二区 | 精品熟女少妇av免费观看 | 精品成人av一区二区三区 | 精品国产成人一区二区三区 | 自拍偷自拍亚洲精品被多人伦好爽 | 疯狂三人交性欧美 | 精品国产乱码久久久久乱码 | 天天摸天天碰天天添 | 久久精品成人欧美大片 | 成人性做爰aaa片免费看不忠 | 无码国产乱人伦偷精品视频 | 精品久久久久香蕉网 | 久久精品国产亚洲精品 | 亚洲 a v无 码免 费 成 人 a v | 熟妇女人妻丰满少妇中文字幕 | 日日碰狠狠丁香久燥 | 青青草原综合久久大伊人精品 | 丰满人妻一区二区三区免费视频 | 国产日产欧产精品精品app | 国精品人妻无码一区二区三区蜜柚 | 麻花豆传媒剧国产免费mv在线 | 亚洲色欲色欲天天天www | 荫蒂添的好舒服视频囗交 | 精品夜夜澡人妻无码av蜜桃 | 亚洲 日韩 欧美 成人 在线观看 | 人妻少妇精品视频专区 | 婷婷丁香五月天综合东京热 | 中文字幕人妻丝袜二区 | 国产香蕉尹人综合在线观看 | 国产色在线 | 国产 | 国产精品无套呻吟在线 | 少妇性l交大片欧洲热妇乱xxx | 一本久久a久久精品亚洲 | 一本无码人妻在中文字幕免费 | 美女黄网站人色视频免费国产 | 国产亚洲精品久久久久久大师 | 日本xxxx色视频在线观看免费 | 日日麻批免费40分钟无码 | 亚洲中文字幕av在天堂 | 一本久久伊人热热精品中文字幕 | 六十路熟妇乱子伦 | 亚洲中文字幕无码中文字在线 | 九九久久精品国产免费看小说 | 国产亚洲精品久久久ai换 | 美女扒开屁股让男人桶 | 日韩少妇内射免费播放 | 国产97人人超碰caoprom | 中文字幕乱妇无码av在线 | 国内丰满熟女出轨videos | 午夜精品久久久内射近拍高清 | 性欧美videos高清精品 | 国色天香社区在线视频 | 国产精品第一区揄拍无码 | 亚洲国产av精品一区二区蜜芽 | 又粗又大又硬又长又爽 | 国产激情精品一区二区三区 | 亚洲精品欧美二区三区中文字幕 | 日韩欧美中文字幕公布 | 久久国产劲爆∧v内射 | 青青草原综合久久大伊人精品 | 亚洲综合另类小说色区 | 一二三四在线观看免费视频 | 日本欧美一区二区三区乱码 | 精品一二三区久久aaa片 | 亚洲精品综合一区二区三区在线 | 久久久久人妻一区精品色欧美 | 亚洲午夜福利在线观看 | 国产精品自产拍在线观看 | 精品欧洲av无码一区二区三区 | 久久久久免费精品国产 | 国产欧美亚洲精品a | 婷婷丁香六月激情综合啪 | 18黄暴禁片在线观看 | 成人三级无码视频在线观看 | 亚洲国产精品无码久久久久高潮 | 亚洲一区av无码专区在线观看 | 亚洲 欧美 激情 小说 另类 | 国产人成高清在线视频99最全资源 | 野外少妇愉情中文字幕 | 成人aaa片一区国产精品 | 老头边吃奶边弄进去呻吟 | 国产av剧情md精品麻豆 | 久久久精品欧美一区二区免费 | 久久精品无码一区二区三区 | 2019nv天堂香蕉在线观看 | 国产精品久久久久久亚洲影视内衣 | 亚洲精品一区二区三区大桥未久 | 日产国产精品亚洲系列 | 精品国产精品久久一区免费式 | 国产真实夫妇视频 | 久久精品中文字幕一区 | 免费乱码人妻系列无码专区 | 波多野结衣乳巨码无在线观看 | 在线观看免费人成视频 | 在线精品国产一区二区三区 | 亚洲国产精品成人久久蜜臀 | 亚洲成a人片在线观看无码 | 久久天天躁夜夜躁狠狠 | 国产激情艳情在线看视频 | 亚洲中文字幕成人无码 | 色一情一乱一伦一区二区三欧美 | 国产另类ts人妖一区二区 | 色一情一乱一伦一区二区三欧美 | 亚洲人成无码网www | 人人妻人人澡人人爽人人精品浪潮 | 性做久久久久久久免费看 | 国产精品对白交换视频 | 风流少妇按摩来高潮 | 麻豆av传媒蜜桃天美传媒 | 4hu四虎永久在线观看 | 亚洲一区二区三区偷拍女厕 | 性色欲网站人妻丰满中文久久不卡 | 亚洲爆乳大丰满无码专区 | 欧美成人免费全部网站 | 亚洲成a人片在线观看无码 | 88国产精品欧美一区二区三区 | 午夜熟女插插xx免费视频 | 秋霞成人午夜鲁丝一区二区三区 | 国产精品va在线观看无码 | 亚洲日韩av一区二区三区四区 | 在线亚洲高清揄拍自拍一品区 | 人妻少妇精品无码专区二区 | 久久人人97超碰a片精品 | 日日噜噜噜噜夜夜爽亚洲精品 | 熟女少妇人妻中文字幕 | 久热国产vs视频在线观看 | 国产精品毛片一区二区 | 无码乱肉视频免费大全合集 | 日韩人妻少妇一区二区三区 | 日日天日日夜日日摸 | 国产无av码在线观看 | 精品无码av一区二区三区 | 水蜜桃亚洲一二三四在线 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 色综合久久88色综合天天 | 99精品国产综合久久久久五月天 | 99麻豆久久久国产精品免费 | 国产精品毛多多水多 | 日日天日日夜日日摸 | 久久成人a毛片免费观看网站 | 激情国产av做激情国产爱 | 香蕉久久久久久av成人 | 性色av无码免费一区二区三区 | 男人和女人高潮免费网站 | 999久久久国产精品消防器材 | 久久久精品欧美一区二区免费 | 欧洲vodafone精品性 | 日本精品久久久久中文字幕 | 欧美怡红院免费全部视频 | 乱中年女人伦av三区 | 乱码午夜-极国产极内射 | 麻豆国产人妻欲求不满谁演的 | 人妻少妇精品视频专区 | 精品国产成人一区二区三区 | 欧美一区二区三区视频在线观看 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 少妇一晚三次一区二区三区 | 无码人妻久久一区二区三区不卡 | 又湿又紧又大又爽a视频国产 | 国产乱人偷精品人妻a片 | 无套内谢的新婚少妇国语播放 | 国产人妻人伦精品1国产丝袜 | 无码成人精品区在线观看 | 欧美日韩色另类综合 | 一本大道伊人av久久综合 | 少妇无套内谢久久久久 | 亚洲精品国偷拍自产在线麻豆 | 国产人妖乱国产精品人妖 | 俄罗斯老熟妇色xxxx | 久久久精品国产sm最大网站 | 性生交大片免费看l | 亚洲精品国产第一综合99久久 | 中文字幕av日韩精品一区二区 | 亚欧洲精品在线视频免费观看 | a国产一区二区免费入口 | 亚洲成a人片在线观看无码3d | 国内老熟妇对白xxxxhd | 日本精品人妻无码77777 天堂一区人妻无码 | 久久亚洲a片com人成 | 国产人妻大战黑人第1集 | 亚洲综合另类小说色区 | 在线精品国产一区二区三区 | 乱码午夜-极国产极内射 | 中文字幕乱码人妻二区三区 | 日韩亚洲欧美精品综合 | 一个人看的视频www在线 | 麻豆精品国产精华精华液好用吗 | 在线亚洲高清揄拍自拍一品区 | 人妻少妇精品无码专区动漫 | 国产精品igao视频网 | 久久久久亚洲精品男人的天堂 | 国产特级毛片aaaaaa高潮流水 | 美女毛片一区二区三区四区 | 欧美成人家庭影院 | 国内精品一区二区三区不卡 | 色窝窝无码一区二区三区色欲 | 日韩欧美群交p片內射中文 | 亚洲乱亚洲乱妇50p | 伊人久久婷婷五月综合97色 | 国产精品鲁鲁鲁 | 日本精品久久久久中文字幕 | 精品无码av一区二区三区 | 午夜福利一区二区三区在线观看 | 女人高潮内射99精品 | 久久精品人妻少妇一区二区三区 | 国产做国产爱免费视频 | 亚洲高清偷拍一区二区三区 | 国产成人无码专区 | 麻豆md0077饥渴少妇 | 亚洲色在线无码国产精品不卡 | 成人无码精品一区二区三区 | 76少妇精品导航 | 亚洲日韩av一区二区三区四区 | 欧美日韩一区二区综合 | 两性色午夜视频免费播放 | 久久久久免费看成人影片 | 国产乱人无码伦av在线a | 国产午夜无码视频在线观看 | 亚洲国产精品一区二区第一页 | 未满小14洗澡无码视频网站 | 成人av无码一区二区三区 | 99久久久国产精品无码免费 | 欧美刺激性大交 | 国产日产欧产精品精品app | 天堂无码人妻精品一区二区三区 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 玩弄中年熟妇正在播放 | 久久国语露脸国产精品电影 | 精品无码成人片一区二区98 | 无码人妻精品一区二区三区不卡 | 国产精品高潮呻吟av久久4虎 | 狠狠色噜噜狠狠狠7777奇米 | 性欧美大战久久久久久久 | 少妇无码吹潮 | 丰满少妇女裸体bbw | 一本久久a久久精品vr综合 | 日本熟妇浓毛 | 亚洲啪av永久无码精品放毛片 | 天下第一社区视频www日本 | 国产无遮挡又黄又爽免费视频 | 久久久久久九九精品久 | 免费观看激色视频网站 | 狠狠噜狠狠狠狠丁香五月 | 麻豆国产丝袜白领秘书在线观看 | 久久这里只有精品视频9 | 麻豆精品国产精华精华液好用吗 | 日本乱人伦片中文三区 | 又大又硬又黄的免费视频 | 国产精品久久久午夜夜伦鲁鲁 | 久久久久人妻一区精品色欧美 | 大肉大捧一进一出好爽视频 | 少妇高潮喷潮久久久影院 | 精品久久久无码人妻字幂 | 精品国产成人一区二区三区 | 亚洲成在人网站无码天堂 | 红桃av一区二区三区在线无码av | 九九热爱视频精品 | 成人无码视频免费播放 | 国产亚洲精品久久久ai换 | 无套内谢老熟女 | 18无码粉嫩小泬无套在线观看 | 国产亚洲人成a在线v网站 | 亚洲欧美国产精品久久 | 无遮无挡爽爽免费视频 | 真人与拘做受免费视频 | 亚洲大尺度无码无码专区 | 俺去俺来也www色官网 | 76少妇精品导航 | 精品国产一区二区三区四区 | 国产两女互慰高潮视频在线观看 | 中文毛片无遮挡高清免费 | 国产精品久久久久久亚洲影视内衣 | 亚洲熟妇自偷自拍另类 | 老子影院午夜精品无码 | 久久人妻内射无码一区三区 | 亚洲成av人影院在线观看 | 在线播放亚洲第一字幕 | 狠狠色欧美亚洲狠狠色www | 亚洲精品综合五月久久小说 | 少妇高潮一区二区三区99 | 九九在线中文字幕无码 | 精品久久久久久亚洲精品 | 久久久中文久久久无码 | 全黄性性激高免费视频 | 精品久久8x国产免费观看 | 亚洲另类伦春色综合小说 | 亚洲啪av永久无码精品放毛片 | 国产做国产爱免费视频 | 漂亮人妻洗澡被公强 日日躁 | 精品无码一区二区三区爱欲 | 久久 国产 尿 小便 嘘嘘 | 久久精品成人欧美大片 | 免费乱码人妻系列无码专区 | 久久 国产 尿 小便 嘘嘘 | 丰满妇女强制高潮18xxxx | 一本色道婷婷久久欧美 | 人人妻人人澡人人爽欧美精品 | 国产精品久久久久久亚洲影视内衣 | 亚洲国产精品久久人人爱 | 中文字幕无码人妻少妇免费 | 夜夜躁日日躁狠狠久久av | 巨爆乳无码视频在线观看 | 18禁黄网站男男禁片免费观看 | 国产成人精品优优av | 国产电影无码午夜在线播放 | 无码人妻久久一区二区三区不卡 | 亚洲春色在线视频 | 牲欲强的熟妇农村老妇女视频 | 国内精品久久久久久中文字幕 | 人妻中文无码久热丝袜 | 亚洲中文字幕无码中字 | 欧美zoozzooz性欧美 | 无遮无挡爽爽免费视频 | 久久久国产精品无码免费专区 | 青春草在线视频免费观看 | 日日摸天天摸爽爽狠狠97 | 粉嫩少妇内射浓精videos | 国产莉萝无码av在线播放 | 少妇无套内谢久久久久 | 99久久人妻精品免费一区 | 久久久无码中文字幕久... | 国产超级va在线观看视频 | 蜜桃视频韩日免费播放 | 亚无码乱人伦一区二区 | 女人和拘做爰正片视频 | 国内综合精品午夜久久资源 | 中文字幕日韩精品一区二区三区 | 国产性生交xxxxx无码 | 国产极品美女高潮无套在线观看 | 中文字幕乱码人妻无码久久 | 免费播放一区二区三区 | 久久久久久a亚洲欧洲av冫 | 国产99久久精品一区二区 | 熟妇人妻无乱码中文字幕 | 精品国产一区av天美传媒 | 日本xxxx色视频在线观看免费 | 天天爽夜夜爽夜夜爽 | 亚洲毛片av日韩av无码 | 亚洲啪av永久无码精品放毛片 | 青草视频在线播放 | www一区二区www免费 | 天天做天天爱天天爽综合网 | 亚洲a无码综合a国产av中文 | 少妇高潮喷潮久久久影院 | 精品乱码久久久久久久 | 狠狠综合久久久久综合网 | 熟女体下毛毛黑森林 | 色一情一乱一伦 | 99精品视频在线观看免费 | 免费观看的无遮挡av | 曰韩无码二三区中文字幕 | 亚洲aⅴ无码成人网站国产app | 免费看男女做好爽好硬视频 | 麻豆蜜桃av蜜臀av色欲av | 成人一区二区免费视频 | 少妇无码一区二区二三区 | 色婷婷久久一区二区三区麻豆 | 无码中文字幕色专区 | 无码一区二区三区在线观看 | 5858s亚洲色大成网站www | 国产免费观看黄av片 | 乱中年女人伦av三区 | 国产香蕉97碰碰久久人人 | 日日摸夜夜摸狠狠摸婷婷 | 亚洲国产成人av在线观看 | 欧美黑人性暴力猛交喷水 | 国产午夜无码精品免费看 | 亚洲中文字幕va福利 | 性色av无码免费一区二区三区 | 亚洲欧美综合区丁香五月小说 | 97久久国产亚洲精品超碰热 | 色欲人妻aaaaaaa无码 | 波多野结衣乳巨码无在线观看 | 性色av无码免费一区二区三区 | 人人澡人人妻人人爽人人蜜桃 | 高清国产亚洲精品自在久久 | 一本久久a久久精品vr综合 | 欧美人与牲动交xxxx | 亚洲日韩一区二区三区 | 亚洲gv猛男gv无码男同 | 国产情侣作爱视频免费观看 | 欧美黑人性暴力猛交喷水 | 久久这里只有精品视频9 | 老太婆性杂交欧美肥老太 | 对白脏话肉麻粗话av | 任你躁在线精品免费 | 婷婷色婷婷开心五月四房播播 | 在线观看国产午夜福利片 | 男人的天堂2018无码 | 黑人巨大精品欧美黑寡妇 | 日本护士xxxxhd少妇 | 免费视频欧美无人区码 | 亚洲s码欧洲m码国产av | 狂野欧美激情性xxxx | 亚洲精品成a人在线观看 | а天堂中文在线官网 | 国产精品久免费的黄网站 | 人妻少妇精品无码专区二区 | 高潮喷水的毛片 | 无码成人精品区在线观看 | 性开放的女人aaa片 | 中文字幕无码av激情不卡 | 一个人免费观看的www视频 | 在线播放无码字幕亚洲 | 国产无遮挡吃胸膜奶免费看 | 精品aⅴ一区二区三区 | 在线a亚洲视频播放在线观看 | 高清不卡一区二区三区 | 日韩亚洲欧美精品综合 | 亚洲精品国偷拍自产在线观看蜜桃 | 天天av天天av天天透 | 亚洲一区二区三区四区 | 亚洲国产欧美日韩精品一区二区三区 | 人人澡人人妻人人爽人人蜜桃 | 色欲综合久久中文字幕网 | 亚洲人成影院在线观看 | a国产一区二区免费入口 | 久久天天躁狠狠躁夜夜免费观看 | 黄网在线观看免费网站 | 丰满少妇人妻久久久久久 | 亚洲精品午夜无码电影网 | 亚洲小说图区综合在线 | 国产av一区二区精品久久凹凸 | 国产无套内射久久久国产 | 一本无码人妻在中文字幕免费 | 亚洲精品中文字幕 | 久久人妻内射无码一区三区 | 性生交片免费无码看人 | 精品无码成人片一区二区98 | 噜噜噜亚洲色成人网站 | 久久综合九色综合欧美狠狠 | 在线欧美精品一区二区三区 | 一本色道婷婷久久欧美 | 色老头在线一区二区三区 | 国产真实夫妇视频 | 少妇无套内谢久久久久 | www国产精品内射老师 | 国产乱码精品一品二品 | 色老头在线一区二区三区 | 色一情一乱一伦一区二区三欧美 | 在线视频网站www色 | 欧美一区二区三区视频在线观看 | 亚洲成av人在线观看网址 | 国产av一区二区三区最新精品 | 久久国产精品精品国产色婷婷 | 色一情一乱一伦一视频免费看 | 久久久久免费看成人影片 | 永久免费精品精品永久-夜色 | 性色欲网站人妻丰满中文久久不卡 | 久久五月精品中文字幕 | 国产女主播喷水视频在线观看 | 国产亚洲精品精品国产亚洲综合 | 131美女爱做视频 | 熟妇人妻激情偷爽文 | 在线观看免费人成视频 | 国产人妻大战黑人第1集 | 在线精品亚洲一区二区 | 男女猛烈xx00免费视频试看 | 色五月五月丁香亚洲综合网 | 成人免费视频一区二区 | 国内少妇偷人精品视频 | 亚洲精品久久久久avwww潮水 | 丝袜 中出 制服 人妻 美腿 | 精品一二三区久久aaa片 | 成人性做爰aaa片免费看 | 无码帝国www无码专区色综合 | 亚洲精品国偷拍自产在线麻豆 | 精品久久久无码中文字幕 | 国产乱码精品一品二品 | 牲欲强的熟妇农村老妇女视频 | 久久久中文字幕日本无吗 | 欧美日本日韩 | 久久国语露脸国产精品电影 | 中文无码成人免费视频在线观看 | 在线观看国产午夜福利片 | 国产内射老熟女aaaa | 国产熟妇另类久久久久 | 日本一卡二卡不卡视频查询 | av在线亚洲欧洲日产一区二区 | 老熟女乱子伦 | 国产又爽又猛又粗的视频a片 | 国产综合色产在线精品 | 亚洲精品一区二区三区在线 | 我要看www免费看插插视频 | 粗大的内捧猛烈进出视频 | 国产后入清纯学生妹 | 99久久人妻精品免费二区 | 欧美国产日产一区二区 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | aⅴ在线视频男人的天堂 | 欧美自拍另类欧美综合图片区 | 亚洲精品成人av在线 | 国产精品亚洲专区无码不卡 | 亚洲精品无码人妻无码 | 成人精品视频一区二区 | 人人妻人人澡人人爽人人精品 | 欧美 日韩 人妻 高清 中文 | 丰满肥臀大屁股熟妇激情视频 | 初尝人妻少妇中文字幕 | 国产亚洲精品久久久闺蜜 | 久久 国产 尿 小便 嘘嘘 | 国产一区二区三区四区五区加勒比 | 国产色视频一区二区三区 | 国内少妇偷人精品视频 | 亚洲精品国产品国语在线观看 | 熟妇人妻激情偷爽文 | 精品国产一区二区三区av 性色 | 日本爽爽爽爽爽爽在线观看免 | 久久久久成人精品免费播放动漫 | 国产农村乱对白刺激视频 | 久9re热视频这里只有精品 | 精品熟女少妇av免费观看 | 国产综合久久久久鬼色 | 午夜精品久久久久久久 | 免费无码一区二区三区蜜桃大 | 黑人粗大猛烈进出高潮视频 | v一区无码内射国产 | 精品人妻人人做人人爽夜夜爽 | 亚无码乱人伦一区二区 | 狠狠色噜噜狠狠狠狠7777米奇 | 无码国产色欲xxxxx视频 | 人人妻人人澡人人爽欧美一区九九 | 亚洲性无码av中文字幕 | 亚洲va中文字幕无码久久不卡 | 亚洲阿v天堂在线 | 少妇无套内谢久久久久 | 国产疯狂伦交大片 | 麻豆av传媒蜜桃天美传媒 | 97精品国产97久久久久久免费 | 夜夜影院未满十八勿进 | 伊在人天堂亚洲香蕉精品区 | 欧美熟妇另类久久久久久不卡 | 精品无码一区二区三区爱欲 | 国产精品久久久久久亚洲毛片 | 精品国产一区二区三区四区 | 亚洲乱亚洲乱妇50p | 131美女爱做视频 | 日本熟妇人妻xxxxx人hd | 蜜桃无码一区二区三区 | 日本高清一区免费中文视频 | 亚洲の无码国产の无码步美 | 国产小呦泬泬99精品 | 久久zyz资源站无码中文动漫 | 亚洲欧美国产精品久久 | 日本乱人伦片中文三区 | 东京无码熟妇人妻av在线网址 | 国产区女主播在线观看 | 亚洲乱码国产乱码精品精 | 一个人看的视频www在线 | 亚洲精品中文字幕久久久久 | 欧美国产亚洲日韩在线二区 | 亚洲人成网站在线播放942 | 日韩精品a片一区二区三区妖精 | 色综合久久中文娱乐网 | 日韩在线不卡免费视频一区 | 55夜色66夜色国产精品视频 | 少妇激情av一区二区 | 中文字幕无码免费久久9一区9 | 99精品视频在线观看免费 | 男女爱爱好爽视频免费看 | 国产成人午夜福利在线播放 | 西西人体www44rt大胆高清 | 国产偷自视频区视频 | 国产午夜无码精品免费看 | 日韩欧美群交p片內射中文 | 中国女人内谢69xxxxxa片 | 激情五月综合色婷婷一区二区 | 性欧美大战久久久久久久 | 亚洲日韩av片在线观看 | 四虎永久在线精品免费网址 | 亚洲国产欧美日韩精品一区二区三区 | 国产亚洲人成在线播放 | 真人与拘做受免费视频一 | 国产亚洲精品久久久久久久久动漫 | 国产乱人偷精品人妻a片 | 老司机亚洲精品影院 | 欧美日本免费一区二区三区 | 99久久人妻精品免费一区 | 国产网红无码精品视频 | 日日躁夜夜躁狠狠躁 | 婷婷五月综合缴情在线视频 | 一本久久伊人热热精品中文字幕 | av无码久久久久不卡免费网站 | 国产精品亚洲五月天高清 | 国产一区二区三区影院 | 骚片av蜜桃精品一区 | 亚洲精品一区二区三区大桥未久 | 扒开双腿疯狂进出爽爽爽视频 | 青草视频在线播放 | 久久亚洲中文字幕无码 | 国产午夜福利100集发布 | 亚洲中文字幕成人无码 | 久久www免费人成人片 | 久久精品女人的天堂av | 亚洲天堂2017无码中文 | 野狼第一精品社区 | 久久精品成人欧美大片 | 久久人妻内射无码一区三区 | 中文字幕乱码中文乱码51精品 | 久久天天躁夜夜躁狠狠 | 色欲av亚洲一区无码少妇 | 亚洲乱码日产精品bd | 精品国产一区二区三区av 性色 | 国产又爽又猛又粗的视频a片 | 国产色视频一区二区三区 | 妺妺窝人体色www在线小说 | 亚洲狠狠婷婷综合久久 | 亚洲 a v无 码免 费 成 人 a v | 奇米影视7777久久精品人人爽 | 无套内射视频囯产 | 人妻aⅴ无码一区二区三区 | 国产熟女一区二区三区四区五区 | 久久国产精品偷任你爽任你 | 亚洲国产精品久久久久久 | 乱码av麻豆丝袜熟女系列 | 自拍偷自拍亚洲精品10p | 欧美成人家庭影院 | 亚洲欧洲中文日韩av乱码 | 少妇人妻大乳在线视频 | 国产在线一区二区三区四区五区 | 色婷婷综合激情综在线播放 | 国产精品久久国产精品99 | 樱花草在线社区www | 久久精品成人欧美大片 | 欧美日韩一区二区三区自拍 | 欧美日韩色另类综合 | 真人与拘做受免费视频 | 波多野结衣av一区二区全免费观看 | 国产精品人妻一区二区三区四 | 亚洲中文字幕无码中文字在线 | 欧洲美熟女乱又伦 | 无遮无挡爽爽免费视频 | 一个人免费观看的www视频 | 午夜男女很黄的视频 | 精品久久8x国产免费观看 | 色一情一乱一伦一区二区三欧美 | 男女猛烈xx00免费视频试看 | 国产激情精品一区二区三区 | 女人被男人躁得好爽免费视频 | 国产9 9在线 | 中文 | 国产超碰人人爽人人做人人添 | 久久精品中文字幕一区 | 人人妻在人人 | 国产成人av免费观看 | 人人妻人人澡人人爽欧美一区 | 国产特级毛片aaaaaaa高清 | 一区二区三区高清视频一 | 好屌草这里只有精品 | 在线观看国产午夜福利片 | 夜夜躁日日躁狠狠久久av | 美女极度色诱视频国产 | 国内丰满熟女出轨videos | 激情爆乳一区二区三区 | 99久久久无码国产精品免费 | 无码中文字幕色专区 | 亚洲精品无码人妻无码 | 无遮挡啪啪摇乳动态图 | 国内精品一区二区三区不卡 | 国产精品理论片在线观看 | 日本www一道久久久免费榴莲 | 无码国产乱人伦偷精品视频 | 日本成熟视频免费视频 | 天天做天天爱天天爽综合网 | 大胆欧美熟妇xx | 中文无码成人免费视频在线观看 | 一本久道久久综合狠狠爱 | 黑森林福利视频导航 | 日本免费一区二区三区最新 | 国产熟妇高潮叫床视频播放 | 性做久久久久久久久 | av无码久久久久不卡免费网站 | 人人妻人人澡人人爽欧美一区九九 | 欧洲熟妇色 欧美 | 国精品人妻无码一区二区三区蜜柚 | 精品午夜福利在线观看 | 99久久久无码国产aaa精品 | 无码人妻av免费一区二区三区 | 色综合天天综合狠狠爱 | 精品国产成人一区二区三区 | 欧美性黑人极品hd | 无码毛片视频一区二区本码 | 思思久久99热只有频精品66 | av人摸人人人澡人人超碰下载 | 国产热a欧美热a在线视频 | 又紧又大又爽精品一区二区 | 亚洲国产欧美国产综合一区 | 精品人妻人人做人人爽夜夜爽 | 色综合久久久久综合一本到桃花网 | 国产区女主播在线观看 | 动漫av一区二区在线观看 | 大地资源网第二页免费观看 | 国产黄在线观看免费观看不卡 | 亚洲性无码av中文字幕 | 97夜夜澡人人爽人人喊中国片 | 久久99久久99精品中文字幕 | 中文字幕色婷婷在线视频 | www国产精品内射老师 | 女人被男人躁得好爽免费视频 | 午夜精品久久久内射近拍高清 | 亚洲a无码综合a国产av中文 | 亚洲综合在线一区二区三区 | 樱花草在线播放免费中文 | 中文无码成人免费视频在线观看 | 欧美老妇交乱视频在线观看 | 国产两女互慰高潮视频在线观看 | 国产av无码专区亚洲awww | 日本在线高清不卡免费播放 | 久久久中文字幕日本无吗 | 18禁止看的免费污网站 | 亲嘴扒胸摸屁股激烈网站 | 久久久久99精品国产片 | 清纯唯美经典一区二区 | 精品国精品国产自在久国产87 | 国产精品毛多多水多 | 一区二区三区乱码在线 | 欧洲 | 老司机亚洲精品影院无码 | 狂野欧美激情性xxxx | 成人免费视频视频在线观看 免费 | 亚洲 a v无 码免 费 成 人 a v | 国产一精品一av一免费 | 国产激情艳情在线看视频 | 国产农村妇女高潮大叫 | 人人妻人人藻人人爽欧美一区 | 国产真人无遮挡作爱免费视频 | 国产美女精品一区二区三区 | 亚洲国产午夜精品理论片 | 欧美 日韩 亚洲 在线 | 在线看片无码永久免费视频 | 欧美人与动性行为视频 | 少女韩国电视剧在线观看完整 | 亚洲日韩av一区二区三区四区 | 无码成人精品区在线观看 | 99国产欧美久久久精品 | 爽爽影院免费观看 | 亚洲男人av香蕉爽爽爽爽 | 日日躁夜夜躁狠狠躁 | 国产亚洲精品久久久久久大师 | 在线观看国产一区二区三区 | 日韩精品无码一本二本三本色 | 国内综合精品午夜久久资源 | 国产绳艺sm调教室论坛 | 理论片87福利理论电影 | 亚洲精品美女久久久久久久 | 成人一在线视频日韩国产 | 久9re热视频这里只有精品 | 中文字幕av日韩精品一区二区 | 国产成人人人97超碰超爽8 | 沈阳熟女露脸对白视频 | 女高中生第一次破苞av | 久久久精品成人免费观看 | 成人动漫在线观看 | 蜜臀av无码人妻精品 | 亚洲国产精品毛片av不卡在线 | 一本久久a久久精品vr综合 | 亚洲精品一区二区三区大桥未久 | 国产成人综合色在线观看网站 | 亚洲の无码国产の无码影院 | 天堂а√在线中文在线 | 在线观看国产一区二区三区 | 欧美日韩一区二区三区自拍 | 麻豆国产97在线 | 欧洲 | 欧美国产日产一区二区 | 强辱丰满人妻hd中文字幕 | 激情综合激情五月俺也去 | 内射老妇bbwx0c0ck | 高潮毛片无遮挡高清免费 | 亚洲 另类 在线 欧美 制服 | 亚洲aⅴ无码成人网站国产app | 午夜精品一区二区三区在线观看 | 性欧美videos高清精品 | 麻豆精品国产精华精华液好用吗 | 国产内射爽爽大片视频社区在线 | 亚洲 另类 在线 欧美 制服 | 精品无码av一区二区三区 | 玩弄少妇高潮ⅹxxxyw | 国模大胆一区二区三区 | 一本精品99久久精品77 | 思思久久99热只有频精品66 | 丝袜 中出 制服 人妻 美腿 | 亚洲精品综合一区二区三区在线 | 日本一本二本三区免费 | 一本大道久久东京热无码av | 中文字幕日韩精品一区二区三区 | 内射巨臀欧美在线视频 | 装睡被陌生人摸出水好爽 | 亚洲精品一区二区三区四区五区 | 国产办公室秘书无码精品99 | 亚拍精品一区二区三区探花 | 国产艳妇av在线观看果冻传媒 | 久久人妻内射无码一区三区 | 婷婷五月综合缴情在线视频 | 国产精品.xx视频.xxtv | 精品国产麻豆免费人成网站 | 成熟妇人a片免费看网站 | 学生妹亚洲一区二区 | 98国产精品综合一区二区三区 | 国产无套内射久久久国产 | 黑森林福利视频导航 | 亚洲午夜无码久久 | 中文字幕色婷婷在线视频 | 无套内射视频囯产 | 亚洲日韩av一区二区三区中文 | 色婷婷欧美在线播放内射 | 99在线 | 亚洲 | 四虎永久在线精品免费网址 | 亚洲一区二区三区无码久久 | 全黄性性激高免费视频 | 欧美色就是色 | 亚洲日本在线电影 | 领导边摸边吃奶边做爽在线观看 | 波多野结衣av一区二区全免费观看 | 国产无av码在线观看 | 日韩精品成人一区二区三区 | 色一情一乱一伦一区二区三欧美 | 丝袜人妻一区二区三区 | 狠狠色丁香久久婷婷综合五月 | 一本久久伊人热热精品中文字幕 | 亚洲色偷偷男人的天堂 | 特黄特色大片免费播放器图片 | 国产亚洲美女精品久久久2020 | 亚洲精品国产a久久久久久 | 亚洲国产精品无码一区二区三区 | 国产三级精品三级男人的天堂 | а√天堂www在线天堂小说 | 熟女少妇在线视频播放 | 99精品视频在线观看免费 | 国产在线aaa片一区二区99 | 在线播放免费人成毛片乱码 | 亚洲熟妇自偷自拍另类 | 亚洲精品成人福利网站 | 国产女主播喷水视频在线观看 | 国色天香社区在线视频 | 熟妇人妻激情偷爽文 | 久久aⅴ免费观看 | 狠狠色欧美亚洲狠狠色www | 日韩欧美成人免费观看 | 黑人粗大猛烈进出高潮视频 | 大屁股大乳丰满人妻 | 亚洲熟妇色xxxxx亚洲 | 精品人妻av区 | 天堂久久天堂av色综合 | 国产成人无码专区 | 婷婷六月久久综合丁香 | 99久久久无码国产精品免费 | 欧美肥老太牲交大战 | 两性色午夜免费视频 | 狂野欧美激情性xxxx | 欧美日韩综合一区二区三区 | 东京无码熟妇人妻av在线网址 | 国产人妻精品一区二区三区 | 人妻尝试又大又粗久久 | 欧美老妇交乱视频在线观看 | 久久精品视频在线看15 | 色妞www精品免费视频 | 国产成人精品三级麻豆 | 乱码av麻豆丝袜熟女系列 | 俺去俺来也在线www色官网 | 国产亚洲精品精品国产亚洲综合 | 精品人妻中文字幕有码在线 | 熟女俱乐部五十路六十路av | 日韩精品无码免费一区二区三区 | 人人妻人人澡人人爽欧美一区九九 | 国产莉萝无码av在线播放 | 亚洲国产精品一区二区第一页 | 在线播放无码字幕亚洲 | 最新国产乱人伦偷精品免费网站 | 国色天香社区在线视频 | 大肉大捧一进一出好爽视频 | 亚洲中文字幕av在天堂 | 亚洲色偷偷偷综合网 | 精品无码av一区二区三区 | 亚洲精品一区二区三区四区五区 | 国产麻豆精品一区二区三区v视界 | 在线精品国产一区二区三区 | 国产精品人妻一区二区三区四 | 国产无遮挡吃胸膜奶免费看 | 亚洲欧美国产精品专区久久 | 草草网站影院白丝内射 | 欧美亚洲国产一区二区三区 | 亚洲男人av天堂午夜在 | 亚洲综合久久一区二区 | 免费人成在线视频无码 | 国产乱人伦偷精品视频 | 免费看男女做好爽好硬视频 | 欧美阿v高清资源不卡在线播放 | 国产精品久久久久7777 | 国产av无码专区亚洲a∨毛片 | 亚洲乱亚洲乱妇50p | 国语精品一区二区三区 | 久久久久免费看成人影片 | 久久精品国产99久久6动漫 | 国产精品va在线播放 | 久久精品国产亚洲精品 | а√天堂www在线天堂小说 | 欧美性生交活xxxxxdddd | 亚洲精品无码国产 | 成年女人永久免费看片 | 精品熟女少妇av免费观看 | 日本免费一区二区三区最新 | 亚洲一区av无码专区在线观看 | 国产熟女一区二区三区四区五区 | 免费看少妇作爱视频 | 亚洲人成网站免费播放 | 18禁黄网站男男禁片免费观看 | 日本熟妇大屁股人妻 | 国产做国产爱免费视频 | 久在线观看福利视频 | 欧美大屁股xxxxhd黑色 | 男人和女人高潮免费网站 | 亚洲综合在线一区二区三区 | 日日干夜夜干 | 国产亚洲精品久久久久久大师 | 国产精品a成v人在线播放 | 久久综合狠狠综合久久综合88 | 一区二区三区高清视频一 | 国产明星裸体无码xxxx视频 | 亚洲阿v天堂在线 | 亚洲一区二区三区 | 国产激情艳情在线看视频 | 日韩av无码一区二区三区不卡 | 亚洲综合无码一区二区三区 | 亚洲国产日韩a在线播放 | 日产精品99久久久久久 | 亚洲欧美中文字幕5发布 | 麻豆成人精品国产免费 | 成人免费视频在线观看 | 少妇被粗大的猛进出69影院 | 偷窥日本少妇撒尿chinese | 综合激情五月综合激情五月激情1 | 亚洲国产精品毛片av不卡在线 | 麻豆国产人妻欲求不满 | 激情内射亚州一区二区三区爱妻 | 欧美 日韩 亚洲 在线 | 自拍偷自拍亚洲精品被多人伦好爽 | 亚洲精品一区二区三区在线观看 | 荫蒂被男人添的好舒服爽免费视频 | 精品无码国产一区二区三区av | 十八禁视频网站在线观看 | 国产精品亚洲综合色区韩国 | 国产电影无码午夜在线播放 | 特级做a爰片毛片免费69 | 亚洲小说春色综合另类 | 欧美日韩在线亚洲综合国产人 | 国产人妻精品午夜福利免费 | 精品少妇爆乳无码av无码专区 | 日本爽爽爽爽爽爽在线观看免 | 亚洲欧美综合区丁香五月小说 | 亚洲精品一区二区三区婷婷月 | 小泽玛莉亚一区二区视频在线 | 中文字幕乱妇无码av在线 | 成人影院yy111111在线观看 | 免费无码av一区二区 | 国产三级久久久精品麻豆三级 | 亚洲国产精华液网站w | 国产农村妇女高潮大叫 | 精品国产av色一区二区深夜久久 | 永久免费观看国产裸体美女 | 精品欧洲av无码一区二区三区 | 日日橹狠狠爱欧美视频 | 老熟女重囗味hdxx69 | 乱人伦人妻中文字幕无码 | 大地资源网第二页免费观看 | 国内精品一区二区三区不卡 | 亚洲熟妇色xxxxx欧美老妇y | 伊人久久大香线蕉午夜 | 曰韩少妇内射免费播放 | 伊人久久大香线蕉午夜 | 免费国产成人高清在线观看网站 | 精品国产aⅴ无码一区二区 | 国产精品无套呻吟在线 | 无码人妻av免费一区二区三区 | 人妻与老人中文字幕 | 亚洲日韩av一区二区三区四区 | 成熟女人特级毛片www免费 | 欧美阿v高清资源不卡在线播放 | 99在线 | 亚洲 | 狠狠色噜噜狠狠狠狠7777米奇 | 性色欲情网站iwww九文堂 | 乱人伦人妻中文字幕无码 | 麻豆国产97在线 | 欧洲 | 久久久久se色偷偷亚洲精品av | 精品日本一区二区三区在线观看 | 亚洲国产欧美国产综合一区 | 国产一区二区三区四区五区加勒比 | 天天拍夜夜添久久精品大 | 国产午夜亚洲精品不卡下载 | 亚洲中文字幕乱码av波多ji | 精品欧洲av无码一区二区三区 | 欧美zoozzooz性欧美 | 正在播放东北夫妻内射 | 双乳奶水饱满少妇呻吟 | 麻豆蜜桃av蜜臀av色欲av | 学生妹亚洲一区二区 | 青青草原综合久久大伊人精品 | 性欧美牲交xxxxx视频 | 日日躁夜夜躁狠狠躁 | 国产sm调教视频在线观看 | 免费观看黄网站 | 亚洲狠狠色丁香婷婷综合 | 又大又硬又黄的免费视频 | 国产又爽又猛又粗的视频a片 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 玩弄人妻少妇500系列视频 | 成熟女人特级毛片www免费 | a在线观看免费网站大全 | 欧美亚洲日韩国产人成在线播放 | 国产极品美女高潮无套在线观看 | 好屌草这里只有精品 | 男女下面进入的视频免费午夜 | 无码国产激情在线观看 | aa片在线观看视频在线播放 | 无码人妻丰满熟妇区五十路百度 | 精品一二三区久久aaa片 | 无码乱肉视频免费大全合集 | 欧洲精品码一区二区三区免费看 | 亚洲 日韩 欧美 成人 在线观看 | 国产真人无遮挡作爱免费视频 | 台湾无码一区二区 | 水蜜桃av无码 | 国产色精品久久人妻 | 性色欲情网站iwww九文堂 | 亚洲色www成人永久网址 | 国产精品无码久久av | 免费乱码人妻系列无码专区 | 国产真实夫妇视频 | 日韩av无码中文无码电影 | 国产午夜精品一区二区三区嫩草 | 六月丁香婷婷色狠狠久久 | 中文亚洲成a人片在线观看 | 亚洲а∨天堂久久精品2021 | 国产人妻久久精品二区三区老狼 | 亚洲色成人中文字幕网站 | 国产福利视频一区二区 | 亚洲理论电影在线观看 | 中文字幕无码人妻少妇免费 | 97精品人妻一区二区三区香蕉 | 无码播放一区二区三区 | 国产精品无码一区二区桃花视频 | 曰韩少妇内射免费播放 | 无码精品国产va在线观看dvd | 国产午夜福利100集发布 | 沈阳熟女露脸对白视频 | 久久久久久a亚洲欧洲av冫 | 欧美一区二区三区视频在线观看 | 麻豆国产97在线 | 欧洲 | 少妇人妻偷人精品无码视频 | 波多野结衣高清一区二区三区 | 性色欲情网站iwww九文堂 | 强伦人妻一区二区三区视频18 | 国产乱人偷精品人妻a片 | 日本爽爽爽爽爽爽在线观看免 | 成人试看120秒体验区 | 久久人人爽人人人人片 | 人妻少妇被猛烈进入中文字幕 | 伊人久久大香线焦av综合影院 | 亚洲日韩av片在线观看 | 亚洲成a人片在线观看无码3d | 亚洲色偷偷男人的天堂 | 久久久久久久女国产乱让韩 | 中文字幕亚洲情99在线 | 巨爆乳无码视频在线观看 | 日韩人妻系列无码专区 | 亚洲无人区午夜福利码高清完整版 | 青草视频在线播放 | 亚洲一区av无码专区在线观看 | 国内丰满熟女出轨videos | 日产精品高潮呻吟av久久 | 日本va欧美va欧美va精品 | 青青草原综合久久大伊人精品 | 日韩人妻少妇一区二区三区 | 内射后入在线观看一区 | 国产精品无码一区二区桃花视频 | 亚洲一区二区三区偷拍女厕 | 乱人伦中文视频在线观看 | 99久久久国产精品无码免费 | 亚洲色www成人永久网址 | 丰满护士巨好爽好大乳 | 丝袜 中出 制服 人妻 美腿 | ass日本丰满熟妇pics | 沈阳熟女露脸对白视频 | 国产精品久久国产精品99 | 成人免费视频一区二区 | 久久精品国产精品国产精品污 | 中国大陆精品视频xxxx | 久久久久免费看成人影片 | 久久天天躁夜夜躁狠狠 | 国内精品一区二区三区不卡 | 乱码av麻豆丝袜熟女系列 | 日本精品久久久久中文字幕 | 亚洲区小说区激情区图片区 | 无套内谢的新婚少妇国语播放 | 久久这里只有精品视频9 | 小sao货水好多真紧h无码视频 | 亚洲色欲久久久综合网东京热 | 狠狠色噜噜狠狠狠7777奇米 | 最近中文2019字幕第二页 | 波多野42部无码喷潮在线 | 偷窥日本少妇撒尿chinese | 亚洲成色www久久网站 | 国产九九九九九九九a片 | 在线观看欧美一区二区三区 | 中文字幕 人妻熟女 | 久久久久se色偷偷亚洲精品av | 国产麻豆精品一区二区三区v视界 | 无码午夜成人1000部免费视频 | 免费人成网站视频在线观看 | 日本熟妇乱子伦xxxx | 国产明星裸体无码xxxx视频 | 日韩少妇内射免费播放 | 久久这里只有精品视频9 | 久久久精品国产sm最大网站 | 丰满妇女强制高潮18xxxx | av无码不卡在线观看免费 | 成熟人妻av无码专区 | 亚洲综合无码久久精品综合 | 成人三级无码视频在线观看 | 精品乱码久久久久久久 | 亚洲精品中文字幕久久久久 | 中文字幕日产无线码一区 | 国产精品久久国产三级国 | 国产精品久久久久久久9999 | 一本一道久久综合久久 | www国产亚洲精品久久网站 | 亚洲人成影院在线无码按摩店 | 亚洲欧洲无卡二区视頻 | 国产精品无码一区二区三区不卡 | 国产在线aaa片一区二区99 | 亚洲人成网站色7799 | 久久99精品国产.久久久久 | 强开小婷嫩苞又嫩又紧视频 | 欧美午夜特黄aaaaaa片 | 国产精品久久久久9999小说 | 久久国产精品二国产精品 | 成人性做爰aaa片免费看不忠 | 中文字幕av伊人av无码av | 暴力强奷在线播放无码 | 国产精品99久久精品爆乳 | 国产人妻精品午夜福利免费 | 国产精品va在线观看无码 | 97无码免费人妻超级碰碰夜夜 | 国产精品美女久久久久av爽李琼 | 精品欧美一区二区三区久久久 | 亚洲七七久久桃花影院 | 国产特级毛片aaaaaaa高清 | 成人一区二区免费视频 | 成人aaa片一区国产精品 | 久久人妻内射无码一区三区 | 天堂无码人妻精品一区二区三区 | 香蕉久久久久久av成人 | 国产综合久久久久鬼色 | 久久亚洲精品成人无码 | 精品国产福利一区二区 | 丰满人妻一区二区三区免费视频 | 日韩精品久久久肉伦网站 | 国产xxx69麻豆国语对白 | 图片区 小说区 区 亚洲五月 | 夜夜躁日日躁狠狠久久av | 免费观看的无遮挡av | 女人被男人躁得好爽免费视频 | 国产亚洲人成a在线v网站 | 麻豆果冻传媒2021精品传媒一区下载 | 成人精品天堂一区二区三区 | 亚洲a无码综合a国产av中文 | 欧美人与牲动交xxxx | 成人精品一区二区三区中文字幕 | 人人澡人人妻人人爽人人蜜桃 | 欧美老妇与禽交 | 国产高清不卡无码视频 | 中文字幕无码日韩专区 | 亚洲欧美国产精品专区久久 | 又大又紧又粉嫩18p少妇 | 人妻天天爽夜夜爽一区二区 | 蜜桃臀无码内射一区二区三区 | 天海翼激烈高潮到腰振不止 | 九九在线中文字幕无码 | 蜜桃臀无码内射一区二区三区 | 亚洲狠狠色丁香婷婷综合 | 国精品人妻无码一区二区三区蜜柚 | 中文毛片无遮挡高清免费 | 丰满人妻一区二区三区免费视频 | 成人片黄网站色大片免费观看 | 国产av一区二区精品久久凹凸 | 亚拍精品一区二区三区探花 | 人人澡人摸人人添 | 波多野结衣aⅴ在线 | 77777熟女视频在线观看 а天堂中文在线官网 | 成人综合网亚洲伊人 | 精品日本一区二区三区在线观看 | 中文字幕av日韩精品一区二区 | 亚洲天堂2017无码中文 | 99久久99久久免费精品蜜桃 | 久久久久久久人妻无码中文字幕爆 | 久久久中文久久久无码 | 亚洲啪av永久无码精品放毛片 | 国产麻豆精品一区二区三区v视界 | 国产又粗又硬又大爽黄老大爷视 | 亚洲熟悉妇女xxx妇女av | 亚洲一区二区三区 | 久久综合色之久久综合 | 国产香蕉97碰碰久久人人 | 国精产品一品二品国精品69xx | 精品成人av一区二区三区 | 久久视频在线观看精品 | 国产精品久久精品三级 | 人人妻人人澡人人爽欧美精品 | 蜜桃视频插满18在线观看 | 亚洲人成人无码网www国产 | 国产美女极度色诱视频www | 国产人妻人伦精品 | av无码电影一区二区三区 | 一本加勒比波多野结衣 | 99久久精品午夜一区二区 | 国产黑色丝袜在线播放 | 激情内射日本一区二区三区 | 午夜理论片yy44880影院 | 中文字幕 人妻熟女 | 丰满人妻翻云覆雨呻吟视频 | 蜜臀av在线播放 久久综合激激的五月天 | 5858s亚洲色大成网站www | 久久无码专区国产精品s | 亚洲国产日韩a在线播放 | 中文精品久久久久人妻不卡 | 麻豆精品国产精华精华液好用吗 | 99精品国产综合久久久久五月天 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 日韩精品a片一区二区三区妖精 | 麻豆精品国产精华精华液好用吗 | 伊在人天堂亚洲香蕉精品区 | 对白脏话肉麻粗话av | 国产人成高清在线视频99最全资源 | 领导边摸边吃奶边做爽在线观看 | 久久精品国产99精品亚洲 | 欧美zoozzooz性欧美 | 日本一卡二卡不卡视频查询 | 在线观看国产午夜福利片 | 国产成人精品视频ⅴa片软件竹菊 | 国产精品久久久一区二区三区 | 天堂在线观看www | 正在播放老肥熟妇露脸 | 性开放的女人aaa片 | 东京热无码av男人的天堂 | 2020久久超碰国产精品最新 | 女高中生第一次破苞av | 国产一精品一av一免费 | 亚洲区欧美区综合区自拍区 | 99久久99久久免费精品蜜桃 | 亚洲欧洲中文日韩av乱码 | 国产人妻精品一区二区三区不卡 | 一区二区传媒有限公司 | 天天综合网天天综合色 | 久久国内精品自在自线 | 欧美 丝袜 自拍 制服 另类 | 亚洲成在人网站无码天堂 | 亚洲天堂2017无码中文 | 俺去俺来也在线www色官网 | 99精品视频在线观看免费 | 熟女俱乐部五十路六十路av | 97精品国产97久久久久久免费 | 欧美freesex黑人又粗又大 | 久久99精品久久久久久 | 丰满护士巨好爽好大乳 | av小次郎收藏 | 亚洲色大成网站www国产 | 亚洲熟妇色xxxxx亚洲 | 51国偷自产一区二区三区 | 无码乱肉视频免费大全合集 | 国产精品久久国产三级国 | 免费播放一区二区三区 | 精品久久久无码中文字幕 | 国产精品无码一区二区桃花视频 | 妺妺窝人体色www婷婷 | 亚洲精品www久久久 | 久久久国产一区二区三区 | 呦交小u女精品视频 | 综合激情五月综合激情五月激情1 | 日韩欧美群交p片內射中文 | 国产热a欧美热a在线视频 | 亚洲一区二区三区偷拍女厕 | 欧美zoozzooz性欧美 | 特黄特色大片免费播放器图片 | 日本精品久久久久中文字幕 | 狠狠色噜噜狠狠狠7777奇米 | 亚洲国产av精品一区二区蜜芽 | 国产精品毛多多水多 | 55夜色66夜色国产精品视频 | 亚洲日本一区二区三区在线 | 午夜福利一区二区三区在线观看 | 男女猛烈xx00免费视频试看 | 牛和人交xxxx欧美 | 精品无码一区二区三区的天堂 | 无遮无挡爽爽免费视频 |