久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

瀏覽:3日期:2023-05-02 08:59:36

學習并使用mybatis-plus的一些高級功能的用法例如: AR模式、 樂觀鎖 、邏輯刪除 、自動填充、數據保護等功能

為了方便演示,咱們還是新建一個全新的項目

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

引入mp依賴

<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.2</version> </dependency>

yml配置

# 配置端口server: port: 8080spring: # 配置數據源 datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/mybatis-plus?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8 username: root password: root# mybatis-plus相關配置mybatis-plus: # 以下配置均有默認值,可以不設置 global-config: db-config: #主鍵類型 auto:'數據庫ID自增' id-type: auto configuration: # 是否開啟自動駝峰命名規則映射:從數據庫列名到Java屬性駝峰命名的類似映射 map-underscore-to-camel-case: true # 如果查詢結果中包含空值的列,則 MyBatis 在映射的時候,不會映射這個字段 call-setters-on-nulls: true # 這個配置會將執行的sql打印出來,在開發或測試的時候可以用 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

在 Spring Boot 啟動類中添加 @MapperScan 注解,掃描 Mapper 文件夾

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

(一)AR模式使用

ActiveRecord模式:支持 ActiveRecord 形式調用,實體類只需繼承 Model 類即可進行強大的 CRUD 操作

即直接使用實體類 CRUD操作

1.繼承Model

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

點進Model 類中 ,發現其提供了一些基礎的CRUD操作方法,并實現了序列化接口

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

注意的是,如果要使用ActiveRecord模式,僅僅繼承Model 是不行的,這一點官網沒有很顯示的提到,還需要編寫mapper接口 繼承BaseMapper接口,泛型為當前實體類

2.mapper接口

如果不編寫Mapper直接使用Model方法會報錯:

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

那么,咱們來編寫mapper

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

再次測試

3.CRUD操作

新增操作

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

查詢操作

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

修改操作

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

刪除操作

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

此AR模式呢,可以在開發中減少我們很多的調用代碼,簡單操作無需額外使用Mapper、service調用

(二)樂觀鎖

使用Mybatis-plus實現樂觀鎖

樂觀鎖:總是假設最好的情況,每次去拿數據的時候都認為別人不會修改,所以不會上鎖,但是在更新的時候會判斷一下在此期間別人有沒有去更新這個數據,樂觀鎖適用于多讀的應用類型,這樣可以提高吞吐量。

mybatis-plus 提供的樂觀鎖 是采用了版本號機制

數據表中加上一個數據版本號version字段,表示數據被修改的次數,當數據被修改時,version值會加一。當線程A要更新數據值時,在讀取數據的同時也會讀取version值,在提交更新時,若剛才讀取到的version值為當前數據庫中的version值相等時才更新,否則重試更新操作,直到更新成功。

mp項目使用樂觀鎖是使用其插件配置?配置Bean的形式

1.bean配置

@Beanpublic OptimisticLockerInterceptor optimisticLockerInterceptor() { return new OptimisticLockerInterceptor();}

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

2.實體類以及數據庫添加對應字段以及列

@Versionprivate Integer version;

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

至于version初始值,可以數據庫默認設置為0,也可以再新增數據時手動設置verion版本號,個人是采用了數據庫默認值

那么我們在做任何查詢修改刪除的時候呢,mp會默認幫我們吧版本號作為條件帶上,判斷與數據庫中該數據版本號是否一致。

3.相關操作以及注意事項

首先插入一條數據

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

查詢并修改該條信息

發現其在修改的時候,將version作為了條件,并對version做了修改 set操作(默認是在原基礎上+1)

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

需要注意的幾個點:

支持的數據類型只有:int,Integer,long,Long,Date,Timestamp,LocalDateTime整數類型下 newVersion = oldVersion + 1newVersion 會回寫到 entity 中僅支持 updateById(id) 與 update(entity, wrapper) 方法在 update(entity, wrapper) 方法下, wrapper 不能復用!!!

什么意思呢,就是要想使用樂觀說,首先 類型有限制,其次,修改方法僅僅只有上方兩個有效,才會在修改時候對版本號就行修改操作 以及 要想版本號升級必須 是要把之前版本號傳過去。

即version操作時,我必須把舊的帶過去

版本號不對,是無法進行數據更新操作的(刪除、修改)

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

而如果不傳遞版本號的話,那么該字段就不會被維護了(失去了樂觀鎖 版本號機制 的意義了)

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

版本號回傳 修改正確 版本號維護成功

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

如此,就實現了樂觀鎖了,mp基礎上使用樂觀鎖,就是這么簡單

(三)邏輯刪除

物理刪除:將數據庫中該信息進行徹底刪除,無法恢復。 應的SQL語句:delete from 表名 where 條件

邏輯刪除:邏輯刪除的本質是修改操作,所謂的邏輯刪除其實并不是真正的刪除,而是在表中將對應的是否刪除標識,然后修改 查詢操作時將 是否刪除標識字段作為條件帶上,進而達到邏輯上刪除了數據,但實際仍然保留了數據(盡管此數據在邏輯中不會再使用了)

例如:自己設置一個邏輯刪除字段,例如1表示數據有效,0表示被刪除即可,默認是1

Mybatis-plus 已經為我們提供了邏輯刪除封裝

只對自動注入的sql起效:

插入: 不作限制查找: 追加where條件過濾掉已刪除數據,且使用 wrapper.entity 生成的where條件會忽略該字段更新: 追加where條件防止更新到已刪除數據,且使用 wrapper.entity 生成的where條件會忽略該字段刪除: 轉變為 更新例如:

刪除: update user set deleted=1 where id = 1 and deleted=0查找: select id,name,deleted from user where deleted=0字段類型支持說明:

支持所有數據類型(推薦使用 Integer,Boolean,LocalDateTime)如果數據庫字段使用datetime,邏輯未刪除值和已刪除值支持配置為字符串null,另一個值支持配置為函數來獲取值如now()附錄:

邏輯刪除是為了方便數據恢復和保護數據本身價值等等的一種方案,但實際就是刪除。如果你需要頻繁查出來看就不應使用邏輯刪除,而是以一個狀態去表示。

使用步驟:

1.數據庫添加字段

對某個表的數據需要使用邏輯刪除,則必須創建邏輯刪除字段

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

2.mp邏輯刪除配置

在原有的mp配置上 添加邏輯刪除設置

其已刪除 未刪除值均有默認值 1 0 如果你預想設置值與之一致,僅僅編寫 邏輯刪除字段名即可

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

3.實體類加邏輯刪除字段以及注解

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

mp中 邏輯刪除相關配置就沒了 ,很是簡單------------咱們開始測試

咱們先刪除數據庫中原有數據

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

可以看到 ,刪除語句實際上是執行了update(修改) 額外將 我們設置好的邏輯刪除字段值作為條件(未刪除 0),并修改 值為1(已刪除)

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

接下來,我們來進行查詢操作,看是否還能取出數據

total=0 ,沒有數據, 那么我們便做到了業務意義上的數據刪除(邏輯刪除)

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

其只要是設置了邏輯刪除 ,修改 刪除 查詢操作均會攜帶上未刪除條件 ,保證操作的數據時 “存在” 的()

(四)自動填充

在開發中哈,我們一個表的字段除了業務字段外,實際上還會添加維護字段 ,即 創建人 創建時間 修改人 修改時間 ,讓數據的操作 有跡可循,方便管理

如下:

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

實體類添加維護字段信息

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

那么每次在操作數據的時候需要我們手動插入到該model中 進行保存,再操作數據

例如添加時

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

例如修改時

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

這樣呢,每次我們在操作數據時都需要在業務代碼中編寫 新增用戶ID 當前時間 修改用戶ID 修改時間等字段等,就比較繁瑣

項目很大,幾百個Model 乘以Four 那么就額外編寫幾千行代碼進行維護了

解決辦法:

1.自定義Aop 進行數據填充

2.使用現成的 (mp都用了,用他的自動填充不香嗎)

操作開始:

1.自定義實現類 MyMetaObjectHandler

這里需要注意哈

這二者呢,一個是插入的類型 一個是插入的值 必須對應上,或者 自動填充時會報錯

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

@Slf4j@Componentpublic class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { log.info('start insert fill ....'); this.strictInsertFill(metaObject, 'createTime', Long.class, System.currentTimeMillis()); //開發中 創建者 修改者ID 通過Aop 或者權限框架獲取當前操作用戶 ,用用戶ID進行填充即可 this.strictInsertFill(metaObject, 'createId', Long.class, 666L); } @Override public void updateFill(MetaObject metaObject) { log.info('start update fill ....'); this.strictUpdateFill(metaObject, 'modifyTime', Long.class, System.currentTimeMillis()); this.strictUpdateFill(metaObject, 'modifyId', Long.class, 666L); }}

2.實體類注解

要開啟自動填充功能 實現 MetaObjectHandler 還不行,因為Mp 啊,對其字段默認是不做處理的,所以,咱們配置了 新增修改 自動填充時 還需要在其字段上進行開啟

@TableField(fill = FieldFill.INSERT)

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

OK。設置好了,咱們插入修改試一試吧!

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)修改

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

如此 mp的自動填充就可以了,根據業務 合理對默寫字段填充,填充什么值 自己考量即可

但是呢,也是有一定問題的

比如:我有一個定時維護功能,是由xxl-job發起的定時任務,那么這個時候,我字段維護信息,為了區分開到底是認為維護還是自動維護,那么就需要手動設置 創建修改人 以及時間了

這個時候呢,自動填充功能會把我們自己設置的進行覆蓋

所以呢,自動填充咱們也可以進行優化,當有該維護字段時,且字段無值時才填充,當無維護字段或者 維護字段設置了值則不填充

3.自動填充優化

實際就是做了判斷 判斷該字段是否有set屬性 有則嘗試填充 (無值則填充)

@Slf4j@Componentpublic class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { //判斷是否有set屬性 if (metaObject.hasSetter('createId')) { //判斷是否有值 如果沒設置值 則為null Object createId = getFieldValByName('createId', metaObject); if (createId == null) { log.info('創建人需要維護 且值為空 需要填充 '); //開發中 創建者 修改者ID 通過Aop 或者權限框架獲取當前操作用戶 ,用用戶ID進行填充即可 this.strictInsertFill(metaObject, 'createId', Long.class, 666L); } } if (metaObject.hasSetter('createTime')) { Object createTime = getFieldValByName('createTime', metaObject); if (createTime == null) { log.info('創建時間需要維護 且值為空 需要填充 '); this.strictInsertFill(metaObject, 'createTime', Long.class, System.currentTimeMillis()); } } } @Override public void updateFill(MetaObject metaObject) { if (metaObject.hasSetter('modifyId')) { Object modifyId = getFieldValByName('modifyId', metaObject); if (modifyId == null) { log.info('修改人需要維護 且值為空 需要填充 '); this.strictUpdateFill(metaObject, 'modifyId', Long.class, 666L); } } if (metaObject.hasSetter('modifyTime')) { Object modifyTime = getFieldValByName('modifyTime', metaObject); if (modifyTime == null) { log.info('修改時間需要維護 且值為空 需要填充 '); this.strictUpdateFill(metaObject, 'modifyTime', Long.class, System.currentTimeMillis()); } } }}

測試:

我這里設置了創建者ID ,雖然createId需要維護,但我們設置了值 則不會進行填充了,修改亦是如此!

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

那么自動填充功能,就完了,整合時 結合項目,適當修改即可。

(五)數據保護

使用mp中的加密方式,對配置文件中一些敏感信息進行加密(例如密碼)

其和 Jasypt 項目加密方式類似

1.生成隨機秘鑰以及內容加密

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

2.配置文件替換

我們將原本的明文信息(root)換成加密后的密文信息

格式:

mpw:xxxx密文信息

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

3.設置密鑰到啟動參數中

idea 設置方式:

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

啟動測試?獲取到了數據 證明數據庫連接成功,其加密內容在連接時也被密鑰解密了,但配置中,無明文信息,一定程度保護了項目

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

jar 啟動時 設置密鑰參數:

springboot2.3 整合mybatis-plus 高級功能(圖文詳解)

項目地址:springboot-mp進階

到此這篇關于springboot2.3 整合mybatis-plus 高級功能的文章就介紹到這了,更多相關springboot2.3 整合mybatis-plus內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 亚洲中出 | 国产精品原创av片国产免费 | 在线观看中文 | 影音先锋成人资源网 | 一级免费网站 | 久久久免费电影 | www国产成人免费观看视频,深夜成人网 | 日韩高清一区二区 | 久久伊人青青草 | 精品永久免费 | 国产精品一区欧美 | 在线视频中文字幕 | 久久久99精品免费观看 | av黄色在线 | 欧美国产日韩在线观看 | 色婷婷亚洲| aaaa大片| 黄网在线免费观看 | 亚洲精品一区二区三区四区高清 | 欧洲成人在线观看 | 一级黄色毛片免费 | 国产美女久久久 | 免费视频一区 | 午夜在线 | 人人鲁人人莫一区二区三区 | 夜夜天天操 | 久免费视频 | 久久久久久亚洲一区二区三区蜜臀 | 每日更新av | www.99re| 国产精品乱码久久 | 国产精品伦一区二区三级视频 | 米奇成人网 | 欧美成人伊人 | 亚洲四区 | 欧美三级视频在线播放 | 夜夜视频 | 中文在线一区二区 | 婷婷国产 | 日韩在线视频观看 | 日韩一区二区在线视频 | 国产性色av | 成人在线小视频 | 一区二区三区在线 | 欧美三级免费观看 | 黄视频网址 | 国产精品美女久久久久久久网站 | 久草视频在线首页 | 99视频在线免费观看 | 无码日韩精品一区二区免费 | 亚洲国产视频精品 | 婷婷激情五月 | 在线你懂得 | 国产精品中文字幕在线播放 | 国产午夜手机精彩视频 | 激情网站免费观看 | 亚洲成人中文字幕 | 我要看黄色一级大片 | 精品国产乱码久久久久久久 | 国产日韩一级片 | 亚洲视频在线观看 | 求av网站 | 羞羞视频免费观看 | 成人免费在线播放 | 成人一区二区在线 | 亚洲一区二区在线看 | 欧美2区 | 国产1级片 | 日韩成人在线播放 | 成人午夜电影网 | 国产最新网站 | 欧美视频一区二区三区在线观看 | 在线观看日韩 | 电影k8一区二区三区久久 | 久久久久黄 | 欧美一区二区三区在线看 | 日韩视频精品在线 | 伊人逼逼| 成人久久久 | 亚洲一区二区三区福利 | 亚洲三区电影 | 北条麻妃一区二区三区在线观看 | 黄色网页在线观看 | 91网站在线播放 | 日韩精品一区在线 | 日韩欧美视频一区二区三区 | 久久精品超碰 | 精品久久一二三区 | 欧美日韩综合在线 | 国产精品日日做人人爱 | 久在线 | 国产精品27页 | www.天天操.com| 成人精品视频 | 久久午夜综合久久 | 国产精品二区一区二区aⅴ污介绍 | 亚洲国产精品成人 | 国产中文字幕一区 | 在线观看一区二区三区四区 | 久久精品一 | 黄色大片网站在线观看 | 日韩高清一区 | 毛片黄片| 久草视频在线观 | 国产中文在线 | 亚洲成人精品在线观看 | 亚洲精品乱码久久久久久蜜桃91 | 国产91综合一区在线观看 | 午夜激情视频在线观看 | 亚洲第一免费看片 | 亚洲国产免费 | 久久精品小视频 | 精品av | 欧美日韩精品在线一区 | 午夜在线| 国产精品 日韩 | 黄色精品视频 | 麻豆国产一区二区三区四区 | 超碰人人操 | 一级久久久 | 欧美激情在线播放 | 日本国产欧美 | 999视频网| 国产伦精品一区二区三区在线 | 成av人在线 | 激情的网站 | 亚洲精品欧美视频 | 亚洲97视频 | 日本网站在线免费观看 | 日本免费xxxx| 中文字幕日韩一区 | 国产精品一区在线观看你懂的 | 一级片在线观看 | 亚洲理论电影在线观看 | 亚洲精品麻豆 | 国产精品自产拍在线观看 | 国产精品久久久久久吹潮 | 密室大逃脱第六季大神版在线观看 | 精品国产黄a∨片高清在线 激情网站免费 | 一区二区国产在线观看 | 日本一本在线 | 国产精品极品美女在线观看免费 | 国产精品久久久一区二区 | 亚洲视频在线一区 | 亚洲国产精品区 | 国产综合精品 | 国产精品丝袜一区二区 | 最新中文字幕 | 国产精品美女久久久久aⅴ国产馆 | 欧美日韩高清 | 成人理论片 | 国产精品国产 | 欧美日韩亚洲成人 | 免费v片| 欧洲亚洲视频 | 国产在线不卡一区 | 国偷自产av一区二区三区 | 在线观看免费国产 | 欧美久久一级特黄毛片 | 国产精品久久久久久久久久久久午夜片 | 天天天天天天操 | 国偷自产一区二区免费视频 | 99热国产在线观看 | 第一色站| 狠狠干天天干 | 五月婷婷导航 | 欧美激情网站 | 黄色在线视频网 | 亚洲狠狠爱一区二区三区 | а√天堂中文在线资源8 | 国产91网址 | 欧美一级二级视频 | 欧洲美女7788成人免费视频 | 色婷婷网 | 99免费在线观看视频 | 中文字幕在线观看av | 欧美性猛交一区二区三区精品 | 欧美日韩视频在线观看一区 | 91捆绑91紧缚调教91 | 中文字幕在线网址 | 日本电影网址 | 成人免费在线网址 | 一区二区三区在线 | 欧 | 亚洲欧美日韩另类精品一区二区三区 | 羞羞视频在线免费观看 | 日韩不卡一区二区三区 | 日韩蜜桃 | 欧美aaa大片| 亚洲欧洲一区二区三区 | 精品在线二区 | 伊人网站| 激情久久av一区av二区av三区 | 亚洲欧洲综合av | 欧美黑人xxx | 91精品国产一区二区三区免费 | 午夜欧美| 亚洲国产高清在线 | 欧美成年黄网站色视频 | 国产三区在线视频 | 激情久久久久 | 欧美日韩一区二区在线 | 国产精品毛片久久久久久久 | 国产精品中文字幕在线 | 日日射av | 奇米av| 国产在线不卡视频 | 后进极品白嫩翘臀在线视频 | 国产精品美女久久久久久不卡 | 久久久久久91香蕉国产 | 欧美日韩在线免费观看 | 国产日韩欧美亚洲 | 精精国产 | 国产精品一区av | 亚洲日本乱码一区两区在线观看 | 久久久精品影院 | 白浆在线播放 | 一区二区三区四区视频 | 精品日韩一区二区 | 91在线精品一区二区 | 欧美一级在线 | 91精品国产综合久久久蜜臀粉嫩 | av天天操| 成人在线观| 高清久久 | 午夜精品成人一区二区 | 91视频免费看 | 久久一区二区三区四区 | 日日干日日操 | 成人深夜在线观看 | 综合久久99 | 久久久久久久久国产 | 久久porn| 天堂中文在线视频 | 久久99爱视频 | 天堂av一区二区 | 超碰香蕉 | 亚欧洲精品视频在线观看 | 欧美亚洲一区二区三区 | 欧美久久免费观看 | 国产美女网站视频 | 久久高清片 | 国产成人精品亚洲777人妖 | 国产大片久久久 | 欧美国产一区二区三区 | 国产成人啪精品午夜在线观看 | 午夜激情视频免费 | 成人av一区二区三区 | 亚洲精品一区二区三区在线观看 | 欧美八区| 毛片区| 天天操导航 | 欧美日韩一区二区在线播放 | 日韩中文字幕在线 | 一本一道久久a久久精品综合 | www.久久久| 天天干com| 精品视频一区二区 | 亚洲一区中文字幕永久在线 | 国产精品国产 | 精品国产一区二区三区久久久蜜臀 | 日韩一级电影在线 | 97视频在线 | 亚洲欧美在线观看 | 五月综合婷 | 亚洲一区在线观看视频 | 欧美乱码久久久久久蜜桃 | 国产一区二区三区色淫影院 | 手机看片369 | 欧美一区2区三区4区公司二百 | 娇妻被朋友调教成玩物 | 久久精品亚洲精品国产欧美kt∨ | 蜜桃精品视频在线 | 九九综合九九 | 男人天堂99 | 中文字幕国产视频 | 亚洲精品成人在线 | 草草草久久久 | 精品自拍网| 国产精品久久久久久中文字 | 国产精品毛片一区二区三区 | 亚洲精品久久久久久一区二区 | 亚洲一区在线免费观看 | 天堂国产 | 国产最新网址 | 亚洲人人艹 | 久久精品免费 | 91在线精品一区二区 | 一级毛片视频 | 欧美成人性生活视频 | 在线中文日韩 | 精品视频在线观看 | 中文字幕久久久 | av解说在线精品 | 国产日韩一区二区 | 最新国产中文字幕 | 日韩精品 | www.国产视频 | 一级黄色短片 | 国产日韩精品一区二区 | av午夜电影 | 欧美成人一区二区 | 久久女同互慰一区二区三区 | 亚洲aⅴ天堂av在线电影软件 | 久久极品| 影音先锋中文字幕在线 | 国产精品自拍视频网站 | 国产精品一区二区在线看 | 亚洲国产日韩一区 | 亚洲精品二区 | 成人国产在线 | 国产精品人人做人人爽 | 激情久久av一区av二区av三区 | 国产精品一区亚洲二区日本三区 | 久久精品亚洲精品 | 国产精品综合视频 | 欧美在线小视频 | 国产精品18 | 在线观看亚洲视频 | 国产97碰免费视频 | 狠狠亚洲| 亚洲成人精品在线观看 | 最近韩国日本免费观看mv免费版 | 国产拍拍视频 | 精品久久久久久 | 亚洲永久 | 亚洲国产精品成人 | 欧美精品网 | 久久久欧美| 欧美日韩精品久久 | 国产成人高清 | 男人天堂亚洲天堂 | 在线视频 欧美日韩 | 午夜在线观看 | 欧美激情综合五月色丁香小说 | 亚洲国产成人久久综合一区,久久久国产99 | 成人在线视频免费观看 | 91精品久久久久久久91蜜桃 | 国产乱码一区二区三区在线观看 | 亚洲91精品| 亚洲国产成人精品女人 | 婷婷精品 | 不卡一区二区三区视频 | 九色在线 | 久久三区 | 亚洲1区2区在线 | 97在线超碰| 国产成人片| 国产99久久久精品视频 | 欧洲一区二区在线观看 | 国产亚洲综合一区二区 | 亚洲伊人久久综合 | 久久久www成人免费精品 | 国产精品一区二区不卡 | 一区二区三区视频 | 久久久精品网 | 成人精品久久久 | 成人免费视频观看 | 一级一级一级一级毛片 | 欧美一区二区三区在线 | 日本 欧美 三级 高清 视频 | 国产一区不卡视频 | 91.com在线 | 99爱视频| 成人在线免费观看 | 蜜桃免费一区二区三区 | 欧美成人三区 | 亚洲欧美国产精品专区久久 | 日韩三及片 | 久草 在线 | 91精品电影 | 99久久精品免费看国产免费粉嫩 | 一本色道久久综合狠狠躁篇的优点 | 日韩视频在线视频 | 国产精品一区二区无线 | 成人av在线播放 | 久久精品小视频 | 色婷婷久久一区二区三区麻豆 | 欧美精品一区二区视频 | 亚洲视频在线观看 | 国产综合精品一区二区三区 | 国产在线观看高清 | 免费久久久久 | 狠狠操狠狠操 | 国产精品久久久久久中文字 | 国产成人精品综合 | 欧美一二三 | 一区二区三区的视频 | 麻豆视频国产 | 一区日韩 | 国产青青草 | 超碰人人插 | 日韩高清在线一区 | 国产中文字幕一区 | 最新中文字幕在线 | 国产视频一区二区 | 黑人精品xxx一区一二区 | 日韩精品 电影一区 亚洲 | 国产日韩一区二区 | 欧美日韩视频第一页 | 国产91成人在在线播放 | 色av色av色av| 91精品国产91久久久久久吃药 | 久久精品一区二区三区中文字幕 | 亚洲精品成人免费 | 日韩在线精品 | 国产在线播放av | 欧美日本免费一区二区三区 | 欧美一区二区在线视频 | 国产高清一区二区 | 日本久久精品视频 | 欧美香蕉 | 在线精品观看 | 日韩在线亚洲 | 中文字幕一区二区三区四区不卡 | 亚洲精品3区 | 91在线播放视频 | 日韩欧美国产一区二区三区 | 一级全黄少妇性色生活片毛片 | 99re在线视频精品 | 国产成人精品久久 | 日韩精品一区二区三区第95 | 91视频日韩 | 97视频人人澡人人爽 | 在线精品自拍 | 日本午夜在线 | 欧美韩一区二区 | 亚洲性视频网站 | 九九久久久 | 亚洲精选久久 | 日日摸夜夜添夜夜添亚洲女人 | 91麻豆精品国产91久久久久久久久 | 国产成人aⅴ | 探花在线观看 | 欧美一区二区三区精品 | 一区二区三区四区av | 黄色片在线免费观看 | 北条麻妃一区二区三区在线观看 | 欧美成人资源 | 中文成人在线 | 亚洲激情综合 | 国产伦精品一区二区三区在线 | 日本黄a三级三级三级 | 久久涩涩| 不卡一区二区三区四区 | 国产一级特黄毛片在线毛片 | av黄色在线 | 久久99精品视频 | 精品永久免费 | 99精品国产热久久91蜜凸 | 久久国产精品久久精品 | 国产日韩精品视频 | 天堂欧美城网站网址 | 91视频免费看 | 在线观看的av | 国产在线成人 | 91污在线观看 | 欧美日韩亚洲视频 | 伊人网国产 | 高清视频一区 | 视频一区二区三区中文字幕 | 亚洲精区 | 亚洲一区二区三区视频 | 91黄在线观看 | 黄网站免费在线观看 | 欧美日韩精品在线 | 国产乱码久久久久久一区二区 | 一色屋精品久久久久久久久久 | jizz中国日本 | 国产精品成人国产乱一区 | 国产高清免费视频 | 亚洲免费在线观看 | 精品日韩一区二区 | jlzzjlzz亚洲日本少妇 | 国产午夜精品久久久久久久 | 国产精品成人国产乱一区 | 日韩在线视频观看 | 久久中文字幕一区二区三区 | 久久精品综合 | 国产精品久久久久久久久 | 中文字幕精品一区久久久久 | 网址av| 午夜精品 | 国产最好的精华液网站 | 中文字幕精品视频在线观看 | aⅴ色国产 欧美 | 日本午夜视频 | 国产精品久久久99 | 男人的天堂中文字幕 | 精品国产髙清在线看国产毛片 | 91精品国产综合久久婷婷香蕉 | av网站免费在线观看 | 午夜免费在线 | 免费成人在线观看 | 日韩三级在线 | 久久久久久亚洲国产 | a毛片毛片av永久免费 | 污污视频免费网站 | 亚洲精品久久久久久下一站 | 日韩中文字幕在线播放 | 午夜成人在线视频 | 久久91精品| 欧美电影一区 | 亚洲福利视频在线 | 亚洲成人久久久 | 看毛片网 | 国产性一级片 | 波多野结衣精品 | 欧美日韩在线成人 | 黄色影片网址 | 久久免费国产精品 | 亚洲一区二区三区欧美 | 蜜桃臀一区二区三区 | 精品三级在线观看 | 亚洲电影在线观看 | 成人h动漫在线看 | 欧美福利电影在线观看 | 一区二区三区福利视频 | 国产成人精品一区二区三区四区 | 伊人网在线视频 | 日韩精品一区二区三区 | 91无吗 | 日韩国产一区二区三区 | 免费国产视频在线观看 | 欧美一区第一页 | 中文字幕久久久 | www.欧美精品 | 亚洲精品久久久久久下一站 | 日本精a在线观看 | av中文字幕在线播放 | 中文字幕视频三区 | 天天操天天干天天 | 免费的一级毛片 | 激情视频在线观看 | av免费网站在线观看 | 欧美视频免费在线 | 国产精品www | 久久99精品久久久久蜜臀 | 欧美精品一区二区三区蜜桃视频 | 国产精品香蕉 | 天天射天天干 | 天天草狠狠干 | 狠狠躁夜夜躁人人爽天天高潮 | 综合伊人| h在线看| 成人免费久久 | 色婷婷综合在线 | 四虎免费紧急入口观看 | 99国产精品99久久久久久 | 91在线免费看 | 日韩成人久久 | 一级一级一级一级毛片 | 91久久在线 | 国产精久久 | 欧美日韩精品区 | 9久久 | 北条麻妃99精品青青久久 | 91精品国产综合久久久久久丝袜 | 美女视频黄a | 在线看一级片 | av一级在线观看 | 日本久久国产 | 亚洲高清一区二区三区 | 成人无遮挡毛片免费看 | 亚洲欧美福利视频 | 国产二区视频 | 精品自拍视频 | 成人精品视频免费在线观看 | 三级视频在线观看 | 日本女人高潮视频 | 日韩精品视频在线播放 | 日本不卡一区二区 | 麻豆一区 | 亚洲精品一二三四五区 | 日韩精品影院 | 欧美一区二区三区在线观看视频 | 亚洲va欧美va天堂v国产综合 | 国产精品成人一区二区三区夜夜夜 | 日韩电影专区 | 韩日av在线| 夜夜av| 欧美精品99 | 婷婷毛片| 欧美在线观看一区 | 精品久久久久久久久久久 | 国产精品视频不卡 | 亚洲精品乱码久久久久久不卡 | 伊人久久视频 | 欧美在线a | 国产日韩一区二区三区 | 欧美一级毛片日韩一级 | 欧美三区 | 久久久久久极品 | 久久综合入口 | 色视频网站在线观看 | 国产欧美在线视频 | 超碰一区| 日本在线观看视频网站 | 亚洲视频在线免费观看 | 国产精品国产精品 | 亚洲欧洲一区 | 欧美亚洲国产一区 | 欧美久久免费观看 | 玖玖在线精品 | 99精品欧美一区二区蜜桃免费 | 亚洲国产视频一区 | 国产精品久久久久久久久久ktv | 一区二区av | 国产欧美在线观看 | 精品96久久久久久中文字幕无 | 日本久久精品一区二区 | 久久综合一区二区 | 免费激情av | 成人黄色片在线观看 | 国内精品在线视频 | 久久精品国产99国产精品 |