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

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

spring事務隔離級別、傳播機制以及簡單配置方式

瀏覽:5日期:2023-07-24 16:08:49
一、spring支持的事務聲明方式

1. 編程式事務 當系統需要明確的,細粒度的控制各個事務的邊界,應選擇編程式事務。

2. 聲明式事務 當系統對于事務的控制粒度較粗時,應該選擇申明式事務,通過<tx>標簽和<aop>切面形式在xml中進行配置。

3. 無論你選擇上述何種事務方式去實現事務控制,spring都提供基于門面設計模式的事務管理器供選擇,如下是spring事務中支持的事務管理器

事務管理器實現(org.springframework.*)

使用時機

jdbc.datasource.DataSourceTransactionManager

使用jdbc的抽象以及ibatis支持

orm.hibernate.HibernateTransactionManager

使用hibernate支持(默認3.0以下版本)

orm.hibernate3.HibernateTransactionManager

使用hibernate3支持

transaction.jta.JtaTransactionManager

使用分布式事務(分布式數據庫支持)

orm.jpa.JpaTransactionManager

使用jpa做為持久化工具

orm.toplink.TopLinkTransactionManager

使用TopLink持久化工具

orm.jdo.JdoTransactionManager

使用Jdo持久化工具

jms.connection.JmsTransactionManager

使用JMS 1.1+

jms.connection.JmsTransactionManager102

使用JMS 1.0.2

transaction.jta.OC4JJtaTransactionManager

使用oracle的OC4J JEE容器

transaction.jta.WebLogicJtaTransactionManager

在weblogic中使用分布式數據庫

jca.cci.connection.CciLocalTransactionManager

使用jrping對J2EE Connector Architecture (JCA)和Common Client Interface (CCI)的支持

配置示例如下:

<bean id='transactionManager'class='org.springframework.jdbc.datasource.DataSourceTransactionManager'> <propertyname='dataSource' ref='dataSource'/> //引入數據源</bean>二、spring支持7種事務傳播行為

傳播行為

含義

propagation_required(xml文件中為required)

表示當前方法必須在一個具有事務的上下文中運行,如有客戶端有事務在進行,那么被調用端將在該事務中運行,否則的話重新開啟一個事務。(如果被調用端發生異常,那么調用端和被調用端事務都將回滾)

propagation_supports(xml文件中為supports)

表示當前方法不必需要具有一個事務上下文,但是如果有一個事務的話,它也可以在這個事務中運行

propagation_mandatory(xml文件中為mandatory)

表示當前方法必須在一個事務中運行,如果沒有事務,將拋出異常

propagation_nested(xml文件中為nested)

表示如果當前方法正有一個事務在運行中,則該方法應該運行在一個嵌套事務中,被嵌套的事務可以獨立于被封裝的事務中進行提交或者回滾。如果封裝事務存在,并且外層事務拋出異常回滾,那么內層事務必須回滾,反之,內層事務并不影響外層事務。如果封裝事務不存在,則同propagation_required的一樣

propagation_never(xml文件中為never)

表示當方法務不應該在一個事務中運行,如果存在一個事務,則拋出異常

propagation_requires_new(xml文件中為requires_new)

表示當前方法必須運行在它自己的事務中。一個新的事務將啟動,而且如果有一個現有的事務在運行的話,則這個方法將在運行期被掛起,直到新的事務提交或者回滾才恢復執行。

propagation_not_supported(xml文件中為not_supported)

表示該方法不應該在一個事務中運行。如果有一個事務正在運行,他將在運行期被掛起,直到這個事務提交或者回滾才恢復執行

三、spring中的事務隔離級別

隔離級別

含義

isolation_default

使用數據庫默認的事務隔離級別

isolation_read_uncommitted

允許讀取尚未提交的修改,可能導致臟讀、幻讀和不可重復讀

isolation_read_committed

允許從已經提交的事務讀取,可防止臟讀、但幻讀,不可重復讀仍然有可能發生

isolation_repeatable_read

對相同字段的多次讀取的結果是一致的,除非數據被當前事務自生修改。可防止臟讀和不可重復讀,但幻讀仍有可能發生

isolation_serializable

完全服從acid隔離原則,確保不發生臟讀、不可重復讀、和幻讀,但執行效率最低。

臟讀、不可重復讀、幻象讀概念說明:

a.臟讀:指當一個事務正字訪問數據,并且對數據進行了修改,而這種數據還沒有提交到數據庫中,這時,另外一個事務也訪問這個數據,然后使用了這個數據。因為這個數據還沒有提交那么另外一個事務讀取到的這個數據我們稱之為臟數據。依據臟數據所做的操作肯能是不正確的。

b.不可重復讀:指在一個事務內,多次讀同一數據。在這個事務還沒有執行結束,另外一個事務也訪問該同一數據,那么在第一個事務中的兩次讀取數據之間,由于第二個事務的修改第一個事務兩次讀到的數據可能是不一樣的,這樣就發生了在一個事物內兩次連續讀到的數據是不一樣的,這種情況被稱為是不可重復讀。

c.幻象讀:一個事務先后讀取一個范圍的記錄,但兩次讀取的紀錄數不同,我們稱之為幻象讀(兩次執行同一條 select 語句會出現不同的結果,第二次讀會增加一數據行,并沒有說這兩次執行是在同一個事務中)

四、spring事務只讀屬性

spring事務只讀的含義是指,如果后端數據庫發現當前事務為只讀事務,那么就會進行一系列的優化措施。它是在后端數據庫進行實施的,因此,只有對于那些有可能啟動一個新事務的傳播行為(REQUIRED,REQUIRES_NEW,NESTED)的方法來說,才有意義。(測試表明,當使用JDBC事務管理器并設置當前事務為只讀時,并不能發生預期的效果,即能執行刪除,更新,插入操作)

五、spring的事務超時

有的時候為了系統中關鍵部分的性能問題,它的事務執行時間應該盡可能的短。因此可以給這些事務設置超時時間,以秒為單位。我們知道事務的開始往往都會發生數據庫的表鎖或者被數據庫優化為行鎖,如果允許時間過長,那么這些數據會一直被鎖定,影響系統的并發性。

因為超時時鐘是在事務開始的時候啟動,因此只有對于那些有可能啟動新事物的傳播行為(REQUIRED,REQUIRES_NEW,NESTED)的方法來說,事務超時才有意義。

六、事務回滾規則

spring中可以指定當方法執行并拋出異常的時候,哪些異常回滾事務,哪些異常不回滾事務。默認情況下,只在方法拋出運行時異常的時候才回滾(runtime exception)。而在出現受阻異常(checked exception)時不回滾事務。當然可以采用申明的方式指定哪些受阻異常像運行時異常那樣指定事務回滾。

七、單個方法的事務傳播機制(注意這里說的是單個方法)

1、整備工作: spring申明式事務配置,將aop,tx命名空間添加到當前的spring配置文件頭中,這里不在累述

2、定義一個事務AOP通知(add開頭名單方法)

<tx:advice transactionManager='transactionManager'> <tx:attributes> <tx:methodname='add*' propagation='REQUIRED'/> </tx:attributes> </tx:advice>

3、定義一個事務切面,即應該在哪些類的哪些方法上面進行事務切入,多個包體可以使用||隔開

<aop:config> <aop:advisor pointcut='execution(* *..zx.spring.UserService*.*(..))||execution(**..spring.ServiceFacade.*(..))||execution(**..spring.BookService.*(..))' advice-ref='txAdvice'/> </aop:config>

4、事務通知中Propagation設置為7中傳播行為的情況如下(單方法):

@1、方法的事務傳播機制為REQUIRED, REQUIRES_NEW,并且拋出運行時異常時,將回滾事務。當方法拋出受檢查的異常時,將不會回滾事務。

@2、方法的事務傳播機制為MANDATORY,由于單個方法執行沒有指定任何事務傳播機制,因此拋出異常。

@3、方法的事務傳播機制為NESTED,由于NESTED內嵌事務,如果沒有外層事務,則新建一個事務,行為同REQUIRED一樣。

@4、方法的事務傳播機制為NEVER,由于發生運行時異常,事務本應該回滾,但是事務傳播機制為NEVER,因此找不到事務進行回滾。

@5、方法的事務傳播機制為NOT_SUPPORTED,單個方法被執行時,不會創建事務。如果當前有事務,將封裝事務掛起,知道該方法執行完成再恢復封裝事務,繼續執行。

@6、方法的事務傳播機制為SUPPORTS,單個方法 調用時supports行為同NEVER一樣,不會創建事務,只是如果有事務,則會加入到當前事務中去。

八、多個方法間的事務傳播機制(注意這里說的是多個方法)

1、整備工作: spring申明式事務配置,將aop,tx命名空間添加到當前的spring配置文件頭中,不在累述。

2、定義一個事務AOP通知(add開頭名單方法)

<tx:advice transactionManager='transactionManager'> <tx:attributes> <tx:methodname='add*' propagation='REQUIRED'/><tx:methodname='update*' propagation='REQUIRED'/> </tx:attributes> </tx:advice>

3、定義一個事務切面,即應該在哪些類的哪些方法上面進行事務切入

<aop:config> <aop:advisor pointcut='execution(**..zx.spring.UserService*.*(..))||execution(**..spring.ServiceFacade.*(..))||execution(**..spring.BookService.*(..))' advice-ref='txAdvice'/> </aop:config>

4、事務通知中Propagation設置為7中傳播行為的情況如下(多方法間傳遞):

@1、多個方法的事務傳播機制都為REQUIRED,由于REQUIRED方式是如果有一個事務,則加入事務中,如果沒有,則新建一個事務,也就是說方法1一開始就會創建一個事務,而方法2發現有事務存在則會加入到事務中,方法2拋出運行時異常,整個事務將會回滾。如果方法2拋出的是可捕獲異常,事務將不起作用,方法1執行成功插入,方法2異常中斷。或者我們將方法2設置rollback-for屬性,那么在指定的異常之內事務都將回滾

@2、方法1的事務傳播機制為REQUIRED,方法2的事務傳播機制為NEVER,由于方法1會創建一個事務,而方法2是NEVER,不應該在事務中運行,因此導致了沖突會報錯。Existingtransaction found for transaction marked with propagation ’never’

@3、方法1的事務傳播機制為REQUIRED,方法2的事務傳播機制為MANDATORY,執行機制和@1一致。

@4、方法1的事務傳播機制為REQUIRED,方法2的事務傳播機制為NESTED,內嵌事務,也就是方法1執行體內放入方法2的調用,由于方法2的事務傳播機制為NESTED內嵌事務,因此,開始一個新的事務。并且方法2內部拋出RuntimeException,因此內部嵌套事務回滾到外層事務創建的保存點。

注意這個地方,我們拋出的是運行時異常,如果我們拋出受檢查的異常,那么spring會默認的忽略此異常。

如果內層事務拋出檢查異常,那么外層事務將忽略此異常,但是會產生一個問題。那就是:外層事務使用jdbc的保存點API來實現嵌套事務,

但是數據庫不一定支持。我做測試的是oracle數據庫,jdbc事務管理器在內層事務拋出檢查異常后,將會在內層事務結束后,釋放外層事務創建的保存點,這個時候數據庫不一定支持。因此可能會拋出如下異常java.sql.SQLException:不支持的特性。

總結: 對于NESTED內層事務而言,內層事務獨立于外層事務,可以獨立遞交或者回滾,如果內層事務拋出的是運行異常,外層事務進行回滾,內層事務也會進行回滾。

@5、方法1的事務傳播機制為REQUIRED,方法2的事務傳播機制為REQUIRES_NEW。(情況比較復雜)

情況一,方法2不拋出任何異常下:方法1先創建事務,但是方法2也要運行在自己的事務中,因此也會創建一個事務,方法1的事務將會掛起,直到方法2的事務執行完成才會接著事務的提交完成

情況二,方法2拋出運行時異常下: 對于REQUIRES_NEW事務傳播機制,如果被調用端(方法2)拋出運行時異常,則被調用端事務回滾,如果調用段代碼(方法1)捕獲了被調用端拋出的運行時異常,那么調用端事務提交,不回滾。反之,如果調用段代碼未捕獲被調用端拋出的運行時異常,那么調用端事務回滾,不提交。

@6、方法1的事務傳播機制為REQUIRED,方法2的事務傳播機制為SUPPORTS,方法1創建一個事務,方法2加入到當前事務中,方法2拋出運行異常將進行事務的回滾,如果方法1不具有事務,由于方法2的特性是事務環境可有可無,方法2也不會運行在事務中,所以也不會進行回滾。如果方法2拋出的是受檢查異常,異常將會忽略,事務將會提交,當然還有別的情況沒有一一驗證

@7、方法1的事務傳播機制為REQUIRED,方法2的事務傳播機制為NOT_SUPPORTED,由于方法2事務特性,方法1的事務將會被掛起,方法2拋出運行時異常,但是方法2是不在事務環境中運行的,所以回滾不了,而方法1中未捕獲此異常,將進行事務回滾,如果方法2拋出的是運行異常,即使方法1沒有捕獲此異常,也將被忽略,不進行事務的回滾。

PS:以上都是對粗粒度的方法的事務操作,都是在數據無問題,特意拋出異常的情況下來判斷事務的特性,并在什么情況下事務將會起作用。而且spring的事務,在服務類內部的方法間調用,有可能存在被調用方法配置的事務不起作用,調用方在加上事務就起作用了。還值得測試深究

九、spring聲明式事務配置的幾種方式

1、基于@Transactional注解(推薦配置)

<!-- 事務管理器,對mybatis操作數據庫進行事務控制,spring使用jdbc的事務控制類 --><bean class='org.springframework.jdbc.datasource.DataSourceTransactionManager'><property name='dataSource' ref='dataSourceSuport'></property></bean>

<!—開啟spring 事務注解支持 mode='aspectj'表示采用切面 mode='proxy'表示代理模式(默認) --> <tx:annotation-driven transaction-manager='transactionManager' />

MyBatis自動參與到spring事務管理中,無需額外配置,只要org.mybatis.spring.SqlSessionFactoryBean引用的數據源與DataSourceTransactionManager引用的數據源一致即可,否則事務管理會不起作用。

@Transactional可以作用于接口、接口方法、類以及類方法上。當作用于類上時,該類的所有 public 方法將都具有該類型的事務屬性,同時,我們也可以在方法級別使用該標注來覆蓋類級別的定義。 雖然@Transactional 注解可以作用于接口、接口方法、類以及類方法上,但是 Spring 建議不要在接口或者接口方法上使用該注解,因為這只有在使用基于接口的代理時它才會生效。另外,@Transactional 注解應該只被應用到public 方法上,這是由 Spring AOP 的本質決定的。如果你在 protected、private 或者默認可見性的方法上使用@Transactional 注解,這將被忽略,也不會拋出任何異常。默認情況下,只有來自外部的方法調用才會被AOP代理捕獲,也就是,類內部方法調用本類內部的其他方法并不會引起事務行為,即使被調用方法使用@Transactional注解進行修飾。

2、基于<tx>與<aop>切面的方式進行事務配置

<!-- 事務管理器,對mybatis操作數據庫進行事務控制,spring使用jdbc的事務控制類 --> <bean class='org.springframework.jdbc.datasource.DataSourceTransactionManager'> <property name='dataSource' ref='dataSourceSuport'></property> </bean> <!-- spring 事務注解 mode='aspectj'表示采用切面 mode='proxy'表示代理模式(默認) --> <tx:annotation-driven transaction-manager='transactionManager' /> <!-- 通知 映射到上面的事務管理器--> <tx:advice id='txAdive'transaction-manager='transactionManager'> <tx:attributes> <!--name什么方法名稱開頭 傳播行為 REQUIRED必須事務 rollback-for什么異常類進行回滾,逗號隔開 --> <tx:method name='save*' propagation='REQUIRED'rollback-for='java.lang.DaoException'/> <tx:method name='delete*' propagation='REQUIRED'rollback-for='java.lang.DaoException'/> <tx:method name='insert*' propagation='REQUIRED'rollback-for='java.lang.DaoException'/> <tx:method name='update*' propagation='REQUIRED'rollback-for='java.lang.DaoException'/> <!-- 不是必須的,而且查詢類型為事務只讀的可以提高數據庫性能優化 --> <tx:method name='find*' propagation='SUPPORTS'read-only='true'/> <tx:method name='get*' propagation='SUPPORTS'read-only='true'/> <tx:method name='select*' propagation='SUPPORTS'read-only='true'/> </tx:attributes> </tx:advice> <!-- aop切面并配置切入點入進行事物管理 指向上面的映射 --> <aop:config> <aop:pointcut expression='execution(* com.zht.service.serviceImpl.*.*(..))' /> <aop:advisor advice-ref='txAdive' pointcut-ref='txPointcut'/> </aop:config> <aop:aspectj-autoproxy proxy-target- />

3、基于TransactionProxyFactoryBean (bean工廠代理)--需要顯示的為每一個業務類配置,每多一個業務類就要進行添加,這里不在描述。

4、基于TransactionInterceptor(事務攔截器)的方式進行配置。

<bean id='transactionManager'class='org.springframework.orm.hibernate3.HibernateTransactionManager'><propertyname='sessionFactory'><ref bean='sessionFactory'/></property></bean><!--事務攔截器,激活事務管理器所必須的bean --><bean id='transactionInterceptor'class='org.springframework.transaction.interceptor.TransactionInterceptor'><property name='transactionManager'><ref bean='transactionManager' /></property><!--配置事務屬性 --><property name='transactionAttributes'><props><prop key='delete*'>PROPAGATION_REQUIRED</prop><prop key='add*'>PROPAGATION_REQUIRED</prop><prop key='update*'>PROPAGATION_REQUIRED</prop><prop key='save*'>PROPAGATION_REQUIRED</prop><prop key='find*'>PROPAGATION_REQUIRED,readOnly</prop></props></property></bean><!--定義事務處理代理bean,他需要兩個屬性,一個是指定需要代理的bean,另一個是代理bean所需的事務攔截器 --><bean class='org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator'><property name='beanNames'><list><value>tempService</value></list></property><propertyname='interceptorNames'><list><value>transactionInterceptor</value></list></property></bean><!--業務邏輯層 --><bean class='com.cj.transaction.service.TempService'abstract='false' lazy-init='default'autowire='default' dependency-check='default'><property name='userDAO'><ref bean='userDAO' /></property><property name='deptDAO'><ref bean='deptDAO' /></property></bean><bean class='com.cj.transaction.hibernate.UserDAO'><property name='sessionFactory'><ref bean='sessionFactory'/></property></bean><bean id='deptDAO'class='com.cj.transaction.hibernate.DeptDAO'><property name='sessionFactory'><ref bean='sessionFactory'/></property></bean>

如果模塊過多話,可以考慮根據bean的名稱用自動創建事務代理的方式

<!--自動代理 --><bean id='autoproxy'class='org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator'><property name='beanNames'><list><value>*Service</value></list></property><property name='interceptorNames'><list><value>transactionInterceptor</value></list></property></bean>

PS:以上為自己收集以及在spring+springMVC+mybatis框架測試總結的一些內容,特記錄下,如果有理解錯的地方望拍磚指出,感激不盡。希望能給大家一個參考,也希望大家多多支持好吧啦網。。

標簽: Spring
相關文章:
主站蜘蛛池模板: 国产精品久久久久婷婷二区次 | 免费观看一区二区三区毛片 | 国产日韩欧美 | 亚州中文字幕 | 欧美亚洲视频在线观看 | 超碰在线播 | 99爱免费观看 | 欧美日韩高清在线一区 | 久久男人的天堂 | 亚洲精品在线视频观看 | 成人欧美一区二区三区白人 | 图片区 国产 欧美 另类 在线 | 日韩精品1区2区3区 国产精品国产成人国产三级 | 亚洲国产一区视频 | 欧美性网| 影音先锋资源av | 国产精品亚洲视频 | 亚洲欧美日韩一区二区 | 国产精品久久 | 在线观看毛片网站 | 中文字幕av亚洲精品一部二部 | 国产精品成人在线观看 | 最新国产中文字幕 | 久久夜视频| 亚洲视频一区二区 | 欧美精品免费在线观看 | 免费一级毛片 | 超级碰在线视频 | 四虎影视 | 超碰8| 久热热| 精品国产乱码简爱久久久久久 | 精品久久国产 | 天天干天天草 | 成人不卡 | 精品免费久久 | 久久久久久久久99精品 | 日本精品在线 | 亚洲免费看片 | 国产精品久久久久久亚洲调教 | 中文字幕网在线 | 国产女人免费看a级丨片 | 成人精品在线视频 | 日韩成人在线一区 | 老司机深夜福利视频 | 国产成人一区 | 黑色丝袜脚足j国产在线看68 | 日韩电影三级 | 欧美二区三区 | 国产www视频 | 日本午夜网 | 国产夜夜夜 | 亚洲一区二区三区中文字幕 | 国产一区二区三区四区在线观看 | 成人在线精品视频 | 欧美国产三级 | 国产成人免费视频网站高清观看视频 | 一级做a爰| 亚洲视频在线免费观看 | www.fefe66.com| 欧美日韩91 | 欧美福利网 | 色综合成人 | 久久精品久久久久久 | 91高清免费看 | 欧美久久久久久久久久伊人 | 欧美视频在线一区 | 一区二区色 | 亚洲一区二区三区四区在线观看 | 国产精品久久久久久久久久免费看 | 国产精品久久久久久久岛一牛影视 | 欧美日韩成人在线 | 二区三区在线观看 | 高清视频一区 | 色婷婷基地 | 高清久久| 日韩综合区| 国产中文字幕在线观看 | 成人久久久久久久久 | 欧美在线观看免费观看视频 | 日本一区二区不卡 | www.成人久久| 亚洲乱码国产乱码精品精 | 狠狠狠干| 国产精品久久久久久久久动漫 | 中文字幕 国产精品 | 成人欧美一区二区三区白人 | 亚洲精品自在在线观看 | 欧美日韩视频 | 不卡视频一区 | 国产一区二区在线免费观看 | 日韩一区二区三区在线播放 | 久久首页 | 中文字幕一区二区三区四区不卡 | 精品久久久久久久 | 国产韩国精品一区二区三区 | 欧美精品一区二区三区中文字幕 | 国产精品久久久久久久久久免费看 | 日韩专区中文字幕 | 毛片av片| 日韩成人中文字幕 | 国产免费看 | 欧美精品一区二区三区在线 | 国产一级做a爰片在线看免费 | 91精品久久久久久久久 | 国产精品美女久久久久久免费 | 操皮视频 | 国产成人精品久久二区二区91 | 亚洲综合视频一区 | 久久综合久久受 | 日韩精品一区二区在线观看 | 一区二区三区久久久久久 | www.欧美.com| 一级黄色录象片 | 精品久久久久久久久久久 | 91嫩草在线| 一级黄色片在线 | 欧美日韩在线观看中文字幕 | 一级黄色录像在线观看 | 亚洲网站在线观看 | 国产在线激情视频 | 最新日韩视频 | 亚洲444kkkk在线观看最新 | 欧美视频三区 | 天堂在线一区二区 | 国产毛片毛片 | 91精品国产综合久久久久久丝袜 | 亚洲一区二区三 | 日韩精品成人 | 色先锋av资源中文字幕 | 国产欧美精品一区二区 | 午夜在线| 麻豆沈芯语在线观看 | 美女久久久久 | 久久香蕉国产视频 | 国产高清久久久 | 91久久久久久久久 | 精品一区二区三区久久 | 欧美日韩亚洲一区二区 | 欧美日韩激情一区二区三区 | 久热免费在线 | 一级毛片aaaaaa免费看 | 国产精品国产精品国产专区不片 | 亚洲a精品 | 自拍偷拍小视频 | 欧美一区二区三区 | 久久成人免费视频 | 欧美1区| 日本在线一区二区 | 成人a视频 | 自拍偷拍视频网站 | 国产免费视频在线 | 怡红院免费在线视频 | 精品国产91亚洲一区二区三区www | 日本一区二区精品 | 精品乱子伦一区二区三区 | 国产日韩精品视频 | 欧美日韩综合精品 | 精品亚洲一区二区三区 | 亚洲一区二区三区爽爽爽爽爽 | 亚洲精品中文字幕乱码无线 | 亚洲日本中文 | 欧美日韩亚洲视频 | 亚洲毛片在线观看 | 国产综合精品 | 久热中文字幕 | 欧美二区三区 | 无套内谢孕妇毛片免费看红桃影视 | 一级黄色大片 | 久草网站 | 91啦 | 欧美午夜寂寞影院 | 亚洲 成人 av | 一区二区在线 | 免费视频久久久久 | 中文一区| 日本欧美大片 | 欧美一区二区三区在线观看视频 | 91精品国产综合久久香蕉922 | 精品国产高清一区二区三区 | www.麻豆 | 久久精品国产一区 | 欧美日韩视频在线 | 精品亚洲网 | 97精品一区二区三区 | 欧洲一区在线 | 欧美激情一区二区三区蜜桃视频 | 欧美国产视频一区 | 国产成人av一区 | 亚洲一区二区精品在线观看 | 国产精品久久久爽爽爽麻豆色哟哟 | 男人的天堂一级片 | 91精品久久久久久久久 | 国产视频综合在线 | 国产成人一区二区三区 | av免费在线观看网站 | 国产成人福利在线观看 | 涩涩导航 | 精品久久久久久久久久久久 | 一区二区三区在线播放 | 欧美精品免费在线观看 | 欧美一卡二卡在线观看 | 精品在线一区 | 亚洲成人综合在线 | 日韩在线播放一区二区三区 | 亚洲第一福利视频 | 欧美福利在线观看 | 久久99深爱久久99精品 | 日韩在线欧美 | 成人精品三级av在线看 | 激情欧美一区二区三区中文字幕 | 久久国产精品免费一区二区三区 | 久久久综合视频 | 五月激情综合 | 91传媒在线播放 | 亚洲高清视频在线观看 | 国产精品高潮呻吟av久久4虎 | 国偷自产av一区二区三区 | 狠狠操狠狠操 | 国产高清一区二区三区 | 久久久国产精品 | 天堂网av2020 | 91观看| 久久精品亚洲精品国产欧美 | 亚洲国产高清高潮精品美女 | 亚洲精品一区二区三区在线看 | 日韩成人国产 | 最新日韩av | 精品视频在线观看 | 国产日韩精品视频 | 午夜窝窝 | 日韩成人免费 | 成人在线不卡 | 欧美 日韩 国产 一区 | 国产精品18| av在线一区二区三区 | 中文字幕乱码亚洲精品一区 | 亚洲毛片在线 | 伊人天天操 | 久在线视频 | 一区二区三区中文字幕 | 欧美一区 | 91性高湖久久久久久久久网站 | 一级片大全| 亚洲高清中文字幕 | 亚洲国产91 | 久久久久国产精品 | 国产精品自拍视频网站 | 成人天堂资源www在线 | 精品在线免费视频 | 久久久国产精品入口麻豆 | 久久51| 综合色久| 羞羞视频在线免费观看 | 91视频日韩 | 国产日韩欧美精品一区二区 | 日韩精品视频在线观看一区二区 | 精品成人av| 久久精品亚洲精品国产欧美kt∨ | 国产黄色免费小视频 | 欧美日韩视频在线观看免费 | 日韩欧美黄色 | 国产福利在线观看视频 | 国产黄视频在线 | 中文字幕爱爱视频 | 国产精品3区 | 91免费观看国产 | 中文字幕爱爱视频 | 欧洲一级毛片 | 国产精品毛片久久久久久 | 日本午夜网| 91视频免费在线 | 黑人巨大精品欧美一区免费视频 | 久久久久成人精品 | 日韩视频在线观看一区 | 精品一区二区三区四区五区 | 亚洲综合大片69999 | 国产精品地址 | 亚洲精品一二三区 | 亚洲v欧美 | 国产一区精品电影 | 中文字幕视频在线观看 | 久久久久中文字幕 | 日本在线视频一区二区 | 色69av| 久久99er6热线精品首页蜜臀 | 一区二区三区精品 | 2021最新热播中文字幕-第1页-看片视频 青青青久草 | 一区三区在线观看 | 国产成人精品一区二区视频免费 | 久久精品国产亚洲一区二区三区 | www.se天堂 | 亚洲一区中文字幕在线 | 一级片在线观看网站 | 国产成人精品网站 | 精品久久久久久亚洲综合网 | 99成人精品| 国产视频精品一区二区三区 | 欧美精品免费在线 | 欧美 日韩 | 一区二区三区 在线 | 国产在线精品一区二区三区 | 免费视频二区 | 国产精一区 | 欧美视频免费在线观看 | 欧美日韩a v| 69黄在线看片免费视频 | 精品久久久久国产免费 | 日韩精品在线播放 | 成人免费视频网站在线观看 | 91精品国产一区二区 | 国产精品一区亚洲二区日本三区 | 人人看人人草 | 国产成人高清视频 | 久久国产婷婷国产香蕉 | 蜜桃视频一区二区三区 | 国产精品一区在线观看 | 精品一区二区三区中文字幕 | 国产精品粉嫩白浆在线观看 | 成人高清在线 | 91精品久久久久久9s密挑 | 91av视频在线观看 | 日韩电影一区 | 黄色片在线免费观看 | 久久成人18免费网站 | a∨在线观看| 欧美成人h版在线观看 | 中文字幕 欧美 日韩 | 国产午夜久久久久 | 看欧美黄色录像 | 91电影在线 | 亚洲成人一区二区三区 | 中文字幕av在线 | 亚洲国产精品一区二区三区 | 国产精品第一 | 看片一区| 中文字幕亚洲欧美 | 国产精品久久久久久久午夜片 | 中文字幕视频在线 | 国产高清在线精品一区 | 亚洲精品久久久一区二区三区 | 日韩中文字幕在线观看 | 亚洲精品日韩激情欧美 | 日韩成人在线视频 | 香蕉视频在线看 | 亚洲麻豆精品 | 国产精品一区二区不卡 | 在线观看欧美一区 | 中文字幕不卡在线88 | 精品国模一区二区三区欧美 | 操操操夜夜操 | 日韩精品免费在线观看 | 亚洲一区二区精品在线观看 | 色吧av| www.99久久久 | 亚洲一区国产视频 | 免费在线黄色电影 | 日韩欧美一区二区在线观看视频 | h免费在线 | 国产免费av一区二区三区 | se69色成人网wwwsex | 国产激情偷乱视频一区二区三区 | 91精品久久久久久9s密挑 | 国产乱码精品一区二区三区中文 | 一区二区成人在线 | 久久精品这里热有精品 | 久久久国产视频 | 亚洲综合色视频在线观看 | 成人在线播放 | 伊人一区 | 亚洲综合无码一区二区 | 国产精品精品 | 成人高清视频在线 | 日韩精品在线一区 | 精品国产高清一区二区三区 | 人人种亚洲 | 日日摸日日碰夜夜爽不卡dvd | 91免费电影 | 青青伊人久久 | 日韩欧美在线一区二区 | 五月婷婷色 | 国产在线观看高清 | 久久国产精品免费一区二区三区 | 国产视频三区 | 日韩毛片免费看 | 在线观看亚洲视频 | 一区二区在线免费观看 | 91资源在线观看 | 一区二区视频 | 日韩在线不卡 | 欧美一级在线观看 | 日韩中文字幕在线 | 中文字幕一区二区三区乱码在线 | 亚洲一区二区三区视频 | 亚洲综合国产 | 国产精品污www在线观看 | 综合一区 | 精品欧美日韩 | 精品视频网站 | 国产一级电影网 | 伊人狠狠干| 一区二区免费在线视频 | 亚洲一区中文字幕 | 久久伊人官网 | 亚洲一区二区三区四区在线 | 精品中文字幕在线 | 亚洲伊人久久网 | 欧美在线一区二区三区 | 国产精品久久久久久久久久久不卡 | 亚洲精品在线免费 | 国产欧美精品一区 | 欧洲另类交 | 亚洲自拍在线观看 | 日韩视频免费看 | 狠狠干欧美 | 久久亚洲一区二区三区四区五区高 | 亚洲成人免费在线 | 91精品一区二区三区久久久久久 | www.日韩| 成人精品视频一区二区三区 | 在线视频成人 | 欧美日韩在线免费观看 | 欧美精品三区 | 国产一级在线观看 | www.久久 | 久久波多野结衣 | 高清国产视频 | 在线观看欧美成人 | 国产精品一区二区三区在线 | 一区二区三区免费 | 日韩精品免费观看 | 国产日韩在线视频 | 日韩一区二区三区福利视频 | 性做久久久 | 在线观看一区二区三区四区 | 久久精品99国产精品亚洲最刺激 | 久久福利电影 | 色猫猫国产区一区二在线视频 | 亚洲一区二区三 | 日韩一区在线视频 | 国产ts视频 | 国产一区久久精品 | 四虎视频| 亚洲视频一区二区三区四区 | www.久草.com | 欧美激情一区二区三区四区 | 国产一区 日韩 | 亚洲高清在线观看 | 国产午夜久久 | 污视频在线观看免费 | 亚洲精品久久久久久下一站 | 国产精品免费观看 | 国产另类一区 | 欧美久热 | 中国特级黄色片 | 黄色高清视频在线观看 | 亚洲网站在线观看 | 97在线免费观看 | 一级一级国产片 | 亚洲区视频在线 | 在线精品观看 | 天天综合网7799精品 | 亚洲欧美激情视频 | 国产精品96久久久久久久 | 国产综合亚洲精品一区二 | 亚洲国产网站 | 久国产精品 | 最新国产精品精品视频 | 国内av网站 | 久久久久香蕉视频 | 欧洲免费视频 | 9999久久久久 | 青青草一区 | 久久精品欧美一区二区三区不卡 | 综合99| 国产大学生援交视频在线观看 | 亚洲国产婷婷 | 午夜精品导航 | 国产剧情一区二区 | 国产成人精品久久二区二区 | 日韩欧美国产一区二区 | 国产高清在线精品一区二区三区 | 久久精品国产免费 | 2018国产精品 | 国产福利在线观看 | 久久久久久亚洲精品 | 一级片网 | vagaa欧洲色爽免影院 | 久久国 | 欧美亚洲一区二区三区 | 精品免费视频 | 欧美成人精品 | www.中文字幕在线 | 丁香婷婷在线 | 最新日韩精品在线观看 | 爱爱网址| 久久av综合网 | 亚洲不卡在线 | 日本成人黄色网址 | 亚洲高清视频在线观看 | 亚洲欧美一区二区三区在线 | 国产精品成人3p一区二区三区 | 日韩一区二区在线观看 | 亚洲风情在线观看 | 中文字幕一区二区三区四区 | 色婷婷综合网 | 久久福利电影 | 成av人在线 | 综合伊人 | 国产日韩精品视频 | 国产成人精品一区二区 | 99精品免费视频 | 草草网 | 中文字幕91| 亚洲一区中文字幕在线观看 | 久久99国产精一区二区三区 | 国产精品成人3p一区二区三区 | 午夜免费一区二区播放 | 久久综合九色综合欧美狠狠 | www.you日本 | 欧美综合激情 | 久久国产精品99国产 | 一级淫片免费 | 91麻豆精品国产91久久久久久 | 免费在线观看成年人视频 | 天天拍天天操 | 欧美精品成人一区二区在线 | 国产精品午夜电影 | 91人人澡人人爽 | 久久国产一区视频 | 国产一区二区观看 | 人人看人人射 | 日韩在线不卡 | 欧美xxxⅹ性欧美大片 | 1级毛片 | 国产精品视频一区二区三区四 | 精品国产不卡一区二区三区 | 一级全黄少妇性色生活片免费 | 欧洲一区二区三区 | 亚洲情网站| 日韩精品一区二区三区四区视频 | 久久精品一区二区三区四区 | 国产欧美一区二区精品性色 | 天堂中文网 | 国产成人久久精品麻豆二区 | 日本高清中文字幕 | 日韩中文字幕在线视频 | 亚洲精品一区二区三区在线播放 | 欧美在线网站 | 美女福利网站 | 国产激情性色视频在线观看 | 国产目拍亚洲精品99久久精品 | 成年无码av片在线 | 久久中文字幕一区 | 天天澡天天狠天天天做 | 日本三级一区二区 | 国产精品高颜值在线观看 | 久久免费视频网 | 亚洲免费视频大全 | 久久99精品久久久久子伦 | 欧美午夜视频在线观看 | 国产在线精品一区二区三区 | 精品久久久久久国产 | 一级大片一级一大片 | 免费国产黄色大片 | 香蕉久久久久久 | 2018狠狠干| 久久国产精品久久精品 | 91久久精品一区二区三区 | 天堂中文资源在线 | 国产在线精品一区二区三区 | 草久久久 | 2020国产在线| 性瘾调教校园h | 中文字幕高清av | 日韩一片| 在线观看精品视频网站 | 午夜伦理影院 | 一区在线看 | 日韩久久久久 | 成人a在线视频免费观看 | 欧美日韩一区二区不卡 | 精品国产91久久久久久久 | 国产www在线| 一级做a爰 | 国产精品a久久久久 | 亚洲无吗电影 | 91视频88av | 五月婷婷综合激情 | www婷婷av久久久影片 | 人人草视频在线观看 | 狠狠干很很操 | 久热免费在线观看 | 亚洲a在线播放 | 国产传媒在线视频 | 日本a v网站| 亚洲精品成人在线 | 最新国产在线 | 性一交一乱一透一a级 | 亚洲一区久久久 | 天天插天天操天天干 | 日韩中文一区二区 | 99久久婷婷国产综合精品电影 | 免费观看毛片 | 久久新| 99re在线视频 | 国产欧美综合一区二区三区 | 涩涩视频网站在线观看 | 91精品久久久久久久 | 欧美日韩亚洲综合 | 亚洲欧美成人影院 | 羞羞视频网站在线看 | 人人草人人 | 国产一区在线看 | 久久精品国产77777蜜臀 |