日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java实体映射工具MapStruct

發布時間:2024/1/23 java 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java实体映射工具MapStruct 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

聲明:
1、DO(業務實體對象),DTO(數據傳輸對象)。
2、我的代碼中用到了 Lombok ,不了解的可以自行了解一下,了解的忽略這條就好。
1
2
3
在一個成熟的工程中,尤其是現在的分布式系統中,應用與應用之間,還有單獨的應用細分模塊之后,DO 一般不會讓外部依賴,這時候需要在提供對外接口的模塊里放 DTO 用于對象傳輸,也即是 DO 對象對內,DTO對象對外,DTO 可以根據業務需要變更,并不需要映射 DO 的全部屬性。

這種 對象與對象之間的互相轉換,就需要有一個專門用來解決轉換問題的工具,畢竟每一個字段都 get/set 會很麻煩。

MapStruct 就是這樣的一個屬性映射工具,只需要定義一個 Mapper 接口,MapStruct 就會自動實現這個映射接口,避免了復雜繁瑣的映射實現。MapStruct官網地址: http://mapstruct.org/

工程中引入 maven 依賴
<properties>
? ? <mapstruct.version>1.2.0.Final</mapstruct.version>
</properties>

<dependencies>
? ? <dependency>
? ? ? <groupId>org.mapstruct</groupId>
? ? ? <artifactId>mapstruct-jdk8</artifactId>
? ? ? <version>${mapstruct.version}</version>
? ? </dependency>
? ? <dependency>
? ? ? <groupId>org.mapstruct</groupId>
? ? ? <artifactId>mapstruct-processor</artifactId>
? ? ? <version>${mapstruct.version}</version>
? ? </dependency>
</dependencies>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
基本映射
這里定義兩個 DO 對象 Person 和 User,其中 user 是 Person 的一個屬性 ,一個 DTO 對象 PersonDTO

@NoArgsConstructor
@AllArgsConstructor
@Data
public class Person {
? ? private Long id;
? ? private String name;
? ? private String email;
? ? private Date birthday;
? ? private User user;
}

@NoArgsConstructor
@AllArgsConstructor
@Data
public class User {
? ? private Integer age;
}

@NoArgsConstructor
@AllArgsConstructor
@Data
public class PersonDTO {
? ? private Long id;
? ? private String name;
? ? /**
? ? ?* 對應 Person.user.age
? ? ?*/
? ? private Integer age;
? ? private String email;
? ? /**
? ? ?* 與 DO 里面的字段名稱(birthDay)不一致
? ? ?*/
? ? private Date birth;
? ? /**
? ? ?* 對 DO 里面的字段(birthDay)進行拓展,dateFormat 的形式
? ? ?*/
? ? private String birthDateFormat;
? ? /**
? ? ?* 對 DO 里面的字段(birthDay)進行拓展,expression 的形式
? ? ?*/
? ? private String birthExpressionFormat;

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
寫一個 Mapper 接口 PersonConverter,其中兩個方法,一個是單實體映射,另一個是List映射

若源對象屬性與目標對象屬性名字一致,會自動映射對應屬性,不一樣的需要指定,也可以用 format 轉成自己想要的類型,也支持表達式的方式,可以看到像 id、name、email這些名詞一致的我并沒有指定 source-target,而birthday-birth指定了,轉換格式的 birthDateFormat 加了dateFormat 或者 birthExpressionFormat 加了 expression,如果某個屬性你不想映射,可以加個 ignore=true

@Mapper
public interface PersonConverter {
? ? PersonConverter INSTANCE = Mappers.getMapper(PersonConverter.class);
? ? @Mappings({
? ? ? ? @Mapping(source = "birthday", target = "birth"),
? ? ? ? @Mapping(source = "birthday", target = "birthDateFormat", dateFormat = "yyyy-MM-dd HH:mm:ss"),
? ? ? ? @Mapping(target = "birthExpressionFormat", expression = "java(org.apache.commons.lang3.time.DateFormatUtils.format(person.getBirthday(),\"yyyy-MM-dd HH:mm:ss\"))"),
? ? ? ? @Mapping(source = "user.age", target = "age"),
? ? ? ? @Mapping(target = "email", ignore = true)
? ? })
? ? PersonDTO domain2dto(Person person);

? ? List<PersonDTO> domain2dto(List<Person> people);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
編譯MapStruct之后,手工編譯或者啟動 IDE 的時候 IDE 也會幫我們編譯, 會自動在 target/classes 下生成對應的實現類

手工編譯命令
mvn compile
1
2
注意!!!下面這個 PersonConverterImpl 是自動生成的,不是自己寫的!

public class PersonConverterImpl implements PersonConverter {
? ? public PersonConverterImpl() {
? ? }

? ? public PersonDTO domain2dto(Person person) {
? ? ? ? if (person == null) {
? ? ? ? ? ? return null;
? ? ? ? } else {
? ? ? ? ? ? PersonDTO personDTO = new PersonDTO();
? ? ? ? ? ? personDTO.setBirth(person.getBirthday());
? ? ? ? ? ? if (person.getBirthday() != null) {
? ? ? ? ? ? ? ? personDTO.setBirthDateFormat((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(person.getBirthday()));
? ? ? ? ? ? }

? ? ? ? ? ? Integer age = this.personUserAge(person);
? ? ? ? ? ? if (age != null) {
? ? ? ? ? ? ? ? personDTO.setAge(age);
? ? ? ? ? ? }

? ? ? ? ? ? personDTO.setId(person.getId());
? ? ? ? ? ? personDTO.setName(person.getName());
? ? ? ? ? ? personDTO.setBirthExpressionFormat(DateFormatUtils.format(person.getBirthday(), "yyyy-MM-dd HH:mm:ss"));
? ? ? ? ? ? return personDTO;
? ? ? ? }
? ? }

? ? public List<PersonDTO> domain2dto(List<Person> people) {
? ? ? ? if (people == null) {
? ? ? ? ? ? return null;
? ? ? ? } else {
? ? ? ? ? ? List<PersonDTO> list = new ArrayList(people.size());
? ? ? ? ? ? Iterator var3 = people.iterator();

? ? ? ? ? ? while(var3.hasNext()) {
? ? ? ? ? ? ? ? Person person = (Person)var3.next();
? ? ? ? ? ? ? ? list.add(this.domain2dto(person));
? ? ? ? ? ? }

? ? ? ? ? ? return list;
? ? ? ? }
? ? }

? ? private Integer personUserAge(Person person) {
? ? ? ? if (person == null) {
? ? ? ? ? ? return null;
? ? ? ? } else {
? ? ? ? ? ? User user = person.getUser();
? ? ? ? ? ? if (user == null) {
? ? ? ? ? ? ? ? return null;
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? Integer age = user.getAge();
? ? ? ? ? ? ? ? return age == null ? null : age;
? ? ? ? ? ? }
? ? ? ? }
? ? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
寫一個單元測試類 PersonConverterTest 測試一下,看看效果

public class PersonConverterTest {
? ? @Test
? ? public void test() {
? ? ? ? Person person = new Person(1L,"zhige","zhige.me@gmail.com",new Date(),new User(1));
? ? ? ? PersonDTO personDTO = PersonConverter.INSTANCE.domain2dto(person);
? ? ? ? assertNotNull(personDTO);
? ? ? ? assertEquals(personDTO.getId(), person.getId());
? ? ? ? assertEquals(personDTO.getName(), person.getName());
? ? ? ? assertEquals(personDTO.getBirth(), person.getBirthday());
? ? ? ? String format = DateFormatUtils.format(personDTO.getBirth(), "yyyy-MM-dd HH:mm:ss");
? ? ? ? assertEquals(personDTO.getBirthDateFormat(),format);
? ? ? ? assertEquals(personDTO.getBirthExpressionFormat(),format);

? ? ? ? List<Person> people = new ArrayList<>();
? ? ? ? people.add(person);
? ? ? ? List<PersonDTO> personDTOs = PersonConverter.INSTANCE.domain2dto(people);
? ? ? ? assertNotNull(personDTOs);
? ? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
多對一
MapStruct 可以將幾種類型的對象映射為另外一種類型,比如將多個 DO 對象轉換為 DTO

例子

兩個 DO 對象 Item 和 Sku,一個 DTO 對象 SkuDTO
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Item {
? ? private Long id;
? ? private String title;
}

@NoArgsConstructor
@AllArgsConstructor
@Data
public class Sku {
? ? private Long id;
? ? private String code;
? ? private Integer price;
}

@NoArgsConstructor
@AllArgsConstructor
@Data
public class SkuDTO {
? ? private Long skuId;
? ? private String skuCode;
? ? private Integer skuPrice;
? ? private Long itemId;
? ? private String itemName;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
創建 ItemConverter(映射)接口,MapStruct 就會自動實現該接口
@Mapper
public interface ItemConverter {
? ? ItemConverter INSTANCE = Mappers.getMapper(ItemConverter.class);

? ? @Mappings({
? ? ? ? ? ? @Mapping(source = "sku.id",target = "skuId"),
? ? ? ? ? ? @Mapping(source = "sku.code",target = "skuCode"),
? ? ? ? ? ? @Mapping(source = "sku.price",target = "skuPrice"),
? ? ? ? ? ? @Mapping(source = "item.id",target = "itemId"),
? ? ? ? ? ? @Mapping(source = "item.title",target = "itemName")
? ? })
? ? SkuDTO domain2dto(Item item, Sku sku);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
創建測試類,講 Item 和 Sku 兩個 DO對象,映射成一個 DTO 對象 SkuDTO
public class ItemConverterTest {
? ? @Test
? ? public void test() {
? ? ? ? Item item = new Item(1L, "iPhone X");
? ? ? ? Sku sku = new Sku(2L, "phone12345", 1000000);
? ? ? ? SkuDTO skuDTO = ItemConverter.INSTANCE.domain2dto(item, sku);
? ? ? ? assertNotNull(skuDTO);
? ? ? ? assertEquals(skuDTO.getSkuId(),sku.getId());
? ? ? ? assertEquals(skuDTO.getSkuCode(),sku.getCode());
? ? ? ? assertEquals(skuDTO.getSkuPrice(),sku.getPrice());
? ? ? ? assertEquals(skuDTO.getItemId(),item.getId());
? ? ? ? assertEquals(skuDTO.getItemName(),item.getTitle());
? ? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
可以添加自定義方法
// 形式如下?
default PersonDTO personToPersonDTO(Person person) {
? ? //hand-written mapping logic
}

// 比如在 PersonConverter 里面加入如下
default Boolean convert2Bool(Integer value) {
? ? if (value == null || value < 1) {
? ? ? ? return Boolean.FALSE;
? ? } else {
? ? ? ? return Boolean.TRUE;
? ? }
}

default Integer convert2Int(Boolean value) {
? ? if (value == null) {
? ? ? ? return null;
? ? }
? ? if (Boolean.TRUE.equals(value)) {
? ? ? ? return 1;
? ? }
? ? return 0;
}
// 測試類 PersonConverterTest 加入
assertTrue(PersonConverter.INSTANCE.convert2Bool(1));
assertEquals((int)PersonConverter.INSTANCE.convert2Int(true),1);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#### 如果已經有了接收對象,更新目標對象

// 比如在 PersonConverter 里面加入如下,@InheritConfiguration 用于繼承剛才的配置
@InheritConfiguration(name = "domain2dto")
void update(Person person, @MappingTarget PersonDTO personDTO);

// 測試類 PersonConverterTest 加入如下
Person person = new Person(1L,"zhige","zhige.me@gmail.com",new Date(),new User(1));
PersonDTO personDTO = PersonConverter.INSTANCE.domain2dto(person);
assertEquals("zhige", personDTO.getName());
person.setName("xiaozhi");
PersonConverter.INSTANCE.update(person, personDTO);
assertEquals("xiaozhi", personDTO.getName());
1
2
3
4
5
6
7
8
9
10
11
Spring 注入的方式
// 剛才一直寫的例子是默認的方式
PersonConverter INSTANCE = Mappers.getMapper(PersonConverter.class);
1
2
還有一種常用的方式,是和常用的框架 Spring 結合,在 @Mapper 后面加入 componentModel="spring"

@Mapper(componentModel="spring")
public interface PersonConverter {
? ? @Mappings({
? ? ? ? @Mapping(source = "birthday", target = "birth"),
? ? ? ? @Mapping(source = "birthday", target = "birthDateFormat", dateFormat = "yyyy-MM-dd HH:mm:ss"),
? ? ? ? @Mapping(target = "birthExpressionFormat", expression = "java(org.apache.commons.lang3.time.DateFormatUtils.format(person.getBirthday(),\"yyyy-MM-dd HH:mm:ss\"))"),
? ? ? ? @Mapping(source = "user.age", target = "age"),
? ? ? ? @Mapping(target = "email", ignore = true)
? ? })
? ? PersonDTO domain2dto(Person person);
}
1
2
3
4
5
6
7
8
9
10
11
這時候測試類改一下,我用的 spring boot 的形式

@RunWith(SpringRunner.class)
@SpringBootTest(classes = BaseTestConfiguration.class)
public class PersonConverterTest {
? ? //這里把轉換器裝配進來
? ? @Autowired
? ? private PersonConverter personConverter;
? ? @Test
? ? public void test() {
? ? ? ? Person person = new Person(1L,"zhige","zhige.me@gmail.com",new Date(),new User(1));
? ? ? ? PersonDTO personDTO = personConverter.domain2dto(person);

? ? ? ? assertNotNull(personDTO);
? ? ? ? assertEquals(personDTO.getId(), person.getId());
? ? ? ? assertEquals(personDTO.getName(), person.getName());
? ? ? ? assertEquals(personDTO.getBirth(), person.getBirthday());
? ? ? ? String format = DateFormatUtils.format(personDTO.getBirth(), "yyyy-MM-dd HH:mm:ss");
? ? ? ? assertEquals(personDTO.getBirthDateFormat(),format);
? ? ? ? assertEquals(personDTO.getBirthExpressionFormat(),format);

? ? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
我 test 路徑下加入了一個配置類

@EnableAutoConfiguration
@Configuration
@ComponentScan
public class BaseTestConfiguration {
}
1
2
3
4
5
MapStruct 注解的關鍵詞
@Mapper 只有在接口加上這個注解, MapStruct 才會去實現該接口
? ? @Mapper 里有個 componentModel 屬性,主要是指定實現類的類型,一般用到兩個
? ? default:默認,可以通過 Mappers.getMapper(Class) 方式獲取實例對象
? ? spring:在接口的實現類上自動添加注解 @Component,可通過 @Autowired 方式注入
@Mapping:屬性映射,若源對象屬性與目標對象名字一致,會自動映射對應屬性
? ? source:源屬性
? ? target:目標屬性
? ? dateFormat:String 到 Date 日期之間相互轉換,通過 SimpleDateFormat,該值為 SimpleDateFormat ? ? ? ? ? ? ?的日期格式
? ? ignore: 忽略這個字段
@Mappings:配置多個@Mapping
@MappingTarget 用于更新已有對象
@InheritConfiguration 用于繼承配置
1
2
3
4
5
6
7
8
9
10
11
12
本文只是寫了一些常用的比較簡單的一些功能,更詳細的可以去閱讀官方文檔: http://mapstruct.org/documentation/stable/reference/html/
————————————————
版權聲明:本文為CSDN博主「志哥談笑間」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/zhige_me/article/details/80699784

總結

以上是生活随笔為你收集整理的Java实体映射工具MapStruct的全部內容,希望文章能夠幫你解決所遇到的問題。

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

三级av网 | 国产色一区 | 久久久影院官网 | 人人澡人人澡人人 | 日日精品 | 久久一级片 | 日韩精品视频久久 | 久久国产精品99久久久久 | 亚洲精品久久久久中文字幕二区 | 久久天天躁狠狠躁亚洲综合公司 | www.黄色在线 | 午夜精品久久久久久久爽 | 久久精品国产免费 | 午夜电影中文字幕 | 日韩精品一区二区三区丰满 | 亚洲.www| 欧美日韩高清在线 | 日韩午夜电影 | 911国产 | 国产v视频 | 美女视频一区 | 久久99精品久久只有精品 | 成人动漫精品一区二区 | zzijzzij亚洲成熟少妇 | 激情五月婷婷 | 人人插人人搞 | 91精品视频免费在线观看 | 黄色美女免费网站 | 国产91精品一区二区 | 免费av网址在线观看 | 又黄又爽又无遮挡的视频 | 天天色天天色天天色 | 麻豆免费视频 | 香蕉在线播放 | av高清一区二区三区 | 欧美动漫一区二区三区 | 国产精品正在播放 | 日日碰狠狠躁久久躁综合网 | 中文字幕国产亚洲 | 伊人手机在线 | 激情综合中文娱乐网 | 日三级在线 | 久久成年人视频 | 久久九九视频 | 国产成人一区二区在线观看 | 久久www免费视频 | 最新日本中文字幕 | 亚洲伦理中文字幕 | 久久久久久久久久免费视频 | 波多野结衣一区二区三区中文字幕 | 福利视频午夜 | 国产特级毛片aaaaaa高清 | 亚洲视频 视频在线 | 欧美日韩免费观看一区=区三区 | 久久视频精品在线观看 | 日韩欧美一区视频 | 曰韩在线| 人人爽人人澡 | 久久久国产视频 | 在线观看亚洲国产 | 99在线播放| 午夜av电影院 | 国产99在线播放 | 黄色成年片 | 黄色av高清 | 国产黄色资源 | 亚洲每日更新 | 日韩av区 | a在线播放 | 成人在线网站观看 | 日韩免费区 | 欧美激情操 | 91精品人成在线观看 | 婷婷在线视频观看 | 天天干.com | 精品在线二区 | 在线国产91 | 免费黄色小网站 | 激情视频亚洲 | 国产高清一 | 在线观看日韩视频 | 五月天堂网 | 日韩av成人免费看 | 成人免费在线观看电影 | 国产香蕉视频在线播放 | 成人午夜电影网 | 极品久久久久 | 日本色小说视频 | 一区二区理论片 | 国产午夜三级一区二区三桃花影视 | 婷婷色资源 | 97av影院 | 久久av黄色 | 99在线观看精品 | 国产精品久久久久久久av大片 | 99精品国产一区二区 | 午夜三级毛片 | 日韩精品免费专区 | 国产午夜精品一区二区三区嫩草 | av黄色国产 | 国产一级久久久 | 国产小视频在线免费观看视频 | 国产精品24小时在线观看 | 国产成人在线观看 | 国产高清av免费在线观看 | 丁香六月婷 | 一级淫片在线观看 | 国产在线观看高清视频 | a成人v在线 | 成人在线视频你懂的 | 97夜夜澡人人双人人人喊 | 高清中文字幕 | 91最新中文字幕 | 国产视频1 | 国产精品午夜在线观看 | 国产精品一区二区三区四 | av片免费播放 | 婷婷精品视频 | 丁香花中文字幕 | 韩国精品一区二区三区六区色诱 | 久久在视频 | 在线免费观看的av网站 | 色网站在线免费观看 | 97在线观看视频免费 | 国产精品久久久久久高潮 | 亚洲国产视频网站 | 成人免费看片98欧美 | 久久免费在线观看 | 亚洲精品久久久久58 | 久久不卡视频 | 国产在线观看你懂得 | 午夜精品一区二区三区免费视频 | 国产在线观看国语版免费 | 在线亚洲播放 | 99久e精品热线免费 99国产精品久久久久久久久久 | 免费麻豆视频 | 欧美日韩不卡一区二区三区 | 欧美日韩18 | 欧美一区二区三区在线播放 | 成年人在线播放视频 | 欧美精品九九 | 国产免费小视频 | 亚洲狠狠婷婷 | 99在线视频观看 | 国产成人精品午夜在线播放 | 国产精品亚 | 精品一区二区三区电影 | 日本aaa在线观看 | 婷色| 四虎永久精品在线 | 久久久视频在线 | 色婷婷在线视频 | 久久九九久久九九 | 久久国产高清 | 国产精品激情在线观看 | 夜夜视频资源 | 久久成人人人人精品欧 | 亚洲精品乱码久久久久久写真 | 日韩字幕在线观看 | 天天操天天添天天吹 | 国产精品久久久久久久久久新婚 | 久草在线国产 | 亚洲精品国产精品乱码在线观看 | www.色国产 | 午夜在线观看一区 | 在线色吧 | www·22com天天操| 国产精品国产三级国产aⅴ入口 | 麻豆视频免费网站 | 亚洲精品五月天 | 成人a视频 | 久久国产精品色av免费看 | 九九爱免费视频 | 91久久久国产精品 | 97超碰人人模人人人爽人人爱 | 久久久久久久久久网站 | 欧美aa在线 | 99热最新在线 | 一级成人在线 | 日b视频在线观看网址 | 中文超碰字幕 | 国产亚洲精品福利 | 青青河边草免费观看 | 中文字幕永久免费 | 97精品国产91久久久久久 | 色综合久久88色综合天天6 | 国产日韩精品一区二区三区 | 91.dizhi永久地址最新 | www.夜夜爱 | 爱色婷婷 | 久草在线在线精品观看 | 国产精品一区二区久久国产 | 国产免费小视频 | 成人免费视频播放 | 韩国一区二区在线观看 | 国产a国产a国产a | 久久tv| 国产九色91| 亚洲精品tv久久久久久久久久 | 麻豆视频91 | 深爱婷婷激情 | 免费看污的网站 | 黄色www在线观看 | 天天撸夜夜操 | 在线免费观看av网站 | 午夜精品电影 | 国产精品视频永久免费播放 | 激情丁香综合 | 欧美日韩在线精品 | 四虎www. | 91香蕉视频在线下载 | 99精品国产在热久久 | 亚洲精品久久久久58 | 国产成人福利在线 | www视频在线播放 | 日日夜夜骑 | 青青河边草观看完整版高清 | 天堂av观看| 日韩区在线观看 | 成人在线一区二区 | 日韩精品三区四区 | 久久久国产精品成人免费 | 亚洲精品美女在线观看播放 | 在线看小早川怜子av | 天天射综合网视频 | 成人一区影院 | 亚洲国产精品电影 | av电影免费| 国产亚洲精品久久久久秋 | 丁香花在线视频观看免费 | 狠狠色伊人亚洲综合网站色 | 免费合欢视频成人app | 四虎在线免费 | av中文字幕日韩 | 国产精品精品久久久久久 | av无限看| 国产日产高清dvd碟片 | 午夜成人影视 | 国产中文字幕在线看 | 丰满少妇在线观看 | 日韩色一区二区三区 | 中文字幕在线影院 | 97精品伊人 | 超碰在线资源 | 国产午夜精品一区二区三区嫩草 | 久久伦理| 日韩欧美综合 | 精品国产一区二区三区蜜臀 | 国产精品成人久久久久久久 | 99久e精品热线免费 99国产精品久久久久久久久久 | 欧美日韩在线网站 | 91亚色在线观看 | 久久91网| 91精品免费在线视频 | 成人动漫一区二区三区 | 欧美最爽乱淫视频播放 | 色在线免费| 免费欧美| 在线久草视频 | 婷婷色视频 | 免费在线观看av网站 | 国产破处在线播放 | 欧美成人精品欧美一级乱黄 | 中文字幕第一页在线vr | 久久久久免费观看 | 亚洲第一中文网 | 伊人天天狠天天添日日拍 | 丁香婷婷在线 | 天堂资源在线观看视频 | 天天鲁天天干天天射 | 午夜aaaa| 免费a v在线 | 欧美午夜精品久久久久久孕妇 | 日日干天天插 | 国产成人精品一区二区三区 | 久久精品看 | 欧美a在线免费观看 | 久久艹影院 | 99久久精品免费一区 | 欧美a免费| 蜜臀av性久久久久蜜臀aⅴ四虎 | 免费网站在线观看人 | av大片免费看 | 亚洲视频999 | 五月婷香蕉久色在线看 | 中文字幕在线观看网 | 91av亚洲 | 久久国产麻豆 | 亚洲国产成人av网 | 99国产精品久久久久久久久久 | 色网av| 在线播放 日韩专区 | 国产视频一区二区在线 | 51久久夜色精品国产麻豆 | 午夜精品视频免费在线观看 | 在线色吧 | 91香蕉久久 | 欧美日韩一区二区在线 | www.一区二区三区 | 日韩动态视频 | 久久成年视频 | 久久免费大片 | 日日爱影视 | 欧美男男tv网站 | 久久av在线播放 | 亚洲精品国产精品国自产在线 | 国产一区高清在线观看 | 国产中文字幕第一页 | 探花系列在线 | 亚洲男男gaygay无套同网址 | 亚洲精品在线一区二区 | 久久精品99国产国产 | 精品v亚洲v欧美v高清v | 永久免费av在线播放 | 亚洲最新在线视频 | 成人福利在线 | 一区二区三区韩国免费中文网站 | 激情欧美一区二区三区免费看 | 亚洲精品午夜一区人人爽 | 亚洲在线视频播放 | 97在线看 | 日本黄色免费大片 | 国产精品免费不卡 | 黄色片软件网站 | 精品不卡av | 成av人电影 | 永久精品视频 | 九九九九九九精品任你躁 | 色婷婷狠狠18 | 337p西西人体大胆瓣开下部 | 国产精品手机在线播放 | 亚洲理论片在线观看 | 欧美性久久久久久 | 久久精品一区二区三区中文字幕 | 亚洲黄色影院 | 一区二区精品视频 | 九九有精品 | 99色视频在线 | 九九热视频在线免费观看 | 99精品久久99久久久久 | 国产xx在线| 国产精选视频 | 91正在播放 | 99精品视频在线看 | 97在线影视 | 国内外成人在线视频 | 亚洲精品伦理在线 | 日韩91av| 国产老熟 | 一区二区久久 | 国产视频一区在线免费观看 | 黄色一级在线免费观看 | 九九热免费精品视频 | 韩日精品在线 | 日本久久久久久久久 | 色福利网站 | 又湿又紧又大又爽a视频国产 | 一个色综合网站 | 成人午夜电影在线播放 | 久久精品一| 激情五月婷婷综合网 | 亚州精品在线视频 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 精品一区二区免费视频 | 6080yy精品一区二区三区 | 久久久美女 | 精品国产1区2区3区 国产欧美精品在线观看 | 中文字幕高清在线播放 | 免费看国产视频 | 爱爱av在线| 国产精品99久久久久久久久 | 在线中文字幕视频 | 精品国产精品久久一区免费式 | 国产精品99久久久久人中文网介绍 | 一级精品视频在线观看宜春院 | 久久久精品国产一区二区三区 | 欧美日韩高清不卡 | 亚洲午夜精品久久久久久久久久久久 | 国产精品久久精品 | 日韩精品在线观看av | 美女久久久久久久久久 | 成人四虎| 女人18精品一区二区三区 | 久久激情婷婷 | 国产福利一区二区三区在线观看 | 久久综合国产伦精品免费 | 亚洲黄色一级视频 | 日韩videos | 亚洲国产久| 97超碰影视 | 欧美亚洲三级 | 亚洲五月婷| 色鬼综合网 | 色丁香久久 | 亚洲va欧美va国产va黑人 | 人人玩人人添人人澡超碰 | 天天天天爱天天躁 | 精品国产电影一区二区 | 日日爽天天爽 | 久久久久久久久爱 | 视频国产 | 四虎成人精品永久免费av九九 | 久久午夜精品 | 久久伦理网 | 五月精品| 免费观看www视频 | 免费h在线观看 | 日韩高清在线看 | 玖玖精品在线 | 西西444www大胆高清视频 | av丁香花 | 国内精品亚洲 | 久草资源在线观看 | 国产精品久久久久久久久蜜臀 | 国产亚洲成av片在线观看 | 日韩r级在线 | 天天伊人网 | 欧美一级片在线免费观看 | 免费91麻豆精品国产自产在线观看 | 国产一区二区在线观看免费 | 午夜性生活 | 欧美日在线 | 亚洲成av人片在线观看香蕉 | 亚洲精品午夜国产va久久成人 | 麻豆精品传媒视频 | 精品国产综合区久久久久久 | 久久人人爽 | 日本久久免费视频 | 激情欧美xxxx | 亚洲 欧美 日韩 综合 | 国产精品青草综合久久久久99 | 国产精品精品国产婷婷这里av | 国产精品免费在线观看视频 | 69av在线视频 | 美女一级毛片视频 | 日韩免费观看视频 | 久久久九色精品国产一区二区三区 | 国产精品theporn | 黄色免费看片网站 | 国产精品久久久久久久久蜜臀 | 天天天天天天天操 | 免费精品在线观看 | 久久久久国产精品一区二区 | 在线视频观看亚洲 | 天天天干天天天操 | 婷婷色在线播放 | 免费黄色网址大全 | 一级黄色在线视频 | 最近中文字幕高清字幕在线视频 | 日韩在线观看电影 | 色综合久久久久综合体桃花网 | 九九热国产 | 久久精品国产免费 | 久久这里只有精品久久 | 日韩一级成人av | 最近字幕在线观看第一季 | 91在线观看视频网站 | 豆豆色资源网xfplay | 亚洲精品视频在线观看免费 | 日韩羞羞 | www.夜夜爽 | 在线观看免费视频 | 99久久久久久久久 | 国产精品一区免费观看 | 国产视频一| 精品嫩模福利一区二区蜜臀 | 久久综合中文字幕 | 成人激情开心网 | 日本狠狠色 | 97在线免费观看视频 | 久久综合久久鬼 | 国产一级精品视频 | 精品女同一区二区三区在线观看 | 日韩欧美在线观看一区二区三区 | 亚洲男模gay裸体gay | 国产不卡一 | 国产一级二级av | 欧美成人基地 | 久久久午夜视频 | 日韩在线网 | 亚洲精品久久久久中文字幕二区 | 日日干天天 | 欧美一级特黄高清视频 | 国产99一区 | 国产女人18毛片水真多18精品 | 国产精品99久久免费黑人 | av在线播放中文字幕 | 97色在线视频 | 亚洲成人av一区 | 99视频免费 | 色播五月激情综合网 | 欧美日韩一区二区在线观看 | 国产99久久九九精品免费 | 亚洲精品欧美专区 | 少妇bbw搡bbbb搡bbbb | 中文字幕免费观看视频 | 青青久草在线 | 免费亚洲精品 | 高清av免费观看 | 五月婷久久 | 亚洲天堂网视频 | 在线观看免费黄视频 | 狠狠色伊人亚洲综合网站野外 | 在线精品观看国产 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产中文在线视频 | 国产精品露脸在线 | 日韩av在线高清 | 国产999视频在线观看 | 麻豆视频免费网站 | 国产美女精品视频 | 国产不卡网站 | 久久这里只有精品视频首页 | 丁香六月婷婷激情 | 制服丝袜天堂 | 久久综合久久综合久久 | 天天干中文字幕 | 免费福利视频网站 | 国产黄色看片 | 日本大片免费观看在线 | 国产日韩在线看 | 韩国精品视频在线观看 | 久久资源总站 | 黄色日本免费 | 天天干天天干天天干天天干天天干天天干 | 99精品视频在线免费观看 | 欧美激情综合五月色丁香 | 日韩视频精品在线 | 97超碰人| 能在线观看的日韩av | 亚洲黄色一级电影 | 我爱av激情网 | 精品视频成人 | 亚洲激情视频在线 | 九九亚洲视频 | 精品美女久久久久 | 日韩久久精品一区 | 91视频成人免费 | 久久综合久色欧美综合狠狠 | 亚洲成人资源网 | 国产精品久久9 | 免费观看性生交 | 国产亚洲精品女人久久久久久 | 国产婷婷视频在线 | 日韩欧美xx| 精品视频免费看 | 黄色小网站在线 | 国产字幕在线观看 | 在线成人免费电影 | 中文字幕精品一区二区三区电影 | 国产黄色资源 | 日韩系列在线 | 久久电影中文字幕视频 | 久久久久成人精品亚洲国产 | www.色五月 | 国产黄色精品在线观看 | 亚洲欧洲精品一区二区 | 色婷婷免费 | 91在线免费播放 | 色婷婷啪啪免费在线电影观看 | 国产一级在线播放 | 精品九九九| 欧美日韩免费一区二区三区 | 麻花豆传媒一二三产区 | 成人免费在线观看电影 | 在线亚洲午夜片av大片 | 中文字幕第一页av | 99久久视频| 亚洲精品在线播放视频 | 久久久久欠精品国产毛片国产毛生 | 久久国产精品久久w女人spa | 天天操天天操天天操天天操天天操天天操 | 一区二区视 | av天天色| 久久久一本精品99久久精品66 | 日本中文字幕网站 | 欧美日韩国产色综合一二三四 | 国产精品美乳一区二区免费 | 日日碰夜夜爽 | 水蜜桃亚洲一二三四在线 | 色婷婷精品 | 成人免费视频网站 | 青青河边草手机免费 | 久久免费99 | 国产首页 | h视频日本 | 国产福利91精品一区二区三区 | 国产精品永久在线 | 人人干人人上 | 日日干激情五月 | 99热在线国产 | 色婷婷电影 | 九九热视频在线免费观看 | 五月天色站 | 日韩精品在线播放 | 色婷婷视频在线观看 | 超碰在线天天 | 超碰97中文 | 99精品免费视频 | 日本激情视频中文字幕 | 久久都是精品 | 韩国三级av在线 | 久久久网页 | 在线一区二区三区 | www国产亚洲精品久久网站 | 亚洲国产成人精品在线观看 | 日本少妇高清做爰视频 | 国内视频在线 | 欧美日韩精品电影 | 99中文视频在线 | 97色婷婷成人综合在线观看 | 精品毛片在线 | 探花视频免费观看 | 午夜天天操| av中文字幕网站 | 日韩欧美精选 | 色丁香综合| 黄色综合 | www.一区二区三区 | 亚洲欧洲av | 成人黄色影片在线 | 免费看三级黄色片 | 亚洲精品乱码久久久久久蜜桃不爽 | 中文字幕在线观看网 | 免费观看一级成人毛片 | 日韩综合色 | 91在线看黄 | 欧美肥妇free | 精品在线你懂的 | 在线免费试看 | 国产精品视频久久 | 九九爱免费视频 | 久久黄色美女 | 天天拍天天爽 | 国产成人一级 | 国产精品中文字幕在线 | 国产一区二区高清不卡 | av中文国产| 精品一二三区 | 国产精品女主播一区二区三区 | 激情综合亚洲 | 精品国模一区二区 | 香蕉视频一级 | 91热在线| 超碰免费av| 黄色大全免费网站 | 欧美日韩高清国产 | 六月天综合网 | 免费视频一二三区 | 日日操夜夜操狠狠操 | 狠狠色狠狠综合久久 | av一级在线观看 | 欧美a级片免费看 | 在线v片免费观看视频 | 91久久国产综合精品女同国语 | 超碰日韩| 一区二区精品在线 | 深夜国产福利 | 91精品视频导航 | 尤物97国产精品久久精品国产 | 不卡的一区二区三区 | 久草在线免费看视频 | 亚洲综合在线发布 | 国产女人40精品一区毛片视频 | 97av超碰| 亚洲黄色三级 | 欧美福利网址 | 美女网站在线看 | av高清在线 | 亚洲精品久久激情国产片 | 亚洲日韩精品欧美一区二区 | 免费人成在线观看 | 精品久久久久久久久中文字幕 | 97超视频| 久久免费的精品国产v∧ | 韩日成人av | 亚洲综合在线播放 | 国产成人精品久久 | 国产精品国内免费一区二区三区 | 欧美日本一二三 | 少妇性bbb搡bbb爽爽爽欧美 | 成人午夜电影网站 | 美女视频又黄又免费 | 久久国产成人午夜av影院宅 | 91豆麻精品91久久久久久 | 可以免费看av | 日本黄色一级电影 | 九九热只有精品 | 国产高清专区 | 国产亚洲精品综合一区91 | 超碰国产97 | 超碰人人草| 黄色软件在线观看免费 | 黄色小网站在线观看 | 91人人澡人人爽 | 成人国产精品久久久久久亚洲 | 国产精品美女久久久久久免费 | 日韩色视频在线观看 | 午夜免费福利片 | 最新久久久 | 国产精品黑丝在线观看 | 久草在线91| 网址你懂的在线观看 | 最近高清中文在线字幕在线观看 | 婷婷久久网| 午夜国产福利在线 | 天天操天天干天天综合网 | 超碰在线天天 | 国产日韩精品一区二区三区 | 久久热亚洲 | 成人午夜免费剧场 | 超碰公开97 | 精品久久久久_ | 视频二区在线 | 一区二区三区电影在线播 | 国产免费视频一区二区裸体 | 亚洲高清视频在线观看 | 一级片免费在线 | 久久精美视频 | 在线91播放 | 免费福利在线播放 | 99热这里精品 | 九色在线视频 | 久久精品老司机 | 国产视频在线观看一区 | 天天插天天干 | 国产九九九精品视频 | 欧美一级片免费在线观看 | 黄色免费网站下载 | 国产精品3 | 六月丁香综合 | 操操日日| 国产99久久精品一区二区永久免费 | 国产成人精品一区二区在线观看 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 久草91视频| 久草爱| 亚洲国产成人在线 | 亚洲午夜小视频 | 日韩成人中文字幕 | 欧美五月婷婷 | 992tv人人草 黄色国产区 | 日日摸日日添夜夜爽97 | 毛片精品免费在线观看 | 黄色一区三区 | 精品在线视频一区二区三区 | 欧美性视频网站 | 国产黄影院色大全免费 | 免费观看的av网站 | 日韩精品久久中文字幕 | 日韩精品一区二区三区水蜜桃 | 伊人成人久久 | 国产精品午夜在线 | 久久这里只有精品9 | 在线观看精品黄av片免费 | 国产高清免费观看 | 美国av大片 | 亚洲国产午夜精品 | 精品一区二区精品 | 99精品国自产在线 | 中文字幕成人一区 | 免费av试看 | 92精品国产成人观看免费 | 黄色大全在线观看 | 天堂av观看 | 中文字幕精品一区二区精品 | 国产精品中文久久久久久久 | 在线观看理论 | 欧洲精品一区二区 | 少妇性色午夜淫片aaaze | 久久66热这里只有精品 | 久久伊人精品天天 | 人人玩人人添人人澡超碰 | 国内亚洲精品 | 超碰av在线免费观看 | 奇米四色影狠狠爱7777 | 人人爱夜夜操 | av大全在线播放 | 五月天色综合 | 国产亚洲成av人片在线观看桃 | 91在线国产观看 | 国产九九九精品视频 | 国产无吗一区二区三区在线欢 | 国产婷婷视频在线 | 日韩成人免费观看 | 欧美成人精品欧美一级乱黄 | 日本狠狠色| 久久久久高清毛片一级 | 成年人免费在线观看网站 | 四虎成人在线 | 成人h视频 | 亚洲激情婷婷 | 午夜影院一级片 | 热久久免费视频精品 | 欧美久久电影 | 天天爽天天做 | www.超碰| 久久电影国产免费久久电影 | 9幺看片 | 免费黄色网止 | 午夜美女网站 | 8x成人免费视频 | 中文字幕在线播放视频 | 欧美色图视频一区 | 91精品国 | 成人免费视频观看 | 国产一区免费在线 | 欧美黄色软件 | 免费网站黄 | 在线 你懂 | 日韩一区正在播放 | 一级淫片在线观看 | 深夜视频久久 | 国产精品videoxxxx | 久久成人麻豆午夜电影 | www.五月激情.com | 免费a级大片 | 免费久久99精品国产婷婷六月 | 久久久麻豆精品一区二区 | 日韩性xxx| 亚洲区视频在线观看 | 亚洲视频分类 | 国产精品久久久久久久久久免费 | 婷婷久久久 | 成人av电影免费 | 国产精品 亚洲精品 | 99视频在线观看免费 | 六月丁香婷婷网 | 激情久久伊人 | 免费视频黄色 | 欧美一区二区在线看 | 久久大香线蕉app | 国产无吗一区二区三区在线欢 | 久久爽久久爽久久av东京爽 | 久久手机免费视频 | 日韩一区二区三区在线观看 | 国产精品小视频网站 | 中文字幕在线看视频 | 欧美色就是色 | 日韩在线视频一区二区三区 | 最近在线中文字幕 | 天天天操操操 | 久久999精品 | 久久情侣偷拍 | 免费福利视频网站 | 91久久久久久久一区二区 | 国产精品视频在线观看 | 992tv在线观看 | 四虎国产精品免费观看视频优播 | 91精品国产自产91精品 | 精品久久久久久综合 | 亚洲一区精品二人人爽久久 | 国产97在线观看 | 三级a毛片 | 中文字幕在线色 | 婷婷六月色 | 黄色小网站在线 | 亚洲国产精品999 | 亚洲激精日韩激精欧美精品 | 四虎永久免费 | 久久精品草 | 国内精品久久久久久久97牛牛 | 久久中文网 | 日女人免费视频 | 精品在线视频一区二区三区 | 奇米7777狠狠狠琪琪视频 | 97久久精品午夜一区二区 | 91麻豆免费版 | av高清不卡| 亚洲涩涩涩涩涩涩 | 亚洲九九九在线观看 | 亚洲一区视频在线播放 | 69av在线播放 | 国产日韩欧美在线一区 | 日韩精品视频一二三 | 国产又粗又猛又爽又黄的视频免费 | 四虎国产视频 | 91成人免费看片 | 97视频在线观看成人 | 日韩视 | 日韩在线观看免费 | 看毛片网站 | 国产中文字幕久久 | 亚洲精品免费观看视频 | av电影免费 | 婷婷午夜天 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 欧美男同网站 | 欧洲高潮三级做爰 | 香蕉视频在线免费 | 天天综合操 | 亚洲精品乱码久久久久 | 狠狠色综合网站久久久久久久 | 亚洲免费精品一区二区 | 免费视频三区 | 91秒拍国产福利一区 | 欧美日性视频 | 激情av资源 | 69久久久久久久 | 天天操夜夜想 | 亚洲国产精品一区二区久久,亚洲午夜 | 精品国产美女 | 怡红院av久久久久久久 | 97爱| 久久a免费视频 | 日韩精品欧美专区 | 亚洲精品字幕在线观看 | 天天干天天搞天天射 | 日日夜夜噜噜噜 | 免费看的黄色小视频 | 黄色动态图xx | 在线观看不卡视频 | 欧美日韩二三区 | 日韩中文字幕免费看 | 91网站免费观看 | 中文字幕二区在线观看 | 国产黄色精品在线观看 | 2019中文字幕第一页 | 香蕉视频在线免费看 | av在线播放免费 | 果冻av在线 | 色伊人网 | 在线成人观看 | 国产精品久久久久久久久久白浆 | 日日夜夜天天人人 | 成人av免费看 | 免费人人干| 国产成在线观看免费视频 | 久久精品韩国 | 国产精品每日更新 | h动漫中文字幕 | 亚洲视频免费在线 | 亚洲丁香久久久 | 久久久久免费精品视频 | 国产特级毛片aaaaaaa高清 | 九七视频在线观看 | 久久se视频| 91aaa在线观看 | 99久久精品无码一区二区毛片 | av片一区| 青草草在线 | 精品久久久久久亚洲 | 久久免费av电影 | 美女免费网视频 | 美女黄频 | 久久99国产精品免费 | 91免费观看视频网站 | 波多野结衣在线视频一区 | 国产一级视屏 | 色婷婷色| 亚洲自拍偷拍色图 | 国内精品在线观看视频 | 天天草天天干天天 | 视频在线99 | 免费观看国产精品视频 | 在线观看精品一区 | 午夜在线观看一区 | 国产精品videossex国产高清 | 国产精品69久久久久 | 91九色国产蝌蚪 | 夜夜婷婷 | 日韩国产精品久久 | av电影在线免费 | 中文字幕国内精品 | 久久99亚洲网美利坚合众国 | 国产精品久久久久久久久久久久久久 | 国产精品久久久一区二区 | 中文字幕第一页在线 | 综合在线观看色 | 91麻豆精品国产91久久久更新时间 | 99久久婷婷国产一区二区三区 | 久久综合狠狠综合久久狠狠色综合 | 四虎视频| 人人爽人人澡人人添人人人人 | 91爱爱中文字幕 | 亚洲国产无 | 色视频在线免费观看 | 在线视频观看亚洲 | 日本精品在线看 | 亚洲黄色在线免费观看 | 国内精品久久久久久久影视麻豆 | 欧美日韩视频观看 | 日本久草电影 | 日韩色区 | 一区二区精品在线观看 | 五月天电影免费在线观看一区 | 国产91丝袜在线播放动漫 | 亚洲成人黄色在线观看 | 久久综合丁香 | 久草在线免| 日韩中文字幕电影 | 97免费公开视频 | 成人av电影网址 | 国产精品大片免费观看 | 国产不卡在线看 | 美女网站黄免费 | 欧美日韩亚洲一 | 91视频在线免费看 |