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

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

SpringBoot整合SpringDataJPA

瀏覽:128日期:2023-02-24 18:20:49
目錄SpringBoot整合JPAJPA & Spring Data JPAHibernate & JPA1、JPA2、JPA & Hibernate 關系Hibernate VS Mybatis一、導入依賴二、簡單的CRUD1、配置文件2、實體類3、Dao層4、service層5、controller三、自定義SQL四、分頁查詢五、連表查詢六、分組查詢七、與mybatis對比總結SpringBoot整合JPA

使用數據庫是開發基本應用的基礎,借助于開發框架,我們已經不用編寫原始的訪問數據庫的代碼,也不用調用JDBC(Java Data Base Connectivity)或者連接池等諸如此類的被稱作底層的代碼,我們將從更高的層次上訪問數據庫,這在Springboot中更是如此,本章我們將詳細介紹在Springboot中使用 Spring Data JPA 來實現對數據庫的操作。

JPA & Spring Data JPA

JPA是Java Persistence API的簡稱,中文名Java持久層API,是Sun官方提出的Java持久化規范.

其設計目標主要是為了簡化現有的持久化開發工作和整合ORM技術。

JPA使用XML文件或注解(JDK 5.0或更高版本)來描述對象-關聯表的映射關系,能夠將運行期的實體對象持久化到數據庫,它為Java開發人員提供了一種ORM工具來管理Java應用中的關系數據。

簡單地說,JPA就是為POJO(Plain Ordinary Java Object)提供持久化的標準規范,即將Java的普通對象通過對象關系映射(Object-Relational Mapping,ORM)持久化到數據庫中。

由于JPA是在充分吸收了現有Hibernate,TopLink,JDO等ORM框架的基礎上發展而來的,因而具有易于使用、伸縮性強等優點。

Spring Data JPA 是 Spring 基于 Spring Data 框架、在JPA 規范的基礎上開發的一個框架,使用 Spring Data JPA 可以極大地簡化JPA 的寫法,可以在幾乎不用寫實現的情況下實現對數據庫的訪問和操作,除了CRUD外,還包括分頁和排序等一些常用的功能。

Spring Data JPA 還提供了對分頁查詢、自定義SQL、查詢指定N條記錄、聯表查詢等功能的支持

JPA不是一種新的ORM框架,它的出現只是用于規范現有的ORM技術,它不能取代現有的Hibernate、TopLink等框架。相反,在采用JPA開發時,我們將仍將使用到這些ORM框架,只是此時開發出來的應用不再依賴于某個持久化提供商。應用可以在不修改代碼的情況下在任何JPA環境下運行,真正做到低耦合,可擴展的程序設計。

Hibernate & JPA1、JPA

全稱Java Persistence API,通過JDK 5.0注解或XML描述對象-關系表的映射關系,并將運行期的實體對象持久化到數據庫中。

JPA的出現有兩個原因:

其一,簡化現有Java EE和Java SE應用的對象持久化的開發工作;

其二,Sun希望整合對ORM技術,實現持久化領域的統一。

JPA提供的技術:

1)ORM映射元數據:JPA支持XML和JDK 5.0注解兩種元數據的形式,元數據描述對象和表之間的映射關系,框架據此將實體對象持久化到數據庫表中;

2)JPA 的API:用來操作實體對象,執行CRUD操作,框架在后臺替我們完成所有的事情,開發者從繁瑣的JDBC和SQL代碼中解脫出來。

3)查詢語言:通過面向對象而非面向數據庫的查詢語言查詢數據,避免程序的SQL語句緊密耦合。

2、JPA & Hibernate 關系

JPA是規范,Hibernate是框架,JPA是持久化規范,而Hibernate實現了JPA。

Hibernate VS Mybatis

Mybatis:小巧、方便、高效、簡單、直接、半自動

Hibernate:強大、方便、高效、復雜、繞彎子、全自動

一、導入依賴

<dependencies><dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.76</version></dependency><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId></dependency><dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.21</version></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope></dependency> </dependencies>二、簡單的CRUD1、配置文件

spring: datasource: username: root password: root url: jdbc:mysql://localhost:3306/shy driver-class-name: com.mysql.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource jpa: hibernate: #定義數據庫表的生成策略 create 創建一個表 update 更新或者創建數據表 ddl-auto: update #控制臺顯示sql語句 show-sql: trueserver: port: 80

其中,spring.jpa.hibernate.ddl-auto 參數用來配置是否開啟自動更新數據庫表結構,可取create、create-drop、update、validate、none五個值。

create 每次加載hibernate時,先刪除已存在的數據庫表結構再重新生成; create-drop 每次加載hibernate時,先刪除已存在的數據庫表結構再重新生成,并且當 sessionFactory關閉時自動刪除生成的數據庫表結構; update 只在第一次加載hibernate時自動生成數據庫表結構,以后再次加載hibernate時根據model類自動更新表結構; validate 每次加載hibernate時,驗證數據庫表結構,只會和數據庫中的表進行比較,不會創建新表,但是會插入新值。 none 關閉自動更新2、實體類

Shop:

package com.shy.entity;import lombok.Data;import javax.persistence.*;@Data//使用jpa注解 配置映射關系@Entity//告訴jpa這是一個實體類 和數據表映射的類public class Shop{ @Id//表明這是以一個主鍵 @GeneratedValue(strategy = GenerationType.IDENTITY)//自增 private Integer shopId; @Column(length = 20) private String shopName; private double price; private Integer shopClassId; private Integer num;}

ShopClass,商品類別

package com.shy.entity;import lombok.Data;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;@Data@Entitypublic class ShopClass { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer shopClassId; private String shopClassName;}3、Dao層

編寫dao繼承JpaRepository類,泛型傳入 要操作的實體類,和主鍵類型

package com.example.dao;import com.shy.entity.Shop;import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.stereotype.Repository;/* 參數一 T :當前需要映射的實體 * 參數二 ID :當前映射的實體中的OID(映射對象標識符,數據庫主鍵)的類型*/@Repositorypublic interface ShopRepository extends JpaRepository<Shop,Integer> { /* * 我們在這里直接繼承 JpaRepository * 這里面已經有很多現成的方法了 * 這也是JPA的一大優點 * 我們可以直接使用這些方法,包括其父類的好多方法。 * */}

JpaRepository:

package org.springframework.data.jpa.repository;import java.util.List;import javax.persistence.EntityManager;import org.springframework.data.domain.Example;import org.springframework.data.domain.Sort;import org.springframework.data.repository.NoRepositoryBean;import org.springframework.data.repository.PagingAndSortingRepository;import org.springframework.data.repository.query.QueryByExampleExecutor;@NoRepositoryBeanpublic interface JpaRepository<T, ID> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> {@OverrideList<T> findAll();// 查詢所有實體@OverrideList<T> findAll(Sort sort);// 查詢所有實體并排序@OverrideList<T> findAllById(Iterable<ID> ids);// 根據ID集合查詢實體@Override<S extends T> List<S> saveAll(Iterable<S> entities);// 保存并返回(修改后的)實體集合void flush();// 提交事務<S extends T> S saveAndFlush(S entity); // 保存實體并立即提交事務<S extends T> List<S> saveAllAndFlush(Iterable<S> entities);@Deprecateddefault void deleteInBatch(Iterable<T> entities){deleteAllInBatch(entities);}void deleteAllInBatch(Iterable<T> entities); // 批量刪除實體集合void deleteAllByIdInBatch(Iterable<ID> ids);void deleteAllInBatch();// 批量刪除所有實體@DeprecatedT getOne(ID id);// 根據ID查詢實體T getById(ID id);@Override<S extends T> List<S> findAll(Example<S> example);// 查詢與指定Example匹配的所有實體@Override<S extends T> List<S> findAll(Example<S> example, Sort sort);// 查詢與指定Example匹配的所有實體并排序}4、service層

service:

package com.shy.service;import com.shy.entity.Shop;import com.shy.vo.ShopAndShopClassVo;import java.util.List;public interface ShopService { //查詢所有商品 List<Shop> findAll(); //增加商品 Shop addShop(Shop shop); //通過商品id修改商品名 Shop updateShop(); //通過商品id刪除商品 void delShop(Integer id);}

Impl:

package com.shy.service;import com.shy.dao.ShopRepository;import com.shy.entity.Shop;import com.shy.vo.ShopAndShopClassVo;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.domain.Sort;import org.springframework.stereotype.Service;import java.util.List;@Servicepublic class ShopServiceImpl implements ShopService{ @Autowired private ShopRepository shopRepository; @Override public List<Shop> findAll() {return shopRepository.findAll(); } @Override public Shop addShop(Shop shop) {shop.setPrice(333);shop.setShopClassId(3);shop.setNum(30);shop.setShopName('耳機');return shopRepository.save(shop); } @Override public Shop updateShop() {Shop shop = new Shop();shop.setShopId(11);shop.setShopName('平板');shop.setShopClassId(3);shop.setNum(40);return shopRepository.save(shop); } @Override public void delShop(Integer id) {shopRepository.deleteById(id);System.out.println('刪除成功'); }}5、controller

package com.shy.controller;import com.alibaba.fastjson.JSON;import com.shy.entity.Shop;import com.shy.service.ShopService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class ShopController { @Autowired private ShopService shopService; @GetMapping('/list') public String findAll(){return JSON.toJSONString(shopService.findAll()); } @GetMapping('/save') public String save(Shop shop){return JSON.toJSONString(shopService.addShop(shop)); } @GetMapping('/saveAndFlush') public String saveAndFlush(){return JSON.toJSONString(shopService.updateShop()); } @GetMapping('/delShop/{id}') public void delShop(@PathVariable Integer id){shopService.delShop(id); }}

全程用postman測試

三、自定義SQL

在ShopRepository中添加

//使用原生sql需要加上,nativeQuery = true //?1代表第一個參數 @Query(value='select * from shop where shop.price = ?1',nativeQuery = true) Shop findByPrice(Double price); //修改商品,@Modifying+@Query執行更新操作,serviceImpl不要忘記加上,要使用hql的話,需要把entity別名刪掉 @Transactional//設計修改表的操作需要開啟事務支持 @Modifying//這個注解只支持返回值為int/Integer @Query('update Shop s set s.shopName = ?1 where s.shopId = ?2') int updateshop2(String name,Integer shopId);

service:

//通過價格查詢商品 Shop findByPrice(Double price);//修改商品名原生sql方法 int updateshop2(String name,Integer shopId);

Impl:

@Override public Shop findByPrice(Double price) {return shopRepository.findByPrice(price); }@Override public int updateshop2(String name, Integer shopId) {return shopRepository.updateshop2(name, shopId); }

controller:

@GetMapping('/listPrice/{price}') public String findByPrice(@PathVariable Double price){return JSON.toJSONString(shopService.findByPrice(price)); }@GetMapping('/saveAndFlush2/{id}/{name}') public String saveAndFlush2(@PathVariable(value = 'id') Integer shopId, @PathVariable String name){return shopService.updateshop2(name, shopId)>0?'修改成功':'修改失敗'; }四、分頁查詢

Pageable 是 Spring 封裝的分頁實現類,使用的時候需要傳入頁數、每頁條數和排序規則。

Spring Data JPA 已經幫我們內置了分頁功能,在查詢的方法中,需要傳入參數 Pageable,當查詢中有多個參數的時候 Pageable 建議作為最后一個參數傳入,

Pageable使用的時候需要傳入頁數、每頁條數和排序規則,排序規則可省略

service:

/** * 分頁查詢 * @param pageNo 第幾頁 * @param pageSize 每頁有多少條數據 * @param pageable Spring 封裝的分頁實現類 * @return 數據 */ Page<Shop> pageShop(Integer pageNo,Integer pageSize,Pageable pageable);

Impl:

@Override public Page<Shop> pageShop(Integer pageNo, Integer pageSize, Pageable pageable) {//注意排序這找的是實體類中的字段,不是數據庫里的//分頁頁碼從0開始pageable = PageRequest.of(pageNo,pageSize, Sort.Direction.DESC, 'shopId');return shopRepository.findAll(pageable); }

controller:

@GetMapping('/pageShop/{pageNo}/{pageSize}') public String pageShop(@PathVariable Integer pageNo, @PathVariable Integer pageSize,Pageable pageable){return JSON.toJSONString(shopService.pageShop(pageNo, pageSize, pageable)); }五、連表查詢

VO(value object)值對象

通常用于業務層之間的數據傳遞,僅僅包含數據而已 View object:視圖對象

接受頁面傳遞來的對象,封裝對象

將業務處理完成的對象,封裝成頁面要用的數據

創建ShopAndShopClassVo用來接收連表查詢后的結果

entity,這里的有參構造必須加,要往里賦值

package com.shy.entity;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;@Data@AllArgsConstructor@NoArgsConstructorpublic class ShopAndShopClassVo { private String shopName; private double price; private String shopClassName;}

ShopRepository:

//連表查詢 @Query('select new com.shy.vo.ShopAndShopClassVo(s.shopName,s.price,sc.shopClassName) from Shop s,ShopClass sc ' + 'where s.shopClassId=sc.shopClassId and sc.shopClassName=?1') List<ShopAndShopClassVo> findShopInfo(String shopClassName);

JPQL進行查詢,它的特征就是與原生SQL語句類似,完全面向對象,通過類名和屬性訪問,而不是表名和表屬性

service:

//連表查詢 List<ShopAndShopClassVo> findShopInfo(String shopClassName);

Impl:

@Override public List<ShopAndShopClassVo> findShopInfo(String shopClassName) {return shopRepository.findShopInfo(shopClassName); }

controller:

@GetMapping('/andFind/{name}') public String findShopInfo(@PathVariable('name') String shopClassName){return JSON.toJSONString(shopService.findShopInfo(shopClassName)); }六、分組查詢

接收數據的另一種寫法,創建一個結果集的接口來接收連表查詢后的結果

定義一個結果集的接口類,接口類的內容來自于商品表和商品類別表。

entity:

package com.shy.entity;public interface GroupShop { String getNum(); String getShopClassName();}

在運行中 Spring 會給接口(GroupShop)自動生產一個代理類來接收返回的結果,代碼中使用 getXX 的形式來獲取。

ShopRepository:

//分組查詢 @Query('select count(s.shopName) as 商品數量,sc.shopClassName as 類別名稱 from Shop s,ShopClass sc where s.shopClassId=sc.shopClassId group by s.shopClassId') List<GroupShop> groupShop();

service:

//分組查詢 List<GroupShop> groupShop();

Impl:

@Override public List<GroupShop> groupShop() {return shopRepository.groupShop(); }

controller:

@GetMapping('/groupShop') public String groupShop(){return JSON.toJSONString(shopService.groupShop()); }七、與mybatis對比 jpa是對象與對象之間的映射,而mybatis是對象和結果集的映射 jpa移植性比較好,不用關心用什么數據庫,因為mybatis自由寫sql語句,所以當項目移植的時候還需要改sql。 修改字段時JPA更簡單,mybatis需要修改一堆的xml,mapper等文件很麻煩。 mybatis自定義sql,比較靈活,也可以寫復雜的sql,JPA只適合簡單的單表sql總結

mybatis和JPA各有優勢,如果sql簡單,則jpa使用效率更高,如果sql較復雜,需要自定義,則使用mybatis更加順手。

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關注好吧啦網的更多內容!

標簽: Spring
相關文章:
主站蜘蛛池模板: 亚洲女人的天堂 | 久久久国产一区二区三区 | 亚洲九九| 色天天综合网 | 欧美日韩在线电影 | 亚洲日韩中文字幕一区 | 99草草| 欧美日本免费 | 国产欧美精品一区二区三区四区 | 亚洲天堂久久 | 吴梦梦到粉丝家实战华中在线观看 | www.国产在线 | 亚洲第一av网站 | 欧美性网 | 日韩在线视频观看 | 羞羞视频网站 | 国产美女在线观看 | 亚洲午夜在线 | 国产精品久久久久久久久久免费 | 亚洲协和影视 | 国产精品网站在线观看 | 欧美精品1区2区3区 免费亚洲婷婷 | 亚洲一区二区三区欧美 | 欧美性猛交一区二区三区精品 | yiren22综合网成人 | 国产精品一区三区 | 欧美日韩国产一区二区三区在线观看 | 91亚洲精| 色综合成人 | 国产在亚洲 线视频播放 | 国产精品一区二区无线 | 亚洲男人的天堂在线播放 | 久久99精品久久久久久按摩秒播 | 99re在线观看 | 夜夜av| 99热在线播放 | 日本福利网站 | 天天草夜夜 | 免费色在线 | 精品久久久久一区二区国产 | 精品国产一区二区三区性色 | 日韩视频在线观看一区二区 | 国产在线拍揄自揄拍视频 | 日韩和的一区二区 | 日本一区二区不卡视频 | 亚洲精品久久久久久久久久久 | av午夜电影 | 中文字幕视频二区 | 成人免费精品 | 免费在线精品视频 | 欧美激情精品久久久久久 | 最新国产视频 | 91在线国产观看 | 九九色综合 | 成人在线观看免费 | 欧美激情在线精品一区二区三区 | 精品影视 | 亚洲精品3区 | 久久国产精品一区二区 | 日本 国产 欧美 | 亚洲97色 | 99久久99久久久精品色圆 | 免费久久99精品国产婷婷六月 | 欧美a级成人淫片免费看 | 91 在线观看| 日韩最新网址 | 成人免费影院 | 日韩中文字幕在线观看 | 日本一区二区精品视频 | 欧美成人综合 | 亚洲一区二区三区免费视频 | 日韩福利视频导航 | 2019天天干| 午夜精品一区二区三区在线视频 | 一区二区三区免费 | 国产精品日韩专区 | 日韩一区二区不卡 | 久久久999成人 | 免费国产一区二区 | 欧美lesbianxxxxhd视频社区 | 亚洲精品中文字幕中文字幕 | 精品国产欧美一区二区三区成人 | 国产精品中文字幕在线播放 | 一二区视频 | 成人老司机 | 伊人网国产 | 欧美成人精品一区 | 久久精品一区二区三区中文字幕 | 一级全黄性色生活片 | 精品一二三区 | 色婷婷av久久久久久久 | 午夜精品福利在线观看 | 美女久久 | 成人免费毛片aaaaaa片 | 亚洲精品成人 | 国产精品一区二区在线看 | 亚欧洲精品视频在线观看 | 国产精品美女久久久久久免费 | 国产中文字幕一区二区三区 | 亚洲一区欧美一区 | 在线中文字幕视频 | 国产乱码精品一区二区三区中文 | 亚洲男人网| 国产精选一区二区 | 久久国产精品久久久久久 | 欧美日韩在线精品 | 日韩中文字幕在线观看 | 多p视频 | 青青草免费在线视频 | 欧美精品自拍 | 色综合av| 性视频一区 | 国产精品久久久久久久一区探花 | 午夜一区二区三区 | 国产高清一区二区三区 | 国产传媒毛片精品视频第一次 | 久久九九精品久久 | 亚洲视频免费在线观看 | 久久精品色欧美aⅴ一区二区 | 伊人免费在线观看高清版 | 欧美在线视频网站 | 亚洲1区2区在线 | 亚洲日本乱码一区两区在线观看 | 天天干夜夜操 | 天堂资源最新在线 | 伊人网伊人 | 欧美激情五月 | 日本超碰 | 九九热在线免费视频 | 欧美日韩在线观看中文字幕 | 欧美一区二区三区免费视频 | 一区二区在线免费观看 | 国产成人精品一区二区三区四区 | 久久中文字幕一区二区三区 | 犬夜叉在线观看 | 久草资源在线视频 | 欧美综合一区 | 97在线视频免费 | 欧美一级在线观看 | 精品视频久久久 | 欧美午夜在线观看 | 国产高清在线精品一区二区三区 | 国产精品视屏 | 成人国产 | 视频一区久久 | 你懂的免费在线观看 | 97影院在线午夜 | 国产精品久久久久久中文字 | 欧美韩国日本一区 | 欧美日韩在线第一页 | 本道综合精品 | 成人深夜小视频 | 欧美在线观看免费观看视频 | 国产精品一区二区在线看 | 99亚洲精品 | av在线一区二区 | 少妇久久久 | 国产精品久久久久久久久免费桃花 | 少妇黄色一级片 | 午夜影院久久 | 久久久成人av | 毛片a在线 | 久久精品一| 久久a毛片 | 日韩一区二区三区av | 欧洲一区二区三区 | 日日干夜夜干 | 一区二区三区无码高清视频 | 黄网在线免费观看 | 亚洲黄色免费观看 | 成人免费毛片aaaaaa片 | 国产精品一区二区三 | 精品天堂 | 亚洲人成在线播放 | 91精品国产综合久久婷婷香蕉 | 午夜视频 | 国产精品成人在线 | 天天爱天天草 | 毛片99| 国产精品www | 久久久精品综合 | 日韩成人高清视频 | 精品久久久久久久久福利 | 蜜桃免费一区二区三区 | 麻豆精品久久 | 精品久久久久久久 | 亚洲美女视频一区二区三区 | 欧美极品视频 | 91手机精品视频 | heyzo在线观看 | 草久在线视频 | 国产成人自拍一区 | 日韩一区中文 | 国产日韩欧美一区 | 嫩草影院网站入口 | 久久中文字幕一区 | av毛片在线免费看 | 亚洲欧美国产一区二区 | 午夜午夜精品一区二区三区文 | 久久叉 | 99视频在线免费观看 | 久久成人国产精品 | 日韩一二区 | 欧美日韩精品一区二区在线观看 | 超级碰在线视频 | 人人草人人 | 精品免费 | 国产精品久久久久久亚洲影视 | 成人欧美一区二区三区在线观看 | 欧美日韩一区二区三区四区 | 91xx在线观看 | 仙人掌旅馆在线观看 | 高清av在线 | 免费在线黄色电影 | 一级特黄aaa大片在线观看 | 久久久精品国产 | 男女视频免费在线观看 | 国产情侣小视频 | 精品午夜久久久 | 国产成人av在线 | 综合网亚洲 | 精品国产一区二区三区小蝌蚪 | 在线色av| 欧美自拍视频一区 | 午夜大片在线观看 | 久久久久久久国产 | 日韩精品专区 | 视频一区二区三区在线观看 | www久久久久 | 国模一区二区三区 | 一片毛片| 国产精品美女久久久久久久久久久 | 国产伦精品一区二区 | 97av视频在线观看 | 日韩精品一二三 | 九九福利 | 免费亚洲精品 | 另类免费视频 | 成人小视频在线观看 | 草久在线视频 | 午夜激情影院 | 一级在线| 日韩中文字幕在线观看 | 久久精品国产一区二区三区不卡 | 一区二区国产在线观看 | 欧美一级免费 | 国产资源视频在线观看 | 国产精品久久久久久久久免费丝袜 | 看免费毛片 | 91久久精品一区二区二区 | 国产精品久久嫩一区二区免费 | 黄色一级大片在线免费看产 | 国产综合一区二区 | 日精品| 欧美精品三区 | 国产黄色网址在线观看 | 人干人人 | 在线视频一区二区 | av大片 | 中文字幕av亚洲精品一部二部 | 久久精品极品 | 亚州av在线 | 蜜桃免费一区二区三区 | 久久久久高清 | 91在线视频免费观看 | 在线伊人网| 亚洲精品四区 | 精品毛片| 国产精品一区二区三 | 91观看 | 国产精品久久九九 | 海外中文字幕在线观看 | 欧美视频网站 | 国产精品久久免费看 | 国产高清久久久 | 国产在线日韩 | 国产综合视频 | www.成人在线视频 | 精品亚洲视频在线 | 狠狠爱www人成狠狠爱综合网 | 一级免费av | 在线视频a| 国产精品一区二区视频 | 台湾av在线| 国产精品无码永久免费888 | 国产成人精品综合 | 久久国产一区二区三区 | 亚洲精选一区二区 | 中文字幕av一区二区三区 | 日韩欧美国产一区二区 | 日本一区二区三区免费观看 | 日本亚洲精品成人欧美一区 | 日产久久 | 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 久草热8精品视频在线观看 亚洲区在线 | 久久草视频| 四虎884a | 男女羞羞视频免费看 | 成人在线观看av | 夜夜骚 | 欧美在线视频一区 | 可以看黄的视频 | 五月香婷婷| 欧美午夜在线观看 | 91九色视频pron | 视频在线一区二区 | 国产精品久久久久久久久动漫 | 亚洲欧美日韩在线 | 天天干天天操天天爽 | 久久一区| 日韩三级视频 | 二区中文字幕 | 国产女无套免费网站 | 精品乱子伦一区二区三区 | 亚洲高清中文字幕 | 国产乱码精品一区二区三区中文 | 九草在线 | 国产精品一区二区三区在线播放 | 久久噜噜噜精品国产亚洲综合 | av中文字幕网 | 国产综合视频在线观看 | 亚洲精品视频免费 | 久草视频免费在线播放 | 二区在线视频 | 99热免费在线| 精品伦精品一区二区三区视频 | 国产激情影院 | 成人亚洲精品777777大片 | 在线日韩一区 | 成年人网站在线免费观看 | 成人午夜在线视频 | 精品日韩欧美一区二区三区在线播放 | 亚洲国产精品一区二区三区 | 一级毛片观看 | 国产精品久久久久久久久费观看 | 天天插狠狠插 | 伊人干 | 一级黄色片a级 | 亚洲成人精品久久久 | 欧美在线网站 | 中文字幕在线观看不卡视频 | 欧美日一区二区 | 9久久婷婷国产综合精品性色 | 91麻豆精品国产91久久久久久久久 | 国产综合亚洲精品一区二 | 中文字幕天堂在线 | 日韩一区二区在线观看 | 久久欧美精品 | 在线无码 | 亚洲精品成人在线 | 久久久久国产一级毛片 | 亚洲午夜精品一区二区三区他趣 | 黄色国产 | 久久精品欧美一区二区三区不卡 | 亚洲一区二区三区在线视频 | 91免费观看在线 | 国产精品久久久久婷婷二区次 | 午夜视频一区二区三区 | 中文字幕在线精品 | 日本黄色电影网站 | 欧美 日韩 亚洲 一区 | 国产精品久久久久无码av | 日韩中文在线 | 日本黄色片免费看 | 国产中文字幕一区 | 亚洲精品成人 | 亚洲成人免费 | 国产精品二区三区 | 日韩精品一二三区 | 久久精品国产久精国产 | 成人a视频 | 日韩在线中文字幕视频 | 国产精品999| 五月激情综合婷婷 | 日韩精品一区二区三区四区 | 成人午夜激情 | 日韩精品一区二区三区在线观看 | 女同理伦片在线观看禁男之园 | 不卡欧美| 国产福利在线视频 | 性处破╳╳╳高清欧美 | 九九视频在线 | 91在线视频观看 | 国产一级特黄aaa大片 | 欧美国产日韩精品 | 国产精品一区二区三区免费视频 | 国产亚洲精品久 | 精品国产欧美 | 亚洲精品在线视频 | 99精品欧美一区二区三区综合在线 | 精品自拍视频 | 色女人av| 精品视频一区在线观看 | 欧美美女爱爱视频 | 成人亚洲黄色 | 欧美日韩成人在线 | 天天插天天操天天干 | 国产欧美精品一区二区 | 冷水浴在线观看 | 国产视频二 | 探花在线观看 | 久久精品无码一区二区日韩av | 中文字幕视频免费观看 | 久久精品美女 | 91免费看片神器 | 久久激情视频 | 激情.com| 福利视频1000 | 国产精品成人一区二区三区夜夜夜 | 国产精品69久久久久水密桃 | 欧美日韩一区二区三区四区 | 亚洲视频免费在线 | 欧美精品在线看 | 91久久综合 | 久久国产精品免费一区二区三区 | 欧美一级黄带 | 亚洲日本欧美日韩高观看 | 婷婷国产成人精品视频 | 伊人青青草| 亚洲精品久久久久久国产精华液 | 91精品国产欧美一区二区成人 | 亚洲一区二区精品视频 | 成av在线| 中文字幕国产视频 | 蜜桃视频一区二区三区 | 国产精品视频播放 | 精品无码久久久久国产 | 精品国产91亚洲一区二区三区www | 中文字幕av一区二区三区 | 亚洲人成网亚洲欧洲无码 | 日韩在线中文字幕 | 久久亚洲一区二区三区四区五区高 | 色视频久久 | 亚洲色图综合 | 亚洲成人免费电影 | 日韩激情免费视频 | 亚洲成人免费在线 | 日韩成人 | 天天干狠狠干 | 久久久性色精品国产免费观看 | 久久久久国产 | 国产精品原创av片国产免费 | 91精品久久久久久久久中文字幕 | 亚洲区在线 | 日韩久久网站 | 成人免费淫片aa视频免费 | 欧洲毛片| 欧美日韩一区二区电影 | 欧美在线播放一区二区三区 | 国产98色在线 | 日韩 | 久久精品在线视频 | 亚洲成人一区二区三区 | 日本黄色a级 | 日韩专区在线 | 国产精品亚洲一区 | 91免费在线看 | 麻豆乱码国产一区二区三区 | 亚洲一二三区在线观看 | 91精品国产色综合久久 | 精品久久久久久亚洲综合网 | 成人深夜小视频 | 亚洲一区二区三区四区五区中文 | 中文字字幕一区二区三区四区五区 | 久草视频在线播放 | 国产精品成人3p一区二区三区 | 国产精品福利网站 | 嫩草网站在线观看 | 成人一区二区三区 | 国产精品久久久久久久久久久久冷 | 欧美午夜视频 | 久久精品视频一区 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 99热精品免费 | 欧美成人久久 | www久久九| 欧美一区二区三区在线 | 91看片免费 | 九九热这里只有精品6 | 亚洲麻豆| 一区二区三区视频 | 亚洲精品国偷拍自产在线观看 | 可以免费看黄的网站 | 在线精品亚洲欧美日韩国产 | 91高清视频在线观看 | 成人影音 | 亚洲午夜精品视频 | 少妇淫片aaaaa毛片叫床爽 | 中文字幕高清av | 精品99久久久久久 | 色综合av | 99热国产在线观看 | 精品视频一区二区三区 | www.久久伊人 | 羞羞视频网站免费看 | 二区在线观看 | 在线观看欧美一区 | 国产视频一区二区三区四区 | 蜜臀一区| h视频免费观看 | 91福利视频导航 | 国产女人和拘做受视频 | 日韩一级视频 | 在线观看日韩 | 日本一区二区三区四区 | 国产www网站| 精品永久免费 | 福利毛片| 成年人免费网站 | 久久国产精品亚洲 | 日韩精品一区二区三区第95 | 不卡免费在线视频 | 日本 国产 欧美 | 欧美国产日韩一区 | 国产精品久久久久久久久久东京 | 成人免费视频一区二区 | 国内自拍视频网 | 亚洲视频一区 | 成人av影视在线观看 | 久久亚洲综合 | 精品久久久久久久 | 久久99国产伦子精品免费 | 97国产在线| 成人免费小视频 | 欧美性猛交一区二区三区精品 | 欧美久久一区二区 | 爱干视频| 日韩高清在线一区 | 在线不卡一区 | 亚洲成人久久久 | 国产精品日日夜夜 | 成人一区二区三区在线 | 国产精品一区三区 | 99视频在线免费观看 | 日本一区二区高清不卡 | 一区二区精品视频在线观看 | 特黄一级 | 一级做a爰性色毛片免费1 | 九色网址 | 电影k8一区二区三区久久 | 欧洲一级毛片 | 国产精品三级久久久久久电影 | 久久久国产精品 | 中文成人在线 | 欧美一级二级视频 | 久久一区 | 国产日韩欧美91 | 国产乡下妇女做爰视频 | 国产在线精品一区二区 | 欧美日韩一区二区三区四区 | 天天射美女| 美女超碰 | 一级片在线观看视频 | 天天操天天摸天天干 | 中文字幕一区二区三区精彩视频 | 国产做a爱片久久毛片 | 欧美日韩一 | 日本一区二区高清不卡 | 国产91久久精品一区二区 | 午夜影院免费视频 | 欧洲一区二区在线观看 | 日本久久网 | 99热新 | 日韩精品影院 | 91精品久久久久久久久久 | 欧美日韩国产一区二区三区不卡 | 午夜精品久久久久久久星辰影院 | 91精品国产一区二区三区蜜臀 | 欧美成人精品一区二区男人看 | 久久国产视屏 | 四季久久免费一区二区三区四区 | 海外中文字幕在线观看 | 国产婷婷在线观看 | 国产免费一区二区三区 | 日本午夜在线 | 九九热这里只有精品在线观看 | 一区二区三区日韩 | 在线免费av观看 | 国产精品视频一区二区三区不卡 | 国产精品一区二区三区在线 | 久久久国产精品 | 中文字幕久久精品 | 伊人网网站 | 自拍亚洲 | 五月激情综合网 | 日日干夜夜骑 | 一区二区中文字幕 | 欧美日韩中文字幕在线 | xx视频在线观看 | 亚洲美女网站 | 狠狠操综合网 | 在线观看a视频 | 欧美日韩在线一区二区三区 | 亚洲精品视频网 | av一区二区三区四区 | 国内精品成人 | 国产精品高颜值在线观看 | 午夜欧美 | 欧美激情国产日韩精品一区18 | 亚洲网在线 | 中文字幕国产一区 | 免费高潮视频95在线观看网站 | 九色在线播放 | 一区二区三区在线观看视频 | 日韩日韩| 日韩在线观看中文字幕 | 免费成人精品 | 91精品免费在线观看 | 日韩色av | 美女一级| 一区二区三区av | 一区二区三区欧美 | 欧美日韩亚洲三区 | 国产成人av综合 | 成人福利网 | 精品久久一区二区三区 |