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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

【SpringBoot】24、SpringBoot中实现数据字典

發(fā)布時間:2023/12/10 javascript 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【SpringBoot】24、SpringBoot中实现数据字典 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我們在日常的項(xiàng)目開發(fā)中,對于數(shù)據(jù)字典肯定不模糊,它幫助了我們更加方便快捷地進(jìn)行開發(fā),下面一起來看看在 SpringBoot 中如何實(shí)現(xiàn)數(shù)據(jù)字典功能的

一、簡介

1、定義

數(shù)據(jù)字典是指對數(shù)據(jù)的數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲、處理邏輯等進(jìn)行定義和描述,其目的是對數(shù)據(jù)流程圖中的各個元素做出詳細(xì)的說明,使用數(shù)據(jù)字典為簡單的建模項(xiàng)目。簡而言之,數(shù)據(jù)字典是描述數(shù)據(jù)的信息集合,是對系統(tǒng)中使用的所有數(shù)據(jù)元素的定義的集合。數(shù)據(jù)字典(Data dictionary)是一種用戶可以訪問的記錄數(shù)據(jù)庫和應(yīng)用程序元數(shù)據(jù)的目錄。主動數(shù)據(jù)字典是指在對數(shù)據(jù)庫或應(yīng)用程序結(jié)構(gòu)進(jìn)行修改時,其內(nèi)容可以由DBMS自動更新的數(shù)據(jù)字典。被動數(shù)據(jù)字典是指修改時必須手工更新其內(nèi)容的數(shù)據(jù)字典。

2、理解

數(shù)據(jù)字典是一種通用的程序設(shè)計(jì)思想,將主體與分支存于兩張數(shù)據(jù)表中,他們之間靠著唯一的 code 相互聯(lián)系,且 code 是唯一存在的,分支依附主體而存在,每一條分支都有它唯一對應(yīng)的屬性值

例如:性別(sex),分為(0–保密1–男2–女),那么數(shù)據(jù)字典的設(shè)計(jì)就應(yīng)該是

主表:

{"code": "sex","name": "性別" }

副表:

[{"dictCode": "sex","code": "0","text": "保密"},{"dictCode": "sex","code": "1","text": "男"},{"dictCode": "sex","code": "2","text": "女"} ]

那么我們在使用數(shù)據(jù)字典的時候,只需要知道 dictCode,再使用 code 找到唯一的字典值

二、數(shù)據(jù)表設(shè)計(jì)

1、數(shù)據(jù)表設(shè)計(jì)

主表:

drop table if exists sys_dict;/*==============================================================*/ /* Table: sys_dict */ /*==============================================================*/ create table sys_dict (id bigint(20) not null auto_increment comment '主鍵id',code varchar(32) comment '編碼',name varchar(32) comment '名稱',descript varchar(64) comment '描述',status tinyint(1) default 0 comment '狀態(tài)(0--正常1--凍結(jié))',create_time datetime comment '創(chuàng)建時間',create_user bigint(20) comment '創(chuàng)建人',del_flag tinyint(1) default 0 comment '刪除狀態(tài)(0,正常,1已刪除)',primary key (id) ) type = InnoDB;alter table sys_dict comment '字典管理表';

副表:

drop table if exists sys_dict_detail;/*==============================================================*/ /* Table: sys_dict_detail */ /*==============================================================*/ create table sys_dict_detail (id bigint(20) not null comment '主鍵id',dict_code varchar(32) comment '字典編碼',code varchar(32) comment '編碼',name varchar(32) comment '名稱',primary key (id) ) type = InnoDB;alter table sys_dict_detail comment '字典配置表';

它們的關(guān)系如圖所示:

2、數(shù)據(jù)字典配置

三、開發(fā)前戲

1、引入 maven 依賴

<!-- web支持 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- thymeleaf模板引擎 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!-- aop依賴 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency> <!-- lombok插件 --> <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional> </dependency>

我們引入了 aop 切面所需依賴,我們的數(shù)據(jù)字典也是基于 aop 切面實(shí)現(xiàn)的

2、創(chuàng)建實(shí)體類

用戶信息表 SysUserInfo.java:

import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; import com.zyxx.common.annotation.Dict; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors;import java.io.Serializable;/*** <p>* 用戶信息表* </p>** @author lizhou* @since 2020-07-06*/ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("sys_user_info") @ApiModel(value="SysUserInfo對象", description="用戶信息表") public class SysUserInfo extends Model<SysUserInfo> {@ApiModelProperty(value = "ID")@TableId(value = "id", type = IdType.AUTO)private Long id;@ApiModelProperty(value = "登錄賬號")@TableField("account")private String account;@ApiModelProperty(value = "登錄密碼")@TableField("password")private String password;@ApiModelProperty(value = "姓名")@TableField("name")private String name;@ApiModelProperty(value = "性別(0--未知1--男2--女)")@TableField("sex")@Dict(dictCode = "sex")private Integer sex;@ApiModelProperty(value = "狀態(tài)(0--正常1--凍結(jié))")@TableField("status")@Dict(dictCode = "status")private Integer status; }

3、返回結(jié)果通用實(shí)體類

返回結(jié)果通用實(shí)體類 LayTableResult.java:

import lombok.Getter; import lombok.Setter;import java.util.List;/*** @param <T> 返回的實(shí)體類* @author lizhou* @描述 后臺返回給LayUI的數(shù)據(jù)格式*/ @Getter @Setter public class LayTableResult<T> {/*** 接口狀態(tài)*/private Integer code;/*** 提示信息*/private String msg;/*** 接口數(shù)據(jù)長度*/private Long count;/*** 接口數(shù)據(jù)*/private List<T> data;/*** 無參構(gòu)造函數(shù)*/public LayTableResult() {super();}/*** 返回?cái)?shù)據(jù)給表格*/public LayTableResult(Long count, List<T> data) {super();this.count = count;this.data = data;this.code = 0;} }

由于我用的是 layui 前端框架,我寫了一個返給 layui 表格的通用實(shí)體類,這是在實(shí)現(xiàn)數(shù)據(jù)字典需要用到的,判斷響應(yīng)返回實(shí)體類的類型來判斷是否需要注入字典

四、開發(fā)實(shí)現(xiàn)

1、創(chuàng)建自定義注解

我們創(chuàng)建一個自定義注解 @Dict 來實(shí)現(xiàn)數(shù)據(jù)字典

import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/*** 數(shù)據(jù)字典注解** @author Tellsea* @date 2020/6/23*/ @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) public @interface Dict {/*** 字典類型** @return*/String dictCode();/*** 返回屬性名** @return*/String dictText() default ""; }

2、注解實(shí)現(xiàn)

我們使用 aop 切面來實(shí)現(xiàn)什么的自定義注解 @Dict

import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.zyxx.common.annotation.Dict; import com.zyxx.common.utils.LayTableResult; import com.zyxx.common.utils.ObjConvertUtils; import com.zyxx.sbm.entity.SysDictDetail; import com.zyxx.sbm.service.SysDictService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component;import java.lang.reflect.Field; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List;/*** 數(shù)據(jù)字典切面** @author Tellsea* @date 2020/6/23*/ @Aspect @Component @Slf4j public class DictAspect {/*** 字典后綴*/private static String DICT_TEXT_SUFFIX = "Text";@Autowiredprivate SysDictService sysDictService;/*** 切點(diǎn),切入 controller 包下面的所有方法*/@Pointcut("execution( * com.zyxx.*.controller.*.*(..))")public void dict() {}@Around("dict()")public Object doAround(ProceedingJoinPoint pjp) throws Throwable {long time1 = System.currentTimeMillis();Object result = pjp.proceed();long time2 = System.currentTimeMillis();log.debug("獲取JSON數(shù)據(jù) 耗時:" + (time2 - time1) + "ms");long start = System.currentTimeMillis();this.parseDictText(result);long end = System.currentTimeMillis();log.debug("解析注入JSON數(shù)據(jù) 耗時" + (end - start) + "ms");return result;}private void parseDictText(Object result) {if (result instanceof LayTableResult) {List<JSONObject> items = new ArrayList<>();LayTableResult rr = (LayTableResult) result;if (rr.getCount() > 0) {List<?> list = (List<?>) rr.getData();for (Object record : list) {ObjectMapper mapper = new ObjectMapper();String json = "{}";try {// 解決@JsonFormat注解解析不了的問題詳見SysAnnouncement類的@JsonFormatjson = mapper.writeValueAsString(record);} catch (JsonProcessingException e) {log.error("Json解析失敗:" + e);}JSONObject item = JSONObject.parseObject(json);// 解決繼承實(shí)體字段無法翻譯問題for (Field field : ObjConvertUtils.getAllFields(record)) {//解決繼承實(shí)體字段無法翻譯問題// 如果該屬性上面有@Dict注解,則進(jìn)行翻譯if (field.getAnnotation(Dict.class) != null) {// 拿到注解的dictDataSource屬性的值String dictType = field.getAnnotation(Dict.class).dictCode();// 拿到注解的dictText屬性的值String text = field.getAnnotation(Dict.class).dictText();//獲取當(dāng)前帶翻譯的值String key = String.valueOf(item.get(field.getName()));//翻譯字典值對應(yīng)的text值String textValue = translateDictValue(dictType, key);// DICT_TEXT_SUFFIX的值為,是默認(rèn)值:// public static final String DICT_TEXT_SUFFIX = "_dictText";log.debug("字典Val: " + textValue);log.debug("翻譯字典字段:" + field.getName() + DICT_TEXT_SUFFIX + ": " + textValue);//如果給了文本名if (!StringUtils.isBlank(text)) {item.put(text, textValue);} else {// 走默認(rèn)策略item.put(field.getName() + DICT_TEXT_SUFFIX, textValue);}}// date類型默認(rèn)轉(zhuǎn)換string格式化日期if ("java.util.Date".equals(field.getType().getName())&& field.getAnnotation(JsonFormat.class) == null&& item.get(field.getName()) != null) {SimpleDateFormat aDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");item.put(field.getName(), aDate.format(new Date((Long) item.get(field.getName()))));}}items.add(item);}rr.setData(items);}}}/*** 翻譯字典文本** @param dictType* @param key* @return*/private String translateDictValue(String dictType, String key) {if (ObjConvertUtils.isEmpty(key)) {return null;}StringBuffer textValue = new StringBuffer();String[] keys = key.split(",");for (String k : keys) {if (k.trim().length() == 0) {continue;}/*** 根據(jù) dictCode 和 code 查詢字典值,例如:dictCode:sex,code:1,返回:男* 應(yīng)該放在redis,提高響應(yīng)速度*/SysDictDetail dictData = sysDictService.getDictDataByTypeAndValue(dictType, key);if (dictData.getName() != null) {if (!"".equals(textValue.toString())) {textValue.append(",");}textValue.append(dictData.getName());}log.info("數(shù)據(jù)字典翻譯: 字典類型:{},當(dāng)前翻譯值:{},翻譯結(jié)果:{}", dictType, k.trim(), dictData.getName());}return textValue.toString();} }

上面用到的 ObjConvertUtils 類

import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; import java.util.List;/*** 對象轉(zhuǎn)換工具類** @Author Lizhou*/ @SuppressWarnings("ALL") public class ObjConvertUtils {/*** 獲取類的所有屬性,包括父類** @param object* @return*/public static Field[] getAllFields(Object object) {Class<?> clazz = object.getClass();List<Field> fieldList = new ArrayList<>();while (clazz != null) {fieldList.addAll(new ArrayList<>(Arrays.asList(clazz.getDeclaredFields())));clazz = clazz.getSuperclass();}Field[] fields = new Field[fieldList.size()];fieldList.toArray(fields);return fields;}public static boolean isEmpty(Object object) {if (object == null) {return (true);}if ("".equals(object)) {return (true);}if ("null".equals(object)) {return (true);}return (false);} }

3、注解使用

我們只需要在實(shí)體類的屬性上加入我們實(shí)現(xiàn)的自定義注解即可

@ApiModelProperty(value = "性別(0--未知1--男2--女)") @TableField("sex") @Dict(dictCode = "sex") private Integer sex;@ApiModelProperty(value = "狀態(tài)(0--正常1--凍結(jié))") @TableField("status") @Dict(dictCode = "status") private Integer status;

我們對 sex,status 都加入了 @Dict(dictCode = “”) 注解,那么我們在獲取用戶信息的時候,就能獲取到對應(yīng)的字典值了

五、測試

1、編寫 API 查詢

我們在 controller 層開放一個 API 實(shí)現(xiàn)查詢用戶列表

/*** 分頁查詢*/ @PostMapping("list") @ResponseBody public LayTableResult list(Integer page, Integer limit, SysUserInfo userInfo) {QueryWrapper<SysUserInfo> queryWrapper = new QueryWrapper<>();if (StringUtils.isNotBlank(userInfo.getName())) {queryWrapper.like("name", userInfo.getName());}if (null != userInfo.getSex()) {queryWrapper.eq("sex", userInfo.getSex());}if (null != userInfo.getStatus()) {queryWrapper.eq("status", userInfo.getStatus());}queryWrapper.orderByDesc("create_time");IPage<SysUserInfo> iPage = sysUserInfoService.page(new Page<>(page, limit), queryWrapper);return new LayTableResult<>(iPage.getTotal(), iPage.getRecords()); }

注意: 這里我們使用了 LayTableResult 作為相應(yīng)實(shí)體類,與上面我們編寫的返回通用實(shí)體類是一致的,必須一直,才能實(shí)現(xiàn)數(shù)據(jù)字典功能

2、調(diào)用 API

返回結(jié)果如下:

{"code": 0,"msg": null,"count": 3,"data": [{"id": 2,"account": "15286779045","name": "周杰倫","sex": 1,"sexText": "男","status": 0,"statusText": "正常"}, {"id": 1,"name": "超級管理員","account": "15286779044","sex": 1,"sexText": "男","status": 0,"statusText": "正常"}] }

可以看出,返回的數(shù)據(jù)中,多出了 sexText,statusText,兩個屬性,也就證明我們的字典功能已經(jīng)實(shí)現(xiàn)成功

六、總結(jié)

1、優(yōu)點(diǎn)

1、在一定程度上,通過系統(tǒng)維護(hù)人員即可改變系統(tǒng)的行為(功能),不需要開發(fā)人員的介入。使得系統(tǒng)的變化更快,能及時響應(yīng)客戶和市場的需求。
2、提高了系統(tǒng)的靈活性、通用性,減少了主體和屬性的耦合度 3、簡化了主體類的業(yè)務(wù)邏輯 4、
能減少對系統(tǒng)程序的改動,使數(shù)據(jù)庫、程序和頁面更穩(wěn)定。特別是數(shù)據(jù)量大的時候,能大幅減少開發(fā)工作量
5、使數(shù)據(jù)庫表結(jié)構(gòu)和程序結(jié)構(gòu)條理上更清楚,更容易理解,在可開發(fā)性、可擴(kuò)展性、可維護(hù)性、系統(tǒng)強(qiáng)壯性上都有優(yōu)勢。

2、缺點(diǎn)

1、數(shù)據(jù)字典是通用的設(shè)計(jì),在系統(tǒng)效率上會低一些。 2、程序算法相對復(fù)雜一些。 3、對于開發(fā)人員,需要具備一定抽象思維能力,所以對開發(fā)人員的要求較高。

3、優(yōu)化

我們的數(shù)據(jù)字典數(shù)據(jù)應(yīng)該存放在 redis 中,減少與數(shù)據(jù)庫的交互次數(shù),提高響應(yīng)速度

如您在閱讀中發(fā)現(xiàn)不足,歡迎留言!!!

總結(jié)

以上是生活随笔為你收集整理的【SpringBoot】24、SpringBoot中实现数据字典的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

香蕉精品在线观看 | 91成人在线观看喷潮 | 操综合 | 中文国产成人精品久久一 | 欧美成人精品在线 | 国产护士在线 | 婷婷六月激情 | 欧美老人xxxx18 | 日本不卡一区二区三区在线观看 | 亚州黄色一级 | 久久人人爽人人 | 久久久久久久国产精品 | 国产精品久久久久三级 | 亚洲第一av在线播放 | 最近中文字幕完整高清 | 在线看国产精品 | 亚洲精品视频在线观看视频 | 亚洲精品综合久久 | 天天射,天天干 | 国产精品免费大片视频 | 国产在线观看a | 一区二区久久久久 | 丁香婷婷深情五月亚洲 | 久久久久中文 | 97自拍超碰 | 天天操天天干天天操天天干 | 午夜影院先 | 亚洲视频在线播放 | 日韩av一区二区在线影视 | 免费在线黄 | 99热手机在线 | 丝袜一区在线 | 久草在线最新免费 | 国产vs久久 | 91亚洲精品久久久久图片蜜桃 | 在线观看免费中文字幕 | 亚洲丝袜一区二区 | 婷婷久久一区 | 亚洲九九九在线观看 | 成人在线黄色电影 | 国产亚洲精品福利 | 成人91视频 | www国产在线 | 色在线亚洲 | 国产精品大片在线观看 | 免费观看性生活大片 | 国产美女免费观看 | 成人免费观看网址 | 国际精品久久 | 黄色三级在线看 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 一区二区视频在线免费观看 | 狠狠狠狠狠色综合 | 国产一区二区久久久 | 天天爱综合 | 日韩在线视频网 | 天天爱天天干天天爽 | 国产精品美女久久久久久久 | 国产黄色精品在线观看 | 伊人婷婷激情 | 免费观看9x视频网站在线观看 | 天天插天天干 | 国产精品剧情在线亚洲 | 玖草影院 | 天天射天天爽 | 国产精品毛片久久久久久 | 久久se视频 | 久久精品aaa | 91在线porny国产在线看 | 天天视频色版 | 久草国产视频 | 在线国产片 | 日韩中文字幕a | 在线观看免费色 | 99精品视频免费全部在线 | 国产高清专区 | 不卡视频在线看 | 亚洲高清在线精品 | 丁香在线 | 在线观看一区视频 | 五月婷婷六月丁香在线观看 | 中文字幕一区二区三区精华液 | 中文字幕在线观看免费高清完整版 | 97视频免费观看2区 亚洲视屏 | 在线观看日本韩国电影 | 国产精品白丝jk白祙 | 亚洲成人av在线播放 | 九九爱免费视频 | 四虎成人精品在永久免费 | 久久99久久99 | 中文字幕乱码电影 | 成人黄大片视频在线观看 | 波多野结衣资源 | 超碰人人91 | 婷婷综合视频 | 97超碰人人澡 | 91污视频在线 | 蜜臀aⅴ国产精品久久久国产 | 国产精品久久久久9999 | 亚一亚二国产专区 | 色噜噜日韩精品一区二区三区视频 | 91成人免费电影 | 亚洲精品在线一区二区三区 | 97超碰精品 | 亚洲欧美日韩一区二区三区在线观看 | 久久精品超碰 | 99欧美精品 | 欧美久久九九 | 欧美孕妇与黑人孕交 | 狠狠干夜夜 | 欧美怡红院视频 | 日韩电影一区二区在线观看 | 亚洲免费在线看 | 久久视频在线免费观看 | 激情婷婷欧美 | 久久美女视频 | 欧美高清成人 | 免费看日韩 | 久久久久在线观看 | 精品毛片一区二区免费看 | av在线观 | 亚洲国产成人在线观看 | 狠狠地日| 91原创在线观看 | 国产特黄色片 | 久久tv视频| 国产一区二区不卡在线 | 日韩视频中文字幕在线观看 | 日韩精品久久久久久中文字幕8 | 欧美日韩国产综合网 | 日韩欧美视频在线播放 | 天天爽天天碰狠狠添 | 免费成人短视频 | 丁香六月婷婷开心 | 成人免费xxx在线观看 | 婷婷色 亚洲 | 片网站| 国产精品激情偷乱一区二区∴ | 日韩精品久久久 | 91人人揉日日捏人人看 | 国产精品久久久久久久久久新婚 | 国产成人区 | 国产免费观看久久 | 91精品视频在线观看免费 | 亚洲va欧洲va国产va不卡 | 91看片在线免费观看 | 久久人人爽视频 | www.99在线观看 | 中文字幕在线观看91 | 日韩黄色在线观看 | 中文字幕av全部资源www中文字幕在线观看 | 亚洲首页 | 在线国产一区二区 | 天天爽夜夜爽精品视频婷婷 | 久久免费黄色大片 | 毛片1000部免费看 | 99亚洲视频 | 久久视精品 | 97人人添人澡人人爽超碰动图 | 久久久精品视频网站 | 久久久久激情视频 | 中文字幕av在线电影 | 在线亚洲小视频 | 久久9999久久免费精品国产 | 瑞典xxxx性hd极品 | 天天干天天干天天操 | 国产精品中文字幕在线观看 | 国产精选在线 | 国产精品午夜久久 | 黄色性av | 国产一区二区三区四区大秀 | 国产一区在线免费观看 | 91在线九色 | 人交video另类hd | 国产精品亚洲视频 | 亚洲三级av| 最新日韩在线观看 | 日韩欧美xxxx | 色婷婷99| 黄色一级在线免费观看 | 国产一线二线三线在线观看 | 久久精品欧美日韩精品 | www.夜夜爽| 不卡av在线 | 又黄又爽又无遮挡免费的网站 | 人人干人人做 | 国产精品地址 | 日韩欧美一区二区在线观看 | 狠狠色噜噜狠狠狠狠 | 玖操 | 中文字幕日韩国产 | 丰满少妇在线观看网站 | 国产精品一区二区三区观看 | 天天干天天操天天 | 综合国产视频 | 日韩免费视频播放 | 人人人爽 | 精品国产一区二区三区久久久蜜月 | 国产精品成人自产拍在线观看 | 激情五月婷婷综合 | 青青草在久久免费久久免费 | 国产自在线观看 | 五月婷婷丁香六月 | 91在线中字 | 日韩天天干 | 中文字幕乱在线伦视频中文字幕乱码在线 | 国产69久久久欧美一级 | 99精品免费久久久久久久久日本 | 日韩av电影中文字幕在线观看 | 国产美腿白丝袜足在线av | 久久久精品亚洲 | 久久久久免费 | 欧美日韩在线看 | 日韩av一区二区在线影视 | 成年人精品 | 精品伦理一区二区三区 | 99久久er热在这里只有精品15 | 18国产精品福利片久久婷 | av免费在线观看1 | 免费视频色 | 国产精品一区专区欧美日韩 | 国产精品成人一区二区三区吃奶 | 91精品国产91p65 | 中文字幕刺激在线 | 中文字幕亚洲在线观看 | 久久蜜臀一区二区三区av | 婷婷激情5月天 | 草久电影 | 在线观看免费 | 最新成人在线 | 在线观看黄网 | 久久久国产精品久久久 | 国产伦精品一区二区三区高清 | 97视频总站 | 97视频在线播放 | 久久久久久国产精品免费 | 激情综合网五月婷婷 | 国产精品嫩草影视久久久 | 97热久久免费频精品99 | 欧美成年人在线视频 | 亚洲精品国精品久久99热一 | 国产精品久久久久久久久久久久午夜 | 最近的中文字幕大全免费版 | 国产精品淫 | 夜夜爽88888免费视频4848 | 欧美成人性网 | 亚洲欧美日韩国产一区二区三区 | 中文字幕在线视频精品 | 国产精品久久久久9999 | 欧美一级片在线播放 | 欧美成人aa| 中文字幕亚洲欧美日韩2019 | 又粗又长又大又爽又黄少妇毛片 | 婷婷综合伊人 | 91九色蝌蚪视频在线 | 国产一级视频免费看 | 一级性视频 | 久艹视频在线免费观看 | 月下香电影| 黄色福利视频网站 | 欧美精品久久 | av成人在线播放 | 在线观看黄色国产 | 黄色软件视频大全免费下载 | 日韩在线观看高清 | 亚洲成人xxx | 91完整视频| 国产精品a成v人在线播放 | 在线观看你懂的网址 | 国产日韩精品视频 | 免费看三级网站 | 美女免费视频观看网站 | 亚洲最新av | 91最新在线观看 | 久草在线这里只有精品 | 久久国际影院 | 欧美一级电影在线观看 | 久久久www成人免费精品张筱雨 | 成年人天堂com | 成人精品亚洲 | 久久一区二 | 在线视频电影 | 成人久久久久久久久久 | 黄色小说视频在线 | 在线免费中文字幕 | 日日爽夜夜操 | 成人免费观看av | 国产日产精品一区二区三区四区 | 亚洲视频大全 | 天天天干夜夜夜操 | 久久99婷婷| 99久久精品国产免费看不卡 | 亚洲成色777777在线观看影院 | 国产黄色资源 | 日韩一区二区三区高清在线观看 | 超碰人人乐 | 视频一区二区视频 | 婷婷在线播放 | 亚洲aaa毛片| 国内一级片在线观看 | 日韩精品免费专区 | 日韩免费电影一区二区三区 | 久久99精品国产麻豆宅宅 | 久久天天躁夜夜躁狠狠85麻豆 | 国产精在线 | 午夜视频一区二区三区 | 在线观看免费视频你懂的 | 成人av在线看 | 久草在线视频在线 | 毛片区| av中文字幕在线电影 | 91av视频在线播放 | 国产无遮挡又黄又爽在线观看 | 69绿帽绿奴3pvideos | 午夜久久久久久久久 | 一本一本久久aa综合精品 | 精品国产_亚洲人成在线 | 天天天天爽| 国产午夜精品一区二区三区欧美 | 免费看片日韩 | 久久国产亚洲视频 | 青草视频在线播放 | 顶级欧美色妇4khd | 国产精品完整版 | 国产精品不卡视频 | 欧美天天综合 | 国产视频2 | 亚洲一区二区麻豆 | 国产精品国产三级国产专区53 | 亚洲视频大全 | 国产精品一区二区免费 | 日韩a级免费视频 | 91av资源网| 97超级碰碰碰视频在线观看 | 久久久亚洲影院 | 色av资源网 | 99 视频 高清 | 欧美日本中文字幕 | 国产成人精品一区二区三区免费 | 99在线观看视频网站 | 精品久久久久一区二区国产 | 92国产精品久久久久首页 | 成人国产网址 | 大胆欧美gogo免费视频一二区 | 国产99久久久国产精品免费看 | 久久久黄色av | 亚洲国产一区二区精品专区 | 久久av中文字幕片 | 精品国产免费av | 伊人狠狠色丁香婷婷综合 | 在线免费91| 97在线视频免费观看 | 久久免费激情视频 | 久久久久久久久久电影 | 欧美一级黄色片 | 国产成人精品一二三区 | av高清一区二区三区 | 日韩av免费在线电影 | 久久久国产在线视频 | 久久一区二区三区国产精品 | 国产午夜精品一区二区三区四区 | 黄色91在线观看 | 亚洲一级电影 | 免费高清影视 | www五月天婷婷 | av高清影院 | 麻豆传媒视频在线播放 | 97精品国产一二三产区 | 成人午夜剧场在线观看 | 久久久国际精品 | 久久精品国产美女 | 欧美在线视频日韩 | 日韩天堂在线观看 | 久久久久久毛片精品免费不卡 | 成人app在线播放 | 欧美日韩精品在线免费观看 | 成 人 黄 色 视频 免费观看 | 国产精品久久久久久电影 | 五月婷婷丁香六月 | 国产三级香港三韩国三级 | 亚洲九九精品 | 欧美日韩中文国产一区发布 | 黄色软件在线观看视频 | 久久色网站 | 免费a级黄色毛片 | 成人国产网址 | 国产日韩欧美精品在线观看 | 四虎影视精品永久在线观看 | 日韩精品专区在线影院重磅 | 四虎永久免费在线观看 | 97看片网| 九九热在线精品视频 | 人人射人人爱 | 日韩精品三区四区 | 91看片一区二区三区 | 99国产精品久久久久老师 | 免费看特级毛片 | 五月婷婷综合在线观看 | 激情在线五月天 | 久久精品视频4 | 超薄丝袜一二三区 | 999ZYZ玖玖资源站永久 | 日本视频网 | 久久综合久久久 | 在线观看激情av | 免费在线观看av网站 | 亚洲九九九在线观看 | 亚洲成人av电影在线 | 欧美日韩aa | 最近中文字幕大全中文字幕免费 | av一区二区三区在线 | 天天操天天操一操 | 精品国产99国产精品 | 操操操操网| 欧美激情综合色 | 天天干天天操天天做 | 国产精品久久久区三区天天噜 | 中文字幕免费不卡视频 | 亚洲视频播放 | 蜜桃视频在线视频 | 亚洲人成网站精品片在线观看 | 91成人精品一区在线播放 | 久久理论电影网 | 综合精品久久 | 色综合天天综合网国产成人网 | 久久激情精品 | 亚洲精品在线免费观看视频 | 91在线小视频 | 天天综合中文 | 四虎永久国产精品 | 国产在线小视频 | 黄色网在线播放 | 亚洲国产精品99久久久久久久久 | 亚洲a色| 亚洲精品美女免费 | 美女视频黄在线观看 | 婷婷色综 | 国产精品三级视频 | 中文字幕亚洲在线观看 | 欧美大片在线观看一区 | 日日干天天爽 | 日韩精品中文字幕在线不卡尤物 | 视频一区二区在线观看 | 娇妻呻吟一区二区三区 | 国产精品日韩在线播放 | 国产日产精品一区二区三区四区 | 2021国产在线视频 | 欧美爽爽爽| 免费在线播放av电影 | 992tv人人网tv亚洲精品 | 日韩免费av网址 | 国产成人区| 少妇资源站 | www五月 | 国产高清在线免费视频 | 丁香色综合| 欧美一二三四在线 | 超碰日韩 | 欧美日韩免费在线观看视频 | 久久电影国产免费久久电影 | 天天干天天拍天天操 | 亚洲精品乱码久久久久久蜜桃动漫 | 欧美最爽乱淫视频播放 | 97超碰站 | 亚洲高清91| 精品欧美一区二区在线观看 | 丁香久久五月 | 久久久免费观看完整版 | 欧美日韩破处 | 狠狠色狠狠色终合网 | 久久国产精品久久精品 | 亚洲精品福利视频 | 色综合久久88色综合天天人守婷 | 国产中文字幕一区二区 | 久久久精品国产一区二区三区 | 成人福利在线 | 婷婷色网站| 日韩成人精品一区二区 | 西西4444www大胆无视频 | 97超碰人人| 欧美少妇18p| 丁香花中文在线免费观看 | 日韩在线三级 | 亚洲国产三级在线 | 国产尤物一区二区三区 | 国产精品成人久久久久久久 | a在线播放| 中文字幕在线观看三区 | 在线av资源 | 一级欧美日韩 | 天天操天天摸天天爽 | 4hu视频 | 高潮毛片无遮挡高清免费 | 五月天婷婷免费视频 | 69视频在线播放 | 不卡视频在线 | 综合激情 | 亚洲黑丝少妇 | 久久综合99| 国产成人综合图片 | 天天操天天操天天 | 久久成人精品 | 五月婷婷在线播放 | 国产成人精品久久久 | 久久天天躁 | 精品亚洲视频在线观看 | 丁香六月天婷婷 | 蜜臀av性久久久久av蜜臀三区 | 国产精品久久久久av | 美女性爽视频国产免费app | 国产精品视频久久久 | 亚洲 欧美 另类人妖 | 人人爽人人看 | 日韩欧美电影网 | 国产精品久久久久四虎 | 国产激情小视频在线观看 | 精品国产99| 精品九九九九 | 欧美精品国产综合久久 | a成人v | 欧美少妇xx | 综合网婷婷 | 国内视频一区二区 | 国产精品 日韩 欧美 | 免费黄色网址网站 | 久久影视一区 | www夜夜操com| 黄av免费在线观看 | 蜜臀av免费一区二区三区 | 成人午夜电影在线 | 91麻豆免费版 | 黄色亚洲大片免费在线观看 | 国产免费一区二区三区最新 | 视频国产精品 | 深爱婷婷 | 人人干在线 | 麻豆视频大全 | 久久精品国产免费看久久精品 | 精品国产区| 国产又粗又猛又爽又黄的视频先 | 成人一级影视 | 欧美乱码精品一区 | 日韩va在线观看 | 涩涩网站免费 | 亚洲精品九九 | 偷拍区另类综合在线 | 久久久91精品国产一区二区三区 | 亚洲精品乱码 | 伊人网综合在线观看 | 亚洲一区二区三区91 | 五月婷婷丁香网 | 精品9999| 色综合亚洲精品激情狠狠 | av在线播放一区二区三区 | 午夜色性片 | 中文字幕久久亚洲 | 精品久久毛片 | 日本久久中文 | 五月婷婷丁香在线观看 | 成人一区二区三区在线观看 | 日本一区二区免费在线观看 | 岛国一区在线 | 黄色免费网战 | 麻豆视频免费播放 | www一起操| 国产系列精品av | av一级二级| 在线看中文字幕 | 国产亚洲午夜高清国产拍精品 | 福利久久久 | 五月激情姐姐 | 国产视频一区二区三区在线 | 91精品久久久久久久99蜜桃 | 久久无码精品一区二区三区 | 国产手机av| av成人在线网站 | 天天综合久久综合 | 亚洲欧美一区二区三区孕妇写真 | 欧美成人h版电影 | 91高清免费观看 | av网站免费看 | 午夜久久福利影院 | 国产女人18毛片水真多18精品 | 草久草久| 国产黄a三级三级 | 九精品| 国产品久精国精产拍 | 婷婷五月在线视频 | 激情黄色av | 国产精品成 | 99视频精品全部免费 在线 | 97国产精品 | 日韩乱码在线 | 91九色网站| 97狠狠操 | 久久人人爽人人 | 视频成人免费 | 在线观看日韩专区 | 九九久久精品视频 | av电影一区二区三区 | 黄色成人在线网站 | www.91国产 | 人人干网站 | 日韩资源在线观看 | 日韩欧美视频一区二区 | 日韩免费观看视频 | 亚洲精品午夜一区人人爽 | 欧美激精品 | 国产成人在线观看免费 | av高清影院 | 国产亚洲亚洲 | 黄色1级毛片 | 精品99在线 | 麻豆视频在线免费观看 | 久久亚洲综合国产精品99麻豆的功能介绍 | 亚洲成a人片在线观看网站口工 | 国产探花视频在线播放 | 国产免费观看久久黄 | 开心激情婷婷 | 色婷婷激情综合 | 欧美日韩二三区 | 欧美激情综合五月 | 精品福利片 | 免费碰碰| 国产视频观看 | 日韩黄色影院 | 国产视频在线观看一区 | 国产99久久精品一区二区300 | 免费视频三区 | 日本中文乱码卡一卡二新区 | 在线观看日韩专区 | 99精品在线免费视频 | 国产男女免费完整视频 | 亚洲日本精品视频 | 中文字幕色网站 | 欧美日韩一区二区久久 | 久久综合精品国产一区二区三区 | 日韩av成人 | 天天插狠狠插 | 在线免费黄色 | 99久久视频| 色多多污污 | 国产在线免费av | 久久全国免费视频 | 久久久久久久18 | 婷婷激情久久 | 狠狠干狠狠插 | 国产经典三级 | 国产二区视频在线 | 日韩一区二区三区高清在线观看 | 天天撸夜夜操 | 欧美福利网址 | 欧美性生活久久 | 久久久免费毛片 | 国产一及片 | 99免费在线观看视频 | 免费在线观看av不卡 | 最近免费在线观看 | www91在线观看 | 久久久久久久久久久网站 | 日韩资源在线 | 婷婷色中文字幕 | 欧美日韩在线观看不卡 | 亚洲欧美日本一区二区三区 | 天天干天天操天天爱 | 亚洲黄色成人网 | 国产精品门事件 | 久久人人爽人人片av | 国产成年免费视频 | 国内三级在线 | 中文字幕视频在线播放 | 欧美激情va永久在线播放 | 国产精品门事件 | 99麻豆久久久国产精品免费 | 成人污视频在线观看 | 不卡在线一区 | 日韩一区二区三区免费视频 | 97超碰在线久草超碰在线观看 | 500部大龄熟乱视频 欧美日本三级 | 亚洲干视频在线观看 | 九色免费视频 | 91免费版在线| 久久久久久久久免费 | 国产精品资源在线 | 天天综合久久 | 国产69精品久久99不卡的观看体验 | 91视频在线观看大全 | 久久久亚洲麻豆日韩精品一区三区 | 美女视频黄频大全免费 | 99精品在线视频观看 | 狠狠躁天天躁 | 天天色天天操天天爽 | 五月激情亚洲 | 久草网站在线 | 日韩小视频网站 | 在线免费观看国产精品 | 中文字幕亚洲精品在线观看 | 综合成人在线 | 中文字幕在线播放一区 | 色天天中文 | 精品国产精品久久一区免费式 | 黄色片网站 | 伊人影院在线观看 | 91中文字幕在线视频 | 免费黄a | 亚洲精品88欧美一区二区 | 99久热在线精品视频观看 | 成人性生交大片免费观看网站 | 久久不射影院 | 伊人亚洲综合网 | 最近高清中文字幕 | 亚洲资源在线 | 精品成人网 | 午夜精品视频在线 | 久久久精品网站 | 午夜久久网 | 麻豆视频一区 | 久久亚洲私人国产精品va | 亚洲区视频在线观看 | 97精品国产97久久久久久免费 | 婷婷丁香色| 免费视频xnxx com | 夜夜躁日日躁狠狠久久av | 国产免费av一区二区三区 | 日韩啪啪小视频 | 国产小视频福利在线 | 91激情视频在线观看 | 日韩有码在线播放 | 小草av在线播放 | 亚洲精品麻豆 | 亚洲欧美日韩在线一区二区 | 91在线视频观看免费 | 免费精品在线观看 | 奇米影视8888 | 国产精品久久电影网 | 亚洲第一久久久 | 996久久国产精品线观看 | 精品久久久久免费极品大片 | 亚洲日本欧美在线 | 久草视频免费 | 国产麻豆视频在线观看 | 午夜精品一区二区三区免费 | 成人黄色电影在线观看 | 最近日本中文字幕 | 亚洲闷骚少妇在线观看网站 | 六月丁香婷| 欧美色图视频一区 | 在线 日韩 av | 亚洲视屏 | 97香蕉久久超级碰碰高清版 | 国产午夜不卡 | 人人模人人爽 | 中文字幕 国产精品 | 亚洲专区免费观看 | 久久精彩视频 | 国产精品白虎 | 久久久久国产视频 | 中文字幕在线观看日本 | 欧美精品一区二区在线观看 | av天天色 | 成人av一区二区兰花在线播放 | 特级西西444www高清大视频 | 亚洲精品88欧美一区二区 | 在线99| 国产99久久精品一区二区永久免费 | 黄色h在线观看 | 国产高清99 | 成人一级电影在线观看 | 成av在线 | 亚洲国产精品影院 | 中文字幕成人在线观看 | 四虎成人精品永久免费av | 永久黄网站色视频免费观看w | www.福利| 久草在线视频国产 | 欧美视频国产视频 | 在线视频婷婷 | 波多野结衣亚洲一区二区 | 91在线免费播放视频 | 亚洲涩涩网站 | 成片人卡1卡2卡3手机免费看 | 伊人视频 | 国产精品日韩精品 | 久久久久久久久久久免费视频 | 久久香蕉国产精品麻豆粉嫩av | 色婷av| 国产精品1024| 久久久久久国产精品免费 | 91大神免费视频 | 日韩免费在线观看视频 | 精品亚洲国产视频 | 激情文学丁香 | 97国产在线视频 | 美女网站黄在线观看 | 国产69精品久久99的直播节目 | 亚洲欧美在线综合 | 久久久黄视频 | 久久久久在线视频 | 97超碰福利久久精品 | 亚洲一区二区高潮无套美女 | 色综合久久久久久久 | 精品一区二区三区电影 | 九九热国产视频 | 免费观看性生活大片3 | 婷婷香蕉 | 国产精品porn | 国产在线高清 | 久草在线免费看视频 | 日韩精品在线视频免费观看 | 国产精品www| 久久九九久久精品 | av片在线观看 | 精品视频免费播放 | 久久情侣偷拍 | 天天干天天拍天天操天天拍 | 91看片在线观看 | 人人看黄色 | 午夜精品久久久久久久久久久久久久 | 亚洲在线网址 | 91免费高清观看 | 99欧美精品| www.亚洲黄色 | 欧美日韩精品国产 | 激情综合网五月婷婷 | 中文字幕av一区二区三区四区 | 日韩在线观看高清 | 日本一区二区三区免费看 | 欧美a性 | 午夜体验区 | 四虎成人精品 | 久久久久伊人 | 二区三区在线观看 | 处女av在线 | 色99之美女主播在线视频 | 国产免费嫩草影院 | 欧美精品一区二区免费 | 成人av在线影视 | 国产99久久精品一区二区永久免费 | 91麻豆精品国产91久久久久久 | 91中文字幕网 | 午夜婷婷在线观看 | 麻豆影视在线观看 | 99精品免费久久久久久久久日本 | 国产91大片 | 麻豆极品 | 亚洲天堂精品视频在线观看 | 91亚洲激情| av中文字幕在线免费观看 | 99久久精品国产网站 | 欧美日本啪啪无遮挡网站 | 欧美一级黄色片 | 激情视频免费在线 | 一区二区三区视频在线 | 国产一在线精品一区在线观看 | 国产福利91精品张津瑜 | 久久久久久伊人 | 黄色三级免费看 | www.天天操 | 国产又粗又猛又黄又爽视频 | 亚洲精品字幕在线 | 国产97色在线 | 深爱激情五月婷婷 | 天天干,天天干 | 日本不卡123 | 国产精品一区二区三区免费视频 | 日韩午夜电影网 | 欧美坐爱视频 | 国产成人高清在线 | 国内精品久久久久影院优 | 国产精品你懂的在线观看 | 91重口视频 | 亚洲综合视频网 | 免费日韩一区二区三区 | 国产成人一区二区三区 | 精品国产乱码久久久久久三级人 | 91精品国产亚洲 | 91 在线视频| 98精品国产自产在线观看 | 欧美日韩精品国产 | 国产精品久久久久永久免费观看 | 久久精品国产免费 | www五月 | 日韩av在线免费播放 | 国产成人av网址 | 在线视频婷婷 | 中文字幕观看视频 | 精品欧美一区二区在线观看 | av成人资源 | 丁香六月激情婷婷 | 国产美女无遮挡永久免费 | 国产黄色大片免费看 | 国产剧情一区二区在线观看 | 正在播放日韩 | 狠狠干美女 | av成人免费在线观看 | 免费高清无人区完整版 | av成人免费| 日韩成年视频 | 免费激情网 | 超碰免费在线公开 | av网站在线免费观看 | 深爱婷婷激情 | 美女视频久久黄 | 97成人资源 | 国产精品美女久久久 | 国内精品视频久久 | 久久五月精品 | av线上看 | 国产裸体bbb视频 | 久久久精品99 | 亚洲一区二区三区四区精品 | 国产精品美女网站 | 中文字幕成人一区 | 在线综合 亚洲 欧美在线视频 | 激情电影在线观看 | 国产在线永久 | 日韩在线视 | 91亚洲精品久久久中文字幕 | 这里有精品在线视频 | 五月激情五月激情 | 黄色软件视频网站 | 日韩视频免费 | 日韩黄色免费电影 | 丁香资源影视免费观看 | 免费av成人在线 | 日韩av美女| 综合久久久久久久久 | 国产美女无遮挡永久免费 | 韩国av三级 | 久久视频免费看 | 天天插天天爽 | 久久视精品 | 国产小视频在线观看免费 | 久久经典视频 | 色婷婷狠狠18 | 日韩欧美精品一区 | 国产精品婷婷午夜在线观看 | 日本久久影视 | 日韩丝袜视频 | 欧美另类z0zx | 成人片在线播放 | 深爱婷婷激情 | 在线观看日韩 | 一区二区三区在线视频111 | 久久久久亚洲精品中文字幕 | 麻豆国产精品永久免费视频 | 国产在线精品区 | 国模视频一区二区 | 国产精品成人免费一区久久羞羞 | 国产精品综合在线观看 | 深爱激情五月婷婷 | 日韩av片在线 | 99精品国产一区二区三区麻豆 | 337p西西人体大胆瓣开下部 | 一区二区三区电影在线播 | 又黄又网站 | 亚洲精品久久在线 | 美女黄频| 久久久久一区二区三区四区 | 成人av网站在线播放 | 日韩免费不卡av | 91精品影视 | 国产精品热 | 欧美日韩在线视频一区 | 久久久亚洲影院 | 免费又黄又爽的视频 | 欧洲一区二区三区精品 | 欧美日韩视频在线观看一区二区 | 久久亚洲免费 | 99久久精品午夜一区二区小说 | 亚洲黄色网络 | www.日日日.com | 国内丰满少妇猛烈精品播 | 在线电影 一区 | 99久久精品网 | 国产在线观看午夜 | 91精品国产91热久久久做人人 | 在线免费观看视频a | 色狠狠一区二区 | 91在线视频一区 | 一二三四精品 | 丁香花在线观看视频在线 | 久久久久国产精品视频 | 91中文在线视频 | 久久线视频| 久久精品www人人爽人人 | 国产视频不卡 | 国产一区久久久 | 精品国精品自拍自在线 | 精品久久久久久久久亚洲 | 视频一区二区三区视频 | 在线观看aa | 日日骑 | 日韩欧美精品在线观看视频 | 亚洲国产中文字幕 | 三级av在线免费观看 | 美女网站视频久久 | 久99久精品 |