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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

spring jdbctemplate源码跟踪

發布時間:2025/4/5 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring jdbctemplate源码跟踪 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

閑著沒事,看看源碼也是一種樂趣!

java操作數據庫的基本步驟都是類似的:

1. 建立數據庫連接

2. 創建Connection

3. 創建statement或者preparedStateement

4. 執行sql,返回ResultSet

5. 關閉resultSet

5.關閉statement

6.關閉Connection

Spring對數據庫的操作在jdbc上面做了深層次的封裝,使用spring的注入功能,可以把DataSource注冊到JdbcTemplate之中。

1. 構造函數,三種形式

/*** Construct a new JdbcTemplate for bean usage.* <p>Note: The DataSource has to be set before using the instance.* @see #setDataSource*/public JdbcTemplate() {}/*** Construct a new JdbcTemplate, given a DataSource to obtain connections from.* <p>Note: This will not trigger initialization of the exception translator.* @param dataSource the JDBC DataSource to obtain connections from*/public JdbcTemplate(DataSource dataSource) {setDataSource(dataSource);afterPropertiesSet();}/*** Construct a new JdbcTemplate, given a DataSource to obtain connections from.* <p>Note: Depending on the "lazyInit" flag, initialization of the exception translator* will be triggered.* @param dataSource the JDBC DataSource to obtain connections from* @param lazyInit whether to lazily initialize the SQLExceptionTranslator*/public JdbcTemplate(DataSource dataSource, boolean lazyInit) {setDataSource(dataSource);setLazyInit(lazyInit);afterPropertiesSet();}

一種思路:將datasource注入到JdbcTemplate。

2.獲取Connection

??

//-------------------------------------------------------------------------// Methods dealing with static SQL (java.sql.Statement)//------------------------------------------------------------------------- @Overridepublic <T> T execute(StatementCallback<T> action) throws DataAccessException {Assert.notNull(action, "Callback object must not be null"); Connection con = DataSourceUtils.getConnection(getDataSource());Statement stmt = null;try { Connection conToUse = con;if (this.nativeJdbcExtractor != null &&this.nativeJdbcExtractor.isNativeConnectionNecessaryForNativeStatements()) {conToUse = this.nativeJdbcExtractor.getNativeConnection(con);}stmt = conToUse.createStatement();applyStatementSettings(stmt);Statement stmtToUse = stmt;if (this.nativeJdbcExtractor != null) {stmtToUse = this.nativeJdbcExtractor.getNativeStatement(stmt);}T result = action.doInStatement(stmtToUse);handleWarnings(stmt);return result;}catch (SQLException ex) {// Release Connection early, to avoid potential connection pool deadlock// in the case when the exception translator hasn't been initialized yet. JdbcUtils.closeStatement(stmt);stmt = null;DataSourceUtils.releaseConnection(con, getDataSource());con = null;throw getExceptionTranslator().translate("StatementCallback", getSql(action), ex);}finally {JdbcUtils.closeStatement(stmt);DataSourceUtils.releaseConnection(con, getDataSource());}}

Connection的獲取方式:

2.1. 若是datasource直接使用jdbc而沒有使用諸如c3p0,dbcp等第三方插件時則從下面的方法獲取:

Connection con = DataSourceUtils.getConnection(getDataSource()); /*** Actually obtain a JDBC Connection from the given DataSource.* Same as {@link #getConnection}, but throwing the original SQLException.* <p>Is aware of a corresponding Connection bound to the current thread, for example* when using {@link DataSourceTransactionManager}. Will bind a Connection to the thread* if transaction synchronization is active (e.g. if in a JTA transaction).* <p>Directly accessed by {@link TransactionAwareDataSourceProxy}.* @param dataSource the DataSource to obtain Connections from* @return a JDBC Connection from the given DataSource* @throws SQLException if thrown by JDBC methods* @see #doReleaseConnection*/public static Connection doGetConnection(DataSource dataSource) throws SQLException {Assert.notNull(dataSource, "No DataSource specified"); ConnectionHolder conHolder = (ConnectionHolder) TransactionSynchronizationManager.getResource(dataSource);if (conHolder != null && (conHolder.hasConnection() || conHolder.isSynchronizedWithTransaction())) {conHolder.requested();if (!conHolder.hasConnection()) {logger.debug("Fetching resumed JDBC Connection from DataSource");conHolder.setConnection(dataSource.getConnection());}return conHolder.getConnection();}// Else we either got no holder or an empty thread-bound holder here. logger.debug("Fetching JDBC Connection from DataSource");Connection con = dataSource.getConnection();if (TransactionSynchronizationManager.isSynchronizationActive()) {logger.debug("Registering transaction synchronization for JDBC Connection");// Use same Connection for further JDBC actions within the transaction.// Thread-bound object will get removed by synchronization at transaction completion.ConnectionHolder holderToUse = conHolder;if (holderToUse == null) {holderToUse = new ConnectionHolder(con);}else {holderToUse.setConnection(con);}holderToUse.requested();TransactionSynchronizationManager.registerSynchronization(new ConnectionSynchronization(holderToUse, dataSource));holderToUse.setSynchronizedWithTransaction(true);if (holderToUse != conHolder) {TransactionSynchronizationManager.bindResource(dataSource, holderToUse);}}return con;}

?ConnectionHolder間接繼承了ResourceHolder接口,ResourceHolder接口允許spring的事務基礎可以在必要時檢索和重置。通常我們只要繼承ResourceHolderSupport即可。

2.2. 若使用了第三方插件時,則需要從插件中提取Connection。

conToUse = this.nativeJdbcExtractor.getNativeConnection(con);

?第三方插件的關系如下:

其具體方法如下:

/*** Check for a ConnectionProxy chain, then delegate to doGetNativeConnection.* <p>ConnectionProxy is used by Spring's TransactionAwareDataSourceProxy* and LazyConnectionDataSourceProxy. The target connection behind it is* typically one from a local connection pool, to be unwrapped by the* doGetNativeConnection implementation of a concrete subclass.* @see #doGetNativeConnection* @see org.springframework.jdbc.datasource.ConnectionProxy* @see org.springframework.jdbc.datasource.DataSourceUtils#getTargetConnection* @see org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy* @see org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy*/@Overridepublic Connection getNativeConnection(Connection con) throws SQLException {if (con == null) {return null;}Connection targetCon = DataSourceUtils.getTargetConnection(con);Connection nativeCon = doGetNativeConnection(targetCon);if (nativeCon == targetCon) {// We haven't received a different Connection, so we'll assume that there's// some additional proxying going on. Let's check whether we get something// different back from the DatabaseMetaData.getConnection() call.DatabaseMetaData metaData = targetCon.getMetaData();// The following check is only really there for mock Connections// which might not carry a DatabaseMetaData instance.if (metaData != null) {Connection metaCon = metaData.getConnection();if (metaCon != null && metaCon != targetCon) {// We've received a different Connection there:// Let's retry the native extraction process with it. nativeCon = doGetNativeConnection(metaCon);}}}return nativeCon;}

具體的實現在其子類里面,以c3p0為例:

/*** Retrieve the Connection via C3P0's {@code rawConnectionOperation} API,* using the {@code getRawConnection} as callback to get access to the* raw Connection (which is otherwise not directly supported by C3P0).* @see #getRawConnection*/@Overrideprotected Connection doGetNativeConnection(Connection con) throws SQLException {if (con instanceof C3P0ProxyConnection) {C3P0ProxyConnection cpCon = (C3P0ProxyConnection) con;try {return (Connection) cpCon.rawConnectionOperation(this.getRawConnectionMethod, null, new Object[] {C3P0ProxyConnection.RAW_CONNECTION});}catch (SQLException ex) {throw ex;}catch (Exception ex) {ReflectionUtils.handleReflectionException(ex);}}return con;}

調用C3P0 API獲取Connection。

3. 創建Statement

stmt = conToUse.createStatement();applyStatementSettings(stmt);Statement stmtToUse = stmt;if (this.nativeJdbcExtractor != null) {stmtToUse = this.nativeJdbcExtractor.getNativeStatement(stmt);}

3.1 不使用第三方插件

/*** Prepare the given JDBC Statement (or PreparedStatement or CallableStatement),* applying statement settings such as fetch size, max rows, and query timeout.* @param stmt the JDBC Statement to prepare* @throws SQLException if thrown by JDBC API* @see #setFetchSize* @see #setMaxRows* @see #setQueryTimeout* @see org.springframework.jdbc.datasource.DataSourceUtils#applyTransactionTimeout*/protected void applyStatementSettings(Statement stmt) throws SQLException {int fetchSize = getFetchSize();if (fetchSize > 0) {stmt.setFetchSize(fetchSize);}int maxRows = getMaxRows();if (maxRows > 0) {stmt.setMaxRows(maxRows);}DataSourceUtils.applyTimeout(stmt, getDataSource(), getQueryTimeout());}

設置fetch size, max rows, and query timeout.其中過期時間在datasourceUtils中實現。

/*** Apply the specified timeout - overridden by the current transaction timeout,* if any - to the given JDBC Statement object.* @param stmt the JDBC Statement object* @param dataSource the DataSource that the Connection was obtained from* @param timeout the timeout to apply (or 0 for no timeout outside of a transaction)* @throws SQLException if thrown by JDBC methods* @see java.sql.Statement#setQueryTimeout*/public static void applyTimeout(Statement stmt, DataSource dataSource, int timeout) throws SQLException {Assert.notNull(stmt, "No Statement specified");Assert.notNull(dataSource, "No DataSource specified");ConnectionHolder holder = (ConnectionHolder) TransactionSynchronizationManager.getResource(dataSource);if (holder != null && holder.hasTimeout()) {// Remaining transaction timeout overrides specified value. stmt.setQueryTimeout(holder.getTimeToLiveInSeconds());}else if (timeout > 0) {// No current transaction timeout -> apply specified value. stmt.setQueryTimeout(timeout);}}

3.2 第三方插件?

以c3p0為例

/*** Extracts the innermost delegate from the given Commons DBCP object.* Falls back to the given object if no underlying object found.* @param obj the Commons DBCP Connection/Statement/ResultSet* @return the underlying native Connection/Statement/ResultSet*/private static Object getInnermostDelegate(Object obj) throws SQLException {if (obj == null) {return null;}try {Class<?> classToAnalyze = obj.getClass();while (!Modifier.isPublic(classToAnalyze.getModifiers())) {classToAnalyze = classToAnalyze.getSuperclass();if (classToAnalyze == null) {// No public provider class found -> fall back to given object.return obj;}}Method getInnermostDelegate = classToAnalyze.getMethod(GET_INNERMOST_DELEGATE_METHOD_NAME, (Class[]) null);Object delegate = ReflectionUtils.invokeJdbcMethod(getInnermostDelegate, obj);return (delegate != null ? delegate : obj);}catch (NoSuchMethodException ex) {return obj;}catch (SecurityException ex) {throw new IllegalStateException("Commons DBCP getInnermostDelegate method is not accessible: " + ex);}}

?

4. 執行statement并關閉之

T result = action.doInStatement(stmtToUse); class QueryStatementCallback implements StatementCallback<T>, SqlProvider {@Overridepublic T doInStatement(Statement stmt) throws SQLException {ResultSet rs = null;try {rs = stmt.executeQuery(sql);ResultSet rsToUse = rs;if (nativeJdbcExtractor != null) {rsToUse = nativeJdbcExtractor.getNativeResultSet(rs);}return rse.extractData(rsToUse);}finally {JdbcUtils.closeResultSet(rs);}}@Overridepublic String getSql() {return sql;}}

4.1 不使用第三方插件

rs = stmt.executeQuery(sql);

4.2 使用第三方插件

private static final String GET_INNERMOST_DELEGATE_METHOD_NAME = "getInnermostDelegate";/*** Extracts the innermost delegate from the given Commons DBCP object.* Falls back to the given object if no underlying object found.* @param obj the Commons DBCP Connection/Statement/ResultSet* @return the underlying native Connection/Statement/ResultSet*/private static Object getInnermostDelegate(Object obj) throws SQLException {if (obj == null) {return null;}try {Class<?> classToAnalyze = obj.getClass();while (!Modifier.isPublic(classToAnalyze.getModifiers())) {classToAnalyze = classToAnalyze.getSuperclass();if (classToAnalyze == null) {// No public provider class found -> fall back to given object.return obj;}}Method getInnermostDelegate = classToAnalyze.getMethod(GET_INNERMOST_DELEGATE_METHOD_NAME, (Class[]) null);Object delegate = ReflectionUtils.invokeJdbcMethod(getInnermostDelegate, obj);return (delegate != null ? delegate : obj);}catch (NoSuchMethodException ex) {return obj;}catch (SecurityException ex) {throw new IllegalStateException("Commons DBCP getInnermostDelegate method is not accessible: " + ex);}}

?4.3 提取數據

@Overridepublic List<T> extractData(ResultSet rs) throws SQLException {List<T> results = (this.rowsExpected > 0 ? new ArrayList<T>(this.rowsExpected) : new ArrayList<T>());int rowNum = 0;while (rs.next()) {results.add(this.rowMapper.mapRow(rs, rowNum++));}return results;}

或者

@Overridepublic SqlRowSet extractData(ResultSet rs) throws SQLException {return createSqlRowSet(rs);}/*** Create a SqlRowSet that wraps the given ResultSet,* representing its data in a disconnected fashion.* <p>This implementation creates a Spring ResultSetWrappingSqlRowSet* instance that wraps a standard JDBC CachedRowSet instance.* Can be overridden to use a different implementation.* @param rs the original ResultSet (connected)* @return the disconnected SqlRowSet* @throws SQLException if thrown by JDBC methods* @see #newCachedRowSet* @see org.springframework.jdbc.support.rowset.ResultSetWrappingSqlRowSet*/protected SqlRowSet createSqlRowSet(ResultSet rs) throws SQLException {CachedRowSet rowSet = newCachedRowSet();rowSet.populate(rs);return new ResultSetWrappingSqlRowSet(rowSet);}

4.4 關閉ResultSet

/*** Close the given JDBC ResultSet and ignore any thrown exception.* This is useful for typical finally blocks in manual JDBC code.* @param rs the JDBC ResultSet to close (may be {@code null})*/public static void closeResultSet(ResultSet rs) {if (rs != null) {try {rs.close();}catch (SQLException ex) {logger.trace("Could not close JDBC ResultSet", ex);}catch (Throwable ex) {// We don't trust the JDBC driver: It might throw RuntimeException or Error.logger.trace("Unexpected exception on closing JDBC ResultSet", ex);}}}

5. 釋放connection

/*** Close the given Connection, obtained from the given DataSource,* if it is not managed externally (that is, not bound to the thread).* @param con the Connection to close if necessary* (if this is {@code null}, the call will be ignored)* @param dataSource the DataSource that the Connection was obtained from* (may be {@code null})* @see #getConnection*/public static void releaseConnection(Connection con, DataSource dataSource) {try {doReleaseConnection(con, dataSource);}catch (SQLException ex) {logger.debug("Could not close JDBC Connection", ex);}catch (Throwable ex) {logger.debug("Unexpected exception on closing JDBC Connection", ex);}}/*** Actually close the given Connection, obtained from the given DataSource.* Same as {@link #releaseConnection}, but throwing the original SQLException.* <p>Directly accessed by {@link TransactionAwareDataSourceProxy}.* @param con the Connection to close if necessary* (if this is {@code null}, the call will be ignored)* @param dataSource the DataSource that the Connection was obtained from* (may be {@code null})* @throws SQLException if thrown by JDBC methods* @see #doGetConnection*/public static void doReleaseConnection(Connection con, DataSource dataSource) throws SQLException {if (con == null) {return;}if (dataSource != null) {ConnectionHolder conHolder = (ConnectionHolder) TransactionSynchronizationManager.getResource(dataSource);if (conHolder != null && connectionEquals(conHolder, con)) {// It's the transactional Connection: Don't close it. conHolder.released();return;}}logger.debug("Returning JDBC Connection to DataSource");doCloseConnection(con, dataSource);}

6.事務處理

?6.1 事務開始

DataSourceTransactionManager?的doBegin()方法

/*** This implementation sets the isolation level but ignores the timeout.*/@Overrideprotected void doBegin(Object transaction, TransactionDefinition definition) {DataSourceTransactionObject txObject = (DataSourceTransactionObject) transaction;Connection con = null;try {if (txObject.getConnectionHolder() == null ||txObject.getConnectionHolder().isSynchronizedWithTransaction()) {Connection newCon = this.dataSource.getConnection();if (logger.isDebugEnabled()) {logger.debug("Acquired Connection [" + newCon + "] for JDBC transaction");}txObject.setConnectionHolder(new ConnectionHolder(newCon), true);}txObject.getConnectionHolder().setSynchronizedWithTransaction(true);con = txObject.getConnectionHolder().getConnection();Integer previousIsolationLevel = DataSourceUtils.prepareConnectionForTransaction(con, definition);txObject.setPreviousIsolationLevel(previousIsolationLevel);// Switch to manual commit if necessary. This is very expensive in some JDBC drivers,// so we don't want to do it unnecessarily (for example if we've explicitly// configured the connection pool to set it already).if (con.getAutoCommit()) {txObject.setMustRestoreAutoCommit(true);if (logger.isDebugEnabled()) {logger.debug("Switching JDBC Connection [" + con + "] to manual commit");}con.setAutoCommit(false);}txObject.getConnectionHolder().setTransactionActive(true);int timeout = determineTimeout(definition);if (timeout != TransactionDefinition.TIMEOUT_DEFAULT) {txObject.getConnectionHolder().setTimeoutInSeconds(timeout);}// Bind the session holder to the thread.if (txObject.isNewConnectionHolder()) {TransactionSynchronizationManager.bindResource(getDataSource(), txObject.getConnectionHolder());}}catch (Throwable ex) {if (txObject.isNewConnectionHolder()) {DataSourceUtils.releaseConnection(con, this.dataSource);txObject.setConnectionHolder(null, false);}throw new CannotCreateTransactionException("Could not open JDBC Connection for transaction", ex);}}

6.2 事務提交

@Overrideprotected void doCommit(DefaultTransactionStatus status) {DataSourceTransactionObject txObject = (DataSourceTransactionObject) status.getTransaction();Connection con = txObject.getConnectionHolder().getConnection();if (status.isDebug()) {logger.debug("Committing JDBC transaction on Connection [" + con + "]");}try {con.commit();}catch (SQLException ex) {throw new TransactionSystemException("Could not commit JDBC transaction", ex);}}

6.3 事務回滾

@Overrideprotected void doRollback(DefaultTransactionStatus status) {DataSourceTransactionObject txObject = (DataSourceTransactionObject) status.getTransaction();Connection con = txObject.getConnectionHolder().getConnection();if (status.isDebug()) {logger.debug("Rolling back JDBC transaction on Connection [" + con + "]");}try {con.rollback();}catch (SQLException ex) {throw new TransactionSystemException("Could not roll back JDBC transaction", ex);}}

事務過程:

Spring 對DataSource進行事務管理的關鍵在于ConnectionHolder和TransactionSynchronizationManager。
0.先從TransactionSynchronizationManager中嘗試獲取連接
1.如果前一步失敗則在每個線程上,對每個DataSouce只創建一個Connection
2.這個Connection用ConnectionHolder包裝起來,由TransactionSynchronizationManager管理
3.再次請求同一個連接的時候,從TransactionSynchronizationManager返回已經創建的ConnectionHolder,然后調用ConnectionHolder的request將引用計數+1
4.釋放連接時要調用ConnectionHolder的released,將引用計數-1
5.當事物完成后,將ConnectionHolder從TransactionSynchronizationManager中解除。當誰都不用,這個連接被close

以上所有都是可以調用DataSourceUtils化簡代碼,而JdbcTemplate又是調用DataSourceUtils的。所以在 Spring文檔中要求盡量首先使用JdbcTemplate,其次是用DataSourceUtils來獲取和釋放連接。至于 TransactionAwareDataSourceProxy,那是下策的下策。不過可以將Spring事務管理和遺留代碼無縫集成。

所以如某位朋友說要使用Spring的事務管理,但是又不想用JdbcTemplate,那么可以考慮TransactionAwareDataSourceProxy。這個類是原來DataSource的代理。
其次,想使用Spring事物,又不想對Spring進行依賴是不可能的。與其試圖自己模擬DataSourceUtils,不如直接使用現成的。

小結:

JdbcTemplate將我們使用的JDBC的流程封裝起來,包括了異常的捕捉、SQL的執行、查詢結果的轉換等等。
spring大量使用Template Method模式來封裝固定流程的動作,XXXTemplate等類別都是基于這種方式的實現。
除了大量使用Template Method來封裝一些底層的操作細節,spring也大量使用callback方式類回調相關類別的方法以提供JDBC相關類別的功能,使傳統的JDBC的使用者也能清楚了解spring所提供的相關封裝類別方法的使用。

?參考文獻:

【1】http://blog.sina.com.cn/s/blog_53dd74430100haaj.html

轉載于:https://www.cnblogs.com/davidwang456/p/4542409.html

總結

以上是生活随笔為你收集整理的spring jdbctemplate源码跟踪的全部內容,希望文章能夠幫你解決所遇到的問題。

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

婷婷亚洲五月色综合 | 久久刺激视频 | 久久九九精品久久 | 99久久精品日本一区二区免费 | 黄色小视频在线观看免费 | 午夜三级福利 | 久久久久女教师免费一区 | 精品国产欧美一区二区 | 久久国产高清视频 | 激情五月五月婷婷 | 免费不卡中文字幕视频 | 成人黄色在线观看视频 | 这里只有精彩视频 | 免费人人干 | 热久久免费视频精品 | 久久亚洲美女 | 精品久久一区二区三区 | 国产精品伦一区二区三区视频 | 美女视频是黄的免费观看 | 最近中文字幕高清字幕免费mv | 五月天综合网站 | 2021国产在线 | 中文字幕一区二区三区久久 | 国产一区 在线播放 | 99精品在线播放 | 福利电影久久 | 99久久精品国产一区二区三区 | 成人免费观看视频网站 | 免费看污污视频的网站 | 国产视频一 | 日日夜操| 婷婷资源站 | 日韩试看| 亚洲黄色av网址 | 国产小视频在线免费观看视频 | 日韩在线播放视频 | 色爱成人网 | 中文字幕影片免费在线观看 | 高清免费在线视频 | 最近日本韩国中文字幕 | 欧美一二三四在线 | 综合色天天 | 亚洲激精日韩激精欧美精品 | 久久无码av一区二区三区电影网 | 国产精品美女在线观看 | av在线亚洲天堂 | 超碰在线人人爱 | 久久色视频 | 麻豆国产精品视频 | 噜噜色官网 | 亚洲 欧美 变态 国产 另类 | 婷婷色在线观看 | 国产精品区免费视频 | 国产精品午夜av | 最近中文字幕第一页 | 免费精品久久久 | 日韩在线高清 | 免费网站污 | 精品国产一区二区三区久久久蜜月 | 久草在线电影网 | 亚洲精品视频大全 | 久久蜜臀一区二区三区av | 99热国产在线| 天天做天天爱天天综合网 | .精品久久久麻豆国产精品 亚洲va欧美 | 国产一区网 | 婷婷丁香自拍 | 免费看一及片 | www.亚洲精品 | 丁香六月国产 | 欧美一区二视频在线免费观看 | 高清av免费看 | 黄色aaaaa| 一区二区三区四区在线 | 51久久成人国产精品麻豆 | 激情五月亚洲 | 国产视频97 | 亚欧日韩成人h片 | 日精品在线观看 | av一级久久 | 久久久国产精品成人免费 | 国内丰满少妇猛烈精品播放 | 91精品国产高清 | 天天人人 | 国产高清不卡一区二区三区 | 最新超碰 | 久久久久久久久久久久久久免费看 | 日韩三级一区 | 美女精品久久 | 怡红院成人在线 | 久久国产精品影片 | 精品国产乱码久久久久久久 | 色婷婷在线观看视频 | 亚洲春色奇米影视 | 免费在线观看成人 | 日韩欧美中文 | 成人毛片在线视频 | 欧美日韩亚洲第一页 | 国产原创在线视频 | 亚洲一级电影在线观看 | 日日干av| 日韩v在线91成人自拍 | 久久成年人网站 | 国产在线2020 | 亚洲撸撸 | 又色又爽又黄高潮的免费视频 | 欧美一区三区四区 | 国产精品福利在线观看 | 久久久久9999亚洲精品 | 日韩爱爱网站 | 国产女人18毛片水真多18精品 | 日韩在线中文字幕视频 | 国产精品欧美久久久久三级 | 国内精品二区 | 久草在线高清视频 | 亚洲精品高清一区二区三区四区 | 国产人成在线观看 | 日韩精品一区二区三区免费观看 | 精品国产一二三四区 | 国产精品黄色在线观看 | 国产专区欧美专区 | 天天干,天天射,天天操,天天摸 | 成人片在线播放 | 五月婷婷开心 | 国产黄在线观看 | 激情六月婷婷久久 | 麻豆免费视频 | 日韩欧美在线影院 | 亚洲另类在线视频 | 国产中文字幕视频在线观看 | 激情自拍av | 免费黄色a网站 | a级片网站| 日韩免费福利 | av网在线观看 | 最新超碰在线 | 午夜久久 | 99免费视频 | 久久久久免费精品国产小说色大师 | 欧美激情视频一二区 | 视频在线91 | 久久久久久国产精品亚洲78 | 97国产在线 | 久久精品视频网站 | 亚洲乱码中文字幕综合 | 一级黄色在线免费观看 | 521色香蕉网站在线观看 | 精品一区在线看 | www.久久com | 久久这里只有精品久久 | 99c视频高清免费观看 | 亚洲影院国产 | 麻豆极品 | 久久久精品免费观看 | 国产精品门事件 | 亚洲激情视频 | av大片免费在线观看 | 成人国产一区二区 | 久久av中文字幕片 | 在线视频 一区二区 | 欧美日韩视频在线 | 久久66热这里只有精品 | 精品国产一区二 | 天天爽天天爽 | 在线亚洲小视频 | 狠狠躁日日躁夜夜躁av | 91高清视频免费 | 日日爱夜夜爱 | 香蕉手机在线 | 在线三级中文 | 五月天综合在线 | 高清av在线免费观看 | av福利超碰网站 | 久久精品99精品国产香蕉 | 九九九热精品免费视频观看 | 精品一二三区视频 | 国产无限资源在线观看 | 天天视频亚洲 | 久久精品aaa| 久久综合桃花 | 久久天堂网站 | 激情黄色一级片 | 国产精品久久久久av免费 | 国产成人精品一区二三区 | 中文字幕在线播放av | 91精品国产99久久久久久红楼 | 国产精品久久久久久久免费大片 | 一区二区中文字幕在线观看 | 香蕉在线播放 | 91丨九色丨国产在线观看 | 国产精品第一 | 久热免费| 九九免费在线看完整版 | 一区二区中文字幕在线 | 亚洲国产日韩欧美 | 国产精品video| 久久噜噜少妇网站 | 97电影在线观看 | 粉嫩一二三区 | 亚洲欧美日韩精品久久久 | 成人免费视频在线观看 | 精品国产欧美一区二区三区不卡 | 亚洲激情一区二区三区 | 色五月色开心色婷婷色丁香 | 日韩激情视频在线观看 | 国产精品福利在线观看 | 天天干夜夜爽 | 91大神一区二区三区 | 日韩中文字幕91 | 波多野结衣电影久久 | 91精选在线观看 | 久草资源免费 | 九色精品免费永久在线 | 97超级碰碰碰视频在线观看 | 激情欧美一区二区免费视频 | 亚洲va欧美va人人爽春色影视 | 欧美日韩国产页 | 天天弄天天操 | 99人久久精品视频最新地址 | 午夜手机电影 | 2021av在线 | va视频在线观看 | 国产精品欧美日韩 | 正在播放五月婷婷狠狠干 | 国产精品小视频网站 | 久久免费视频1 | 91亚洲精品在线观看 | 久久男人视频 | 亚洲国产成人在线播放 | 久久新 | 色亚洲激情 | 国内小视频在线观看 | 一区二区激情视频 | 久草色在线观看 | 91超碰在线播放 | 香蕉视频网站在线观看 | 在线观看日韩中文字幕 | 在线国产一区二区 | 欧美精品久久久久久久久久久 | 成人av免费在线看 | 最新亚洲视频 | 精品国产一区二区三区久久久 | 91九色九色 | 日日夜夜精品视频天天综合网 | 人人舔人人干 | 日韩欧美在线综合网 | 亚洲亚洲精品在线观看 | 不卡的av在线 | 香蕉在线观看视频 | 丁香婷婷在线 | 国产a免费 | 美女免费网视频 | 97色婷婷成人综合在线观看 | 五月婷久久 | 婷婷六月天丁香 | 国际精品网 | japanese黑人亚洲人4k | 欧美黑人性猛交 | 欧美激情精品久久久久 | 麻豆 videos | 毛片网站免费 | 在线观看岛国av | 在线观看视频中文字幕 | 日日成人网 | 特级西西人体444是什么意思 | 91免费看片黄 | 99热这里只有精品免费 | 在线日韩精品视频 | 国产视频在线免费 | aaa毛片视频 | 久久综合九色综合97_ 久久久 | 日韩中文幕 | 午夜精品视频免费在线观看 | 狠狠干成人 | 99精品视频在线观看免费 | 五月婷婷在线观看视频 | 日本大尺码专区mv | 亚洲欧美国产视频 | 99电影 | 国产区久久| 国产日产高清dvd碟片 | 91久久国产自产拍夜夜嗨 | 国内精品久久久久久久影视麻豆 | 日韩免费视频播放 | 国产aaa大片| 懂色av一区二区在线播放 | 美女网站视频免费黄 | 91视频观看免费 | 欧美va天堂在线电影 | 天堂在线一区二区三区 | 欧美淫视频| 精品久久久久久久久久久久久久久久久久 | 久久优| 婷婷精品国产一区二区三区日韩 | 在线观看视频黄色 | 综合久久一本 | 久精品视频免费观看2 | av黄色亚洲| 欧美色操 | 亚洲精品综合在线 | 成人在线观看免费 | 久久综合亚洲鲁鲁五月久久 | 欧洲一区精品 | 久久不卡免费视频 | 国产群p视频 | 999日韩 | 黄色免费网站大全 | 天天干天天做天天爱 | 免费观看一级视频 | 九9热这里真品2 | 91人人澡人人爽 | 久久视频二区 | 国内精品久久久久影院优 | 国产日韩欧美网站 | 日韩大片在线播放 | 91自拍视频在线 | 日本黄色片一区二区 | 国产精品久久毛片 | 在线观看日韩专区 | 特黄免费av | 精品视频在线播放 | 午夜视频在线观看一区二区 | 一级免费观看 | 一级久久久| 国产成人一区二区三区久久精品 | 成人在线免费视频观看 | 国产高清在线观看 | 成人免费视频网 | 天天爱天天色 | 国产综合福利在线 | 亚洲一级二级三级 | 能在线观看的日韩av | 精品福利国产 | 欧美性生活小视频 | 久久精品中文字幕 | 久久免费精品一区二区三区 | 成人免费共享视频 | 4p变态网欧美系列 | 天天操天天射天天爱 | 亚洲精品美女 | 国产伦精品一区二区三区照片91 | 久久精品视频在线 | 最新av免费在线观看 | 成人精品视频 | 午夜影院一区 | 久久精品波多野结衣 | 免费在线观看av网站 | 亚洲欧洲精品一区二区精品久久久 | 伊人天天干 | 国产欧美日韩一区 | 色.www | 91在线国产观看 | 月下香电影 | 91视频高清免费 | 久久精品一二三区白丝高潮 | 国产精品成人一区二区三区 | 在线精品视频免费播放 | 欧美大荫蒂xxx | 91在线一区 | 欧美黄污视频 | 91毛片视频 | 国产精品资源网 | 香蕉视频日本 | 欧美精品久久久久久久久久白贞 | 日韩精品久久久免费观看夜色 | 999日韩| 国产精品一区二区在线观看免费 | 婷婷精品在线视频 | 婷婷在线观看视频 | 精品成人网 | 欧美日比视频 | 黄色avwww | 久草资源在线 | 日韩欧美亚州 | 精品国产一区二区三区久久久蜜月 | 日韩成人黄色av | 成人国产精品久久久久久亚洲 | 欧美少妇的秘密 | 久久国产影视 | 天天操欧美| 久久久久久久久久伊人 | 狠狠干成人综合网 | 久久精品三| 国产婷婷精品 | 中文在线免费一区三区 | 亚州人成在线播放 | 日韩精品一区在线观看 | 国产精品区在线观看 | 91成人看片| 一本一道久久a久久综合蜜桃 | 欧美视屏一区二区 | www.在线看片.com | 91尤物国产尤物福利在线播放 | 久久精品婷婷 | 四虎免费在线观看 | 欧美日韩免费视频 | 视色网站| 免费在线观看日韩视频 | 黄色影院在线观看 | 日韩黄色免费看 | 中文字幕在线视频网站 | 久久免费观看少妇a级毛片 久久久久成人免费 | 成人午夜电影在线观看 | 久久精品在线 | 在线亚洲天堂网 | 亚洲精品一区二区18漫画 | 日韩一区二区三区在线观看 | 成人免费在线观看入口 | 国产91在线观看 | 就色干综合| 日韩成人xxxx | 国产69久久久 | 国产精品久久久久久久av大片 | 91污在线观看 | 久久亚洲私人国产精品 | 激情开心站 | 午夜精品成人一区二区三区 | 91中文字幕 | 久久视频在线观看免费 | 色.www| 激情视频在线高清看 | 中文字幕一区二区三区久久蜜桃 | 日韩高清激情 | 成人精品福利 | 国产精久久久 | 99re国产| 91视频在线观看下载 | 久久婷亚洲五月一区天天躁 | 九九九免费视频 | 九色porny真实丨国产18 | 色婷婷88av视频一二三区 | 国产手机在线精品 | av福利第一导航 | 久热免费在线观看 | 亚洲精品综合欧美二区变态 | 国产精品精品久久久 | 国产综合精品一区二区三区 | 在线观看成人网 | 深夜免费小视频 | 96精品视频 | 欧美色综合天天久久综合精品 | 91视频高清完整版 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 亚洲精品中文字幕在线 | 天无日天天操天天干 | 99久久日韩精品视频免费在线观看 | 国产高清av免费在线观看 | 国产一区二区电影在线观看 | 99免在线观看免费视频高清 | 日韩免费电影网 | 91av电影网| 欧美日一级片 | 欧美激情亚洲综合 | 国产亚洲婷婷免费 | 在线观看va | 欧美成人tv | 91在线观看视频网站 | 亚洲精品久久久久久久不卡四虎 | 精品福利网 | 久久人人爽人人爽人人片av免费 | 亚洲免费小视频 | 97干com | 国产99久久99热这里精品5 | 久草在线欧美 | 国产96精品 | 在线观看亚洲免费视频 | 国产亚洲精品久久久久久久久久久久 | 九九久久免费视频 | 欧美91片 | 在线播放 日韩专区 | 成人视屏免费看 | 欧美日韩精品免费观看视频 | 日韩在线 一区二区 | 日日碰狠狠添天天爽超碰97久久 | 日本久久久久久科技有限公司 | 99这里只有| 91桃花视频 | 激情偷乱人伦小说视频在线观看 | 97色在线| 久久免费播放视频 | 亚洲另类视频在线 | 欧美一区二区日韩一区二区 | 日本中文字幕网站 | www视频免费在线观看 | 久艹视频在线免费观看 | 日韩免费网站 | 久久夜色精品国产欧美乱 | 国产精品理论片在线播放 | 99久久精品费精品 | 一区二区三区动漫 | 日本在线中文在线 | 成人片在线播放 | 欧美男女爱爱视频 | 808电影 | 久久久亚洲精华液 | 日日草av| 深夜精品福利 | 最近中文字幕免费观看 | 操操综合网 | 国产在线更新 | 国产成人亚洲在线观看 | 日韩av一区二区三区在线观看 | 人九九精品 | 国产一区二区在线播放 | 日韩在线影视 | 国产黄大片 | 三级在线国产 | 色多多污污 | 久久久久成人免费 | 久久久香蕉视频 | 免费成人av | 欧美精品一区二区性色 | 婷婷av在线| 精品国产一区二区三区男人吃奶 | 天天色影院| 国产丝袜美腿在线 | 欧美一区二区三区在线 | 免费看国产视频 | a√国产免费a | 人人盈棋牌 | 午夜aaaa | av日韩在线网站 | 免费亚洲视频在线观看 | 免费看久久久 | 精品久久久久久久久久久久久久久久 | 中文字幕在线看视频 | 中文在线字幕免费观看 | 在线观看视频色 | 久久国产精品色av免费看 | 91麻豆高清视频 | 午夜.dj高清免费观看视频 | 国产免费二区 | 日韩中文字幕视频在线 | 国产大尺度视频 | 久久国产精品视频观看 | 亚洲天堂精品视频 | 日韩欧美精品免费 | 国产va在线观看免费 | 区一区二区三在线观看 | 美女网站在线免费观看 | 日本中文在线播放 | 在线视频专区 | 在线观看av网 | 欧美一级日韩三级 | 亚洲成人资源在线观看 | 国产精品国产三级国产不产一地 | 日韩精品国产一区 | 欧产日产国产69 | 毛片www| 久久久免费毛片 | 国产一级高清 | 国产亚洲综合性久久久影院 | 中文字幕在线观看免费高清电影 | 国产在线999| 日韩欧美高清 | 国产精品门事件 | 成人手机在线视频 | 少妇性色午夜淫片aaaze | 五月天综合在线 | 奇米影视8888在线观看大全免费 | 97精品一区| 国产在线观看,日本 | 综合网伊人 | 国语麻豆 | 色婷婷精品 | 欧美analxxxx| 久久久久久久久免费视频 | 不卡在线一区 | 国产麻豆精品一区 | 最新国产精品拍自在线播放 | 免费看一级片 | 亚洲电影免费 | 精品国产一区二区三区久久久久久 | 国产69精品久久app免费版 | 欧美日本不卡高清 | 精品免费99久久 | 伊人婷婷在线 | 天天干,天天射,天天操,天天摸 | 国产成人av网站 | 国产精品21区 | 人人爽人人插 | 中文字幕的| 午夜91视频| 久久观看最新视频 | 27xxoo无遮挡动态视频 | 精品久久一区二区三区 | 丁香婷婷激情国产高清秒播 | 天天操天天操天天操天天操天天操 | 日韩91av| 丝袜网站在线观看 | 在线观看岛国av | 99精品视频在线 | 中文字幕在线观看1 | av天天草| 婷婷免费在线视频 | 久久96国产精品久久99软件 | 国产黄| 国产人成看黄久久久久久久久 | 精品国产大片 | 81国产精品久久久久久久久久 | 色干干| 大胆欧美gogo免费视频一二区 | 免费在线一区二区 | 色视频网站在线 | 欧美日韩高清一区二区 国产亚洲免费看 | 欧美亚洲成人免费 | 91九色在线 | 日本不卡一区二区三区在线观看 | 久久久精华网 | 黄色最新网址 | 黄网站色欧美视频 | 三上悠亚一区二区在线观看 | 91在线中文| av国产在线观看 | 中文字幕精品一区二区三区电影 | 国产在线999 | 美女网站一区 | 色偷偷88888欧美精品久久 | av免费在线看网站 | www.久久久久| 天天干天天干天天干天天干天天干天天干 | 亚洲综合在线视频 | 99九九免费视频 | 不卡视频在线看 | 久草在线费播放视频 | 手机在线欧美 | 麻豆传媒视频观看 | 免费福利在线播放 | 国产中文字幕网 | 久久久久综合精品福利啪啪 | 精品视频成人 | 在线a视频免费观看 | 中文 一区二区 | av看片在线观看 | 成年人免费在线播放 | 日韩中文字幕免费视频 | 中文字幕一区二区三区久久 | 日本黄色免费大片 | 久草精品视频在线观看 | 国产成人免费高清 | 久久久久久久久久久久久久av | 激情五月五月婷婷 | avav99| 久久人人爽人人爽人人片 | 亚洲国产精品久久久 | 久草在线观 | 亚洲日本欧美在线 | 深夜免费福利网站 | 一二三区av | 亚洲开心激情 | 福利一区二区在线 | 国产精品麻豆欧美日韩ww | 久久精品人| 久久精品久久精品久久精品 | 亚洲欧美少妇 | 国产女v资源在线观看 | 在线免费视频 你懂得 | 超碰午夜| 色偷偷中文字幕 | 国产精品国产毛片 | 西西444www大胆无视频 | 亚洲精品动漫久久久久 | 欧美成人精品欧美一级乱黄 | 欧美a√大片 | 99久久久成人国产精品 | 国产在线观看一区 | 狠狠干狠狠久久 | 久久999精品 | 亚欧洲精品视频在线观看 | 亚洲 成人 欧美 | 91系列在线观看 | 亚洲精品国产欧美在线观看 | 国产精品成人免费 | 久久色网站| 亚洲一区二区三区毛片 | 97超碰国产精品女人人人爽 | 五月天,com| 精品伦理一区二区三区 | 免费亚洲片 | 五月婷婷综合在线视频 | 天天操天天干天天综合网 | 免费看黄在线网站 | 黄色片免费电影 | 亚洲国产影院av久久久久 | 亚洲精品视频在线播放 | 一区二区视频播放 | 亚洲精品在线资源 | 在线免费黄色毛片 | 国产成人在线播放 | 欧美日韩精 | 中文字幕在线视频一区 | 狠狠色伊人亚洲综合成人 | 天天爽夜夜爽人人爽一区二区 | 91av欧美| 国产一区二区电影在线观看 | 天天干天天摸天天操 | 亚洲性视频 | 国产手机在线精品 | 夜夜躁日日躁 | 欧美一级高清片 | 婷婷在线播放 | 久久午夜鲁丝片 | 九九日韩 | 探花视频在线观看免费 | 日本精品中文字幕 | 亚洲成人精品久久 | 午夜丁香视频在线观看 | 精品国产一区二区三区日日嗨 | 国产麻豆精品久久一二三 | 日韩在线二区 | 久久天天躁夜夜躁狠狠躁2022 | 2022久久国产露脸精品国产 | 曰本免费av| 97国产| 欧美污在线观看 | 久久精品人人做人人综合老师 | 免费中文字幕在线观看 | 久久视频一区 | 久久99精品国产麻豆婷婷 | 久久免费视频在线观看30 | 色一级片 | 欧美成人一二区 | 干狠狠 | 97香蕉久久国产在线观看 | 免费视频久久久久 | 亚洲伊人av | 日本中文字幕系列 | 日韩 精品 一区 国产 麻豆 | 免费a v网站 | 欧美精品中文在线免费观看 | 一区二区三区四区五区六区 | 国产不卡精品 | 亚洲一一在线 | 婷婷日日| 日韩高清片 | 欧美日韩国产在线一区 | 国产一区在线视频观看 | 国产精品无av码在线观看 | 黄色aa久久| 最近中文字幕免费大全 | 亚洲韩国一区二区三区 | 婷婷久久五月 | 亚洲国产三级在线 | 91精品国产乱码在线观看 | 99九九免费视频 | 天天射天天干天天爽 | 欧美日一级片 | 综合在线色 | 四虎影视精品永久在线观看 | 亚洲伦理一区二区 | 丰满少妇麻豆av | 亚洲午夜精品久久久久久久久 | 91成人网在线 | 天天操天天是 | 2022久久国产露脸精品国产 | 91精品伦理| 天天干天天操天天做 | 日韩一级成人av | 国产高清视频在线播放 | 亚洲 中文字幕av | 成人一区二区在线观看 | 欧美a级一区二区 | 精品国产自| 久久理论影院 | 永久免费毛片在线观看 | www.五月天婷婷 | 日韩美女免费线视频 | 亚洲激情六月 | 少妇激情久久 | 91精品999| 狠狠久久伊人 | 一级特黄aaa大片在线观看 | 久久影院午夜论 | 精品欧美小视频在线观看 | 久久婷婷五月综合色丁香 | 操操操天天操 | 96精品高清视频在线观看软件特色 | 2023亚洲精品国偷拍自产在线 | 国产女人免费看a级丨片 | 狠狠干五月天 | 亚洲精品在线播放视频 | 亚洲一区二区麻豆 | 中文字幕在线字幕中文 | 国产精品黄色在线观看 | 免费福利在线 | 久久免费美女视频 | 日韩av电影一区 | 蜜臀av夜夜澡人人爽人人桃色 | 99久久夜色精品国产亚洲96 | 日韩欧美69 | 久久视奸| 制服丝袜成人在线 | 2023天天干 | 开心丁香婷婷深爱五月 | 亚洲午夜精品在线观看 | 免费在线电影网址大全 | 夜夜躁天天躁很躁波 | 日韩精品在线看 | 日韩资源在线 | 99爱国产精品 | 在线观看片 | 毛片www| 久久国产一区二区三区 | 在线免费国产视频 | 欧美一区日韩精品 | 日日夜夜免费精品视频 | 亚洲综合精品视频 | 狠狠干中文字幕 | 丁香视频在线观看 | 精品久久国产精品 | 久久精品视频在线播放 | 国产精品成人一区二区三区 | 热re99久久精品国产66热 | 最新三级在线 | 午夜免费在线观看 | 人人狠| 狠狠色丁香久久婷婷综合_中 | 国产91精品看黄网站在线观看动漫 | 日韩在线精品视频 | 色综合天天色综合 | 一个色综合网站 | 在线激情av电影 | 国产精品自产拍在线观看中文 | 国产在线成人 | 国产视频亚洲视频 | 免费成人av电影 | 最新中文字幕视频 | 久草在线观看视频免费 | 日本中文字幕一二区观 | 91九色蝌蚪视频网站 | 午夜久操 | 欧美日韩国产精品一区 | 国语久久 | 国产麻豆视频 | 亚洲国产小视频在线观看 | 日本精品中文字幕在线观看 | 亚洲精品黄 | 国产精品初高中精品久久 | 日韩激情中文字幕 | 国产无限资源在线观看 | 美女视频一区 | 亚洲人成网站精品片在线观看 | 色婷婷激情综合 | 天天综合天天做天天综合 | 黄色毛片在线 | 久久99久国产精品黄毛片入口 | 日韩理论片 | 国产在线观看 | 六月久久婷婷 | 日日干夜夜骑 | 亚洲国产日韩欧美 | 欧美午夜性 | 中文字幕免费高清在线 | 久久久久久久久久网 | 黄色动态图xx | 91成人免费 | 亚洲成人黄色在线观看 | 欧美精品在线免费 | 亚洲精品免费在线播放 | 亚洲精品视频在线播放 | 国产精品1区2区在线观看 | 九九在线精品视频 | 欧美日韩性生活 | 四川妇女搡bbbb搡bbbb搡 | 丁五月婷婷 | 99视频在线免费观看 | 亚洲人片在线观看 | 久久免费一 | 久久艹人人 | 亚洲三级黄色 | 91av大全 | 99热在 | 精品在线一区二区三区 | 国产午夜精品在线 | 日韩高清不卡一区二区三区 | 久久综合久久综合这里只有精品 | 不卡的av在线播放 | 成人午夜免费福利 | 欧美激情综合五月色丁香 | 午夜的福利 | 免费看91的网站 | 日韩影视大全 | 欧美日韩国产二区 | 91av视频| 人成免费网站 | 91大片成人网| 观看免费av| 国产精品精品久久久久久 | 亚洲高清激情 | 免费看短| 99免费在线视频观看 | 精品黄色片 | 欧美在一区 | 久久99精品国产麻豆宅宅 | 日韩亚洲在线视频 | 天天插日日射 | 国产在线观看高清视频 | 91日韩免费 | 国产第一页福利影院 | 欧美成人69av | 久久只精品99品免费久23小说 | 伊人日日干 | 国产免费人人看 | 久久视频精品在线 | 亚洲精品国产高清 | 激情综合色综合久久综合 | 国内精品久久久久影院一蜜桃 | 国际精品久久久 | 黄色a一级视频 | 日日干干 | 久久麻豆视频 | 亚洲免费精品视频 | 99视频精品视频高清免费 | 日韩精品欧美专区 | 99精品久久只有精品 | 久久伊人八月婷婷综合激情 | 日韩av片无码一区二区不卡电影 | 成人欧美一区二区三区黑人麻豆 | 久久综合影视 | 9999在线 | 97精品在线视频 | 欧美一级久久久久 | 久久观看免费视频 | 色综合久久综合网 | 6080yy午夜一二三区久久 | 免费视频成人 | 国产1级毛片 | 欧美久久99 | 免费黄色特级片 | 日韩精品播放 | 日韩精品中文字幕在线 | 最新av观看 | 99c视频在线 | 欧美日韩国产色综合一二三四 | 国产专区一| www.人人草 | 久在线观看 | 最近最新中文字幕视频 | 国产尤物在线视频 | 中文字幕免费不卡视频 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 91精品久 | 亚洲免费永久精品国产 | 狠狠操狠狠干天天操 | 丁香婷婷深情五月亚洲 | 超级av在线| 国产一区二区在线免费播放 | 五月天综合激情 | 久久精美视频 | 日韩精品 在线视频 | 四虎8848免费高清在线观看 | 色天堂在线视频 | 久久久久免费视频 | av成人在线观看 | 亚洲精品免费在线观看视频 | 国产精品一区二区三区四 | 久久激情婷婷 | 最新中文字幕在线资源 | 精品免费久久久久 | www.色综合.com| 性色av免费在线观看 | 欧美一级日韩三级 | 91精品国产欧美一区二区 | 久久综合久久88 | 午夜影视av| 久久免费电影 | 亚洲成成品网站 | 天天爱天天操天天干 | 97人人添人澡人人爽超碰动图 | 91看片成人 | 日韩免费成人av | 国产清纯在线 | 欧美激情视频免费看 | 久草视频看看 | 国产一区二区在线免费播放 | 成人永久视频 | 久草精品在线观看 | 国产中文字幕在线看 | 中文字幕日韩av | 性色av免费观看 | 东方av在 | 久久久久电影 | 成人超碰97 | av在线永久免费观看 | 国产99亚洲| 亚洲美女在线国产 | 亚洲色图27p | 国产手机视频在线 | 国内精品久久久久久久97牛牛 | 欧美在线视频一区二区三区 | 国产精品专区在线 | av色综合| 亚洲在线视频网站 | 免费观看日韩av | 免费观看一级特黄欧美大片 | 天天干人人插 | 干av在线 | 久久久久国 |