黄a在线观看-黄a在线-黄a大片-黄色片在线看-黄色毛片免费-黄色大片网站

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

MyBatis中XML 映射文件中常見的標簽說明

瀏覽:58日期:2023-10-18 14:02:01

SQL 映射文件只有很少的幾個頂級元素(按照應被定義的順序列出):

cache ? 對給定命名空間的緩存配置。 cache-ref ? 對其他命名空間緩存配置的引用。 resultMap ? 是最復雜也是最強大的元素,用來描述如何從數據庫結果集中來加載對象。 parameterMap ? 已被廢棄!老式風格的參數映射。更好的辦法是使用內聯參數,此元素可能在將來被移除。 sql ? 可被其他語句引用的可重用語句塊。 insert ? 映射插入語句 update ? 映射更新語句 delete ? 映射刪除語句 select ? 映射查詢語句select

<select parameterType='int' resultType='hashmap'> SELECT * FROM PERSON WHERE ID = #{id} </select>

這個語句被稱作 selectPerson,接受一個 int(或 Integer)類型的參數,并返回一個 HashMap 類型的對象,其中的鍵是列名,值便是結果行中的對應值。

注意參數符號:#{id}

這就告訴 MyBatis 創建一個預處理語句(PreparedStatement)參數,在 JDBC 中,這樣的一個參數在 SQL 中會由一個“?”來標識,并被傳遞到一個新的預處理語句中,就像這樣:

// 近似的 JDBC 代碼,非 MyBatis 代碼... String selectPerson = 'SELECT * FROM PERSON WHERE ID=?'; PreparedStatement ps = conn.prepareStatement(selectPerson); ps.setInt(1,id); <select parameterType='int' parameterMap='deprecated' resultType='hashmap' resultMap='personResultMap' flushCache='false' useCache='true' timeout='10' fetchSize='256' statementType='PREPARED' resultSetType='FORWARD_ONLY'>屬性 描述 id 在命名空間中唯一的標識符,可以被用來引用這條語句。 parameterType 將會傳入這條語句的參數類的完全限定名或別名。這個屬性是可選的,因為 MyBatis 可以通過類型處理器(TypeHandler) 推斷出具體傳入語句的參數,默認值為未設置(unset)。 parameterMap 這是引用外部 parameterMap 的已經被廢棄的方法。請使用內聯參數映射和 parameterType 屬性。 resultType 從這條語句中返回的期望類型的類的完全限定名或別名。 注意如果返回的是集合,那應該設置為集合包含的類型,而不是集合本身。可以使用 resultType 或 resultMap,但不能同時使用。 resultMap 外部 resultMap 的命名引用。結果集的映射是 MyBatis 最強大的特性,如果你對其理解透徹,許多復雜映射的情形都能迎刃而解??梢允褂?resultMap 或 resultType,但不能同時使用。 flushCache 將其設置為 true 后,只要語句被調用,都會導致本地緩存和二級緩存被清空,默認值:false。 useCache 將其設置為 true 后,將會導致本條語句的結果被二級緩存緩存起來,默認值:對 select 元素為 true。 timeout 這個設置是在拋出異常之前,驅動程序等待數據庫返回請求結果的秒數。默認值為未設置(unset)(依賴驅動)。 fetchSize 這是一個給驅動的提示,嘗試讓驅動程序每次批量返回的結果行數和這個設置值相等。 默認值為未設置(unset)(依賴驅動)。 statementType STATEMENT,PREPARED 或 CALLABLE 中的一個。這會讓 MyBatis 分別使用 Statement,PreparedStatement 或 CallableStatement,默認值:PREPARED。 resultSetType FORWARD_ONLY,SCROLL_SENSITIVE, SCROLL_INSENSITIVE 或 DEFAULT(等價于 unset) 中的一個,默認值為 unset (依賴驅動)。 databaseId 如果配置了數據庫廠商標識(databaseIdProvider),MyBatis 會加載所有的不帶 databaseId 或匹配當前 databaseId 的語句;如果帶或者不帶的語句都有,則不帶的會被忽略。 resultOrdered 這個設置僅針對嵌套結果 select 語句適用:如果為 true,就是假設包含了嵌套結果集或是分組,這樣的話當返回一個主結果行的時候,就不會發生有對前面結果集的引用的情況。 這就使得在獲取嵌套的結果集的時候不至于導致內存不夠用。默認值:false。 resultSets 這個設置僅對多結果集的情況適用。它將列出語句執行后返回的結果集并給每個結果集一個名稱,名稱是逗號分隔的。 insert, update 和 delete

數據變更語句 insert,update 和 delete 的實現非常接近:

<insert parameterType='domain.blog.Author' flushCache='true' statementType='PREPARED' keyProperty='' keyColumn='' useGeneratedKeys='' timeout='20'> ​ <update parameterType='domain.blog.Author' flushCache='true' statementType='PREPARED' timeout='20'> ​ <delete parameterType='domain.blog.Author' flushCache='true' statementType='PREPARED' timeout='20'>屬性 描述 id 命名空間中的唯一標識符,可被用來代表這條語句。 parameterType 將要傳入語句的參數的完全限定類名或別名。這個屬性是可選的,因為 MyBatis 可以通過類型處理器推斷出具體傳入語句的參數,默認值為未設置(unset)。 parameterMap 這是引用外部 parameterMap 的已經被廢棄的方法。請使用內聯參數映射和 parameterType 屬性。 flushCache 將其設置為 true 后,只要語句被調用,都會導致本地緩存和二級緩存被清空,默認值:true(對于 insert、update 和 delete 語句)。 timeout 這個設置是在拋出異常之前,驅動程序等待數據庫返回請求結果的秒數。默認值為未設置(unset)(依賴驅動)。 statementType STATEMENT,PREPARED 或 CALLABLE 的一個。這會讓 MyBatis 分別使用 Statement,PreparedStatement 或 CallableStatement,默認值:PREPARED。 useGeneratedKeys (僅對 insert 和 update 有用)這會令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法來取出由數據庫內部生成的主鍵(比如:像 MySQL 和 SQL Server 這樣的關系數據庫管理系統的自動遞增字段),默認值:false。 keyProperty (僅對 insert 和 update 有用)唯一標記一個屬性,MyBatis 會通過 getGeneratedKeys 的返回值或者通過 insert 語句的 selectKey 子元素設置它的鍵值,默認值:未設置(unset)。如果希望得到多個生成的列,也可以是逗號分隔的屬性名稱列表。 keyColumn (僅對 insert 和 update 有用)通過生成的鍵值設置表中的列名,這個設置僅在某些數據庫(像 PostgreSQL)是必須的,當主鍵列不是表中的第一列的時候需要設置。如果希望使用多個生成的列,也可以設置為逗號分隔的屬性名稱列表。 databaseId 如果配置了數據庫廠商標識(databaseIdProvider),MyBatis 會加載所有的不帶 databaseId 或匹配當前 databaseId 的語句;如果帶或者不帶的語句都有,則不帶的會被忽略。 生成主鍵

<selectKey keyProperty='id' resultType='int' order='BEFORE' statementType='PREPARED'>屬性 描述 keyProperty selectKey 語句結果應該被設置的目標屬性。如果希望得到多個生成的列,也可以是逗號分隔的屬性名稱列表。 keyColumn 匹配屬性的返回結果集中的列名稱。如果希望得到多個生成的列,也可以是逗號分隔的屬性名稱列表。 resultType 結果的類型。MyBatis 通??梢酝茢喑鰜恚菫榱烁泳_,寫上也不會有什么問題。MyBatis 允許將任何簡單類型用作主鍵的類型,包括字符串。如果希望作用于多個生成的列,則可以使用一個包含期望屬性的 Object 或一個 Map。 order 這可以被設置為 BEFORE 或 AFTER。如果設置為 BEFORE,那么它會首先生成主鍵,設置 keyProperty 然后執行插入語句。如果設置為 AFTER,那么先執行插入語句,然后是 selectKey 中的語句 - 這和 Oracle 數據庫的行為相似,在插入語句內部可能有嵌入索引調用。 statementType 與前面相同,MyBatis 支持 STATEMENT,PREPARED 和 CALLABLE 語句的映射類型,分別代表 PreparedStatement 和 CallableStatement 類型。

<selectKey resultType='java.lang.Long' order='AFTER' keyProperty='id'> SELECT LAST_INSERT_ID() AS id </selectKey>sql

這個元素可以被用來定義可重用的 SQL 代碼段,這些 SQL 代碼可以被包含在其他語句中。它可以(在加載的時候)被靜態地設置參數。 在不同的包含語句中可以設置不同的值到參數占位符上。比如:

<sql id='userColumns'> ${alias}.id,${alias}.username,${alias}.password </sql> <select resultType='map'> select <include refid='userColumns'><property name='alias' value='t1'/></include>, <include refid='userColumns'><property name='alias' value='t2'/></include> from some_table t1 cross join some_table t2 </select>結果映射

resultMap 元素是 MyBatis 中最重要最強大的元素,在一些情形下允許你進行一些 JDBC 不支持的操作。實際上,在為一些比如連接的復雜語句編寫映射代碼的時候,一份 resultMap 能夠代替實現同等功能的長達數千行的代碼。ResultMap 的設計思想是,對于簡單的語句根本不需要配置顯式的結果映射,而對于復雜一點的語句只需要描述它們的關系就行了。

在JavaBean中定義一個有 3 個屬性:id,username 和 hashedPassword的類,然后在mapper.xml中,這些屬性會對應到 select 語句中的列名,這樣的一個 JavaBean 可以被映射到 ResultSet,就像映射到 HashMap 一樣簡單。

<select resultType='com.someapp.model.User'> select id, username, hashedPassword from some_table where id = #{id} </select>

像第三中的第三個例子,也可以定義外部resultMap,這也是解決列名不匹配的另外一種方式。

<resultMap type='User'> <id property='id' column='user_id' /> <result property='username' column='user_name'/> <result property='password' column='hashed_password'/> </resultMap> ​ <select resultMap='userResultMap'> select user_id, user_name, hashed_password from some_table where id = #{id} </select>結果映射(resultMap) constructor-用于在實例化類時,注入結果到構造方法中 idArg - ID 參數;標記出作為 ID 的結果可以幫助提高整體性能 arg - 將被注入到構造方法的一個普通結果 id ? 一個 ID 結果;標記出作為 ID 的結果可以幫助提高整體性能 result ? 注入到字段或 JavaBean 屬性的普通結果 association? 一個復雜類型的關聯;許多結果將包裝成這種類型 嵌套結果映射 ? 關聯本身可以是一個 resultMap 元素,或者從別處引用一個 collection? 一個復雜類型的集合 嵌套結果映射 ? 集合本身可以是一個 resultMap 元素,或者從別處引用一個 discriminator? 使用結果值來決定使用哪個resultMap case? 基于某些值的結果映射 嵌套結果映射 ? case 本身可以是一個 resultMap 元素,因此可以具有相同的結構和元素,或者從別處引用一個。屬性 描述 id 當前命名空間中的一個唯一標識,用于標識一個結果映射。 type 類的完全限定名, 或者一個類型別名(關于內置的類型別名,可以參考上面的表格)。 autoMapping 如果設置這個屬性,MyBatis將會為本結果映射開啟或者關閉自動映射。 這個屬性會覆蓋全局的屬性 autoMappingBehavior。默認值:未設置(unset)。 id & result

<id property='id' column='post_id'/> <result property='subject' column='post_subject'/>

這些是結果映射最基本的內容。id 和 result 元素都將一個列的值映射到一個簡單數據類型(String, int, double, Date 等)的屬性或字段。

這兩者之間的唯一不同是,id 元素表示的結果將是對象的標識屬性,這會在比較對象實例時用到。 這樣可以提高整體的性能,尤其是進行緩存和嵌套結果映射(也就是連接映射)的時候。

屬性 描述 property 映射到列結果的字段或屬性。如果用來匹配的 JavaBean 存在給定名字的屬性,那么它將會被使用。否則 MyBatis 將會尋找給定名稱的字段。 無論是哪一種情形,你都可以使用通常的點式分隔形式進行復雜屬性導航。 比如,你可以這樣映射一些簡單的東西:“username”,或者映射到一些復雜的東西上:“address.street.number”。 column 數據庫中的列名,或者是列的別名。一般情況下,這和傳遞給 resultSet.getString(columnName) 方法的參數一樣。 javaType 一個 Java 類的完全限定名,或一個類型別名(關于內置的類型別名,可以參考上面的表格)。 如果你映射到一個 JavaBean,MyBatis 通??梢酝茢囝愋汀H欢?,如果你映射到的是 HashMap,那么你應該明確地指定 javaType 來保證行為與期望的相一致。 jdbcType JDBC 類型,所支持的 JDBC 類型參見這個表格之后的“支持的 JDBC 類型”。 只需要在可能執行插入、更新和刪除的且允許空值的列上指定 JDBC 類型。這是 JDBC 的要求而非 MyBatis 的要求。如果你直接面向 JDBC 編程,你需要對可能存在空值的列指定這個類型。 typeHandler 我們在前面討論過默認的類型處理器。使用這個屬性,你可以覆蓋默認的類型處理器。 這個屬性值是一個類型處理器實現類的完全限定名,或者是類型別名。 緩存

默認情況下,只啟用了本地的會話緩存,它僅僅對一個會話中的數據進行緩存。 要啟用全局的二級緩存,只需要在你的 SQL 映射文件中添加一行:<cache/>

基本上就是這樣。這個簡單語句的效果如下:

映射語句文件中的所有 select 語句的結果將會被緩存。 映射語句文件中的所有 insert、update 和 delete 語句會刷新緩存。 緩存會使用最近最少使用算法(LRU, Least Recently Used)算法來清除不需要的緩存。 緩存不會定時進行刷新(也就是說,沒有刷新間隔)。 緩存會保存列表或對象(無論查詢方法返回哪種)的 1024 個引用。 緩存會被視為讀/寫緩存,這意味著獲取到的對象并不是共享的,可以安全地被調用者修改,而不干擾其他調用者或線程所做的潛在修改。

提示 緩存只作用于 cache 標簽所在的映射文件中的語句。如果你混合使用 Java API 和 XML 映射文件,在共用接口中的語句將不會被默認緩存。你需要使用 @CacheNamespaceRef 注解指定緩存作用域。

這些屬性可以通過 cache 元素的屬性來修改。比如:

<cache eviction='FIFO' flushInterval='60000' size='512' readOnly='true'/>

這個更高級的配置創建了一個 FIFO 緩存,每隔 60 秒刷新,最多可以存儲結果對象或列表的 512 個引用,而且返回的對象被認為是只讀的,因此對它們進行修改可能會在不同線程中的調用者產生沖突。

可用的清除策略有:

LRU ? 最近最少使用:移除最長時間不被使用的對象。 FIFO ? 先進先出:按對象進入緩存的順序來移除它們。 SOFT ? 軟引用:基于垃圾回收器狀態和軟引用規則移除對象。 WEAK ? 弱引用:更積極地基于垃圾收集器狀態和弱引用規則移除對象。

默認的清除策略是 LRU。

flushInterval(刷新間隔)屬性可以被設置為任意的正整數,設置的值應該是一個以毫秒為單位的合理時間量。 默認情況是不設置,也就是沒有刷新間隔,緩存僅僅會在調用語句時刷新。

size(引用數目)屬性可以被設置為任意正整數,要注意欲緩存對象的大小和運行環境中可用的內存資源。默認值是 1024。

readOnly(只讀)屬性可以被設置為 true 或 false。只讀的緩存會給所有調用者返回緩存對象的相同實例。 因此這些對象不能被修改。這就提供了可觀的性能提升。而可讀寫的緩存會(通過序列化)返回緩存對象的拷貝。 速度上會慢一些,但是更安全,因此默認值是 false。

提示 二級緩存是事務性的。這意味著,當 SqlSession 完成并提交時,或是完成并回滾,但沒有執行 flushCache=true 的 insert/delete/update 語句時,緩存會獲得更新。

使用自定義緩存

除了上述自定義緩存的方式,你也可以通過實現你自己的緩存,或為其他第三方緩存方案創建適配器,來完全覆蓋緩存行為。

<cache type='com.domain.something.MyCustomCache'/>

例子:

type 屬性指定的類必須實現 org.mybatis.cache.Cache 接口,且提供一個接受 String 參數作為 id 的構造器。 這個接口是 MyBatis 框架中許多復雜的接口之一,但是行為卻非常簡單。

public interface Cache { String getId(); int getSize(); void putObject(Object key, Object value); Object getObject(Object key); boolean hasKey(Object key); Object removeObject(Object key); void clear(); }動態SQL Mybatis 動態 SQL ,可以讓我們在 XML 映射文件內,以 XML 標簽的形式編寫動態 SQL ,完成邏輯判斷和動態拼接 SQL 的功能。 Mybatis 提供了 9 種動態 SQL 標簽:<if />、<choose />、<when />、<otherwise />、<trim />、<where />、<set />、<foreach />、<bind /> 。 其執行原理為,使用 OGNL 的表達式,從 SQL 參數對象中計算表達式的值,根據表達式的值動態拼接 SQL ,以此來完成動態 SQL 的功能。if

動態 SQL 通常要做的事情是根據條件包含 where 子句的一部分。比如:

<selectresultType='Blog'> SELECT * FROM BLOG WHERE state = ‘ACTIVE’ <if test='title != null'> AND title like #{title} </if> </select>

這條語句提供了一種可選的查找文本功能。如果沒有傳入“title”,那么所有處于“ACTIVE”狀態的BLOG都會返回;反之若傳入了“title”,那么就會對“title”一列進行模糊查找并返回 BLOG 結果(“title”參數值是可以包含一些掩碼或通配符的)。

通過“title”和“author”兩個參數進行可選搜索:

<selectresultType='Blog'> SELECT * FROM BLOG WHERE state = ‘ACTIVE’ <if test='title != null'> AND title like #{title} </if> <if test='author != null and author.name != null'> AND author_name like #{author.name} </if> </select>choose, when, otherwise

有時我們不想應用到所有的條件語句,而只想從中擇其一項。針對這種情況,MyBatis 提供了 choose 元素,它有點像 Java 中的 switch 語句。

這次變為提供了“title”就按“title”查找,提供了“author”就按“author”查找的情形,若兩者都沒有提供,就返回所有符合條件的 BLOG(實際情況可能是由管理員按一定策略選出 BLOG 列表,而不是返回大量無意義的隨機結果)。

<selectresultType='Blog'> SELECT * FROM BLOG WHERE state = ‘ACTIVE’ <choose> <when test='title != null'> AND title like #{title} </when> <when test='author != null and author.name != null'> AND author_name like #{author.name} </when> <otherwise> AND featured = 1 </otherwise> </choose> </select>trim, where, set

上面的幾個例子,如果條件不滿足的話,會拼湊成不成一條sql語句,導致無法查詢,如:SELECT * FROM BLOG WHERE

<selectresultType='Blog'> SELECT * FROM BLOG <where> <if test='state != null'> state = #{state} </if> <if test='title != null'> AND title like #{title} </if> <if test='author != null and author.name != null'> AND author_name like #{author.name} </if> </where> </select>

where 元素只會在至少有一個子元素的條件返回 SQL 子句的情況下才去插入“WHERE”子句。而且,若語句的開頭為“AND”或“OR”,where 元素也會將它們去除。

如果 where 元素沒有按正常套路出牌,我們可以通過自定義 trim 元素來定制 where 元素的功能。比如,和 where 元素等價的自定義 trim 元素為:

<trim prefix='WHERE' prefixOverrides='AND |OR '> ... </trim>

prefixOverrides 屬性會忽略通過管道分隔的文本序列(注意此例中的空格也是必要的)。它的作用是移除所有指定在 prefixOverrides 屬性中的內容,并且插入 prefix 屬性中指定的內容。

類似的用于動態更新語句的解決方案叫做 set。set 元素可以用于動態包含需要更新的列,而舍去其它的。比如:

<update id='updateAuthorIfNecessary'> update Author <set> <if test='username != null'>username=#{username},</if> <if test='password != null'>password=#{password},</if> <if test='email != null'>email=#{email},</if> <if test='bio != null'>bio=#{bio}</if> </set> where id=#{id} </update>

這里,set 元素會動態前置 SET 關鍵字,同時也會刪掉無關的逗號,因為用了條件語句之后很可能就會在生成的 SQL 語句的后面留下這些逗號。(譯者注:因為用的是“if”元素,若最后一個“if”沒有匹配上而前面的匹配上,SQL 語句的最后就會有一個逗號遺留)

若你對 set 元素等價的自定義 trim 元素的代碼感興趣,那這就是它的真面目:

<trim prefix='SET' suffixOverrides=','> ... </trim>

注意這里我們刪去的是后綴值,同時添加了前綴值。

foreach

動態 SQL 的另外一個常用的操作需求是對一個集合進行遍歷,通常是在構建 IN 條件語句的時候。比如:

<select resultType='domain.blog.Post'> SELECT * FROM POST P WHERE ID in <foreach item='item' index='index' collection='list' open='(' separator=',' close=')'> #{item} </foreach> </select>

foreach 元素的功能非常強大,它允許你指定一個集合,聲明可以在元素體內使用的集合項(item)和索引(index)變量。它也允許你指定開頭與結尾的字符串以及在迭代結果之間放置分隔符。這個元素是很智能的,因此它不會偶然地附加多余的分隔符。

注意

可以將任何可迭代對象(如 List、Set 等)、Map 對象或者數組對象傳遞給 foreach 作為集合參數。當使用可迭代對象或者數組時,index 是當前迭代的次數,item 的值是本次迭代獲取的元素。當使用 Map 對象(或者 Map.Entry 對象的集合)時,index 是鍵,item 是值。

bind

bind 元素可以從 OGNL 表達式中創建一個變量并將其綁定到上下文。比如:

<select resultType='Blog'> <bind name='pattern' value='’%’ + _parameter.getTitle() + ’%’' /> SELECT * FROM BLOG WHERE title LIKE #{pattern} </select>

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Mybatis 數據庫
相關文章:
主站蜘蛛池模板: 日本一级特黄aa大片 | 国产在线精品一区二区三区 | 欧美日韩精品一区二区在线视频 | 欧美在线免费视频 | 色福利在线 | 麻豆视频国产精品 | 国产一区日韩二区欧美三区 | 窝窝在线视频 | 日本少妇热妇bbbbbb | 老外和中国女人毛片免费视频 | 一本色道久久综合狠狠躁 | 91久久久久久久 | 久久国产精品波多野结衣av | 亚洲一区二区久久 | av中文字幕免费在线观看 | 成人国产在线 | 日本精品不卡 | 国产精品无码久久久久成人影院 | 一级片在线播放 | 性欧美在线视频免费观看 | 国产日韩一区二区 | 亚洲国产精品成人综合在线 | 午夜高清福利 | 久久精品视频免费 | 麻豆亚洲精品 | 亚洲精品乱码久久久久红杏 | 久久综合社区 | www国产精品一区 | av明星换脸无码精品区 | 天天摸天天爽日韩欧美大片 | 久久99国产亚洲高清观看首页 | 窝窝影院午夜看片 | 欧美 日韩 国产 在线 | 日韩精品一区二区不卡 | 黄色片久久 | 97精品国产97久久久久久春色 | 丰满少妇作爱视频免费观看 | 精品一区二区三区激情在线欧美 | 国产精品熟妇一区二区三区四区 | 91日韩精品久久久久身材苗条 | 亚洲国产成人丁香五月激情 | 伊人精品在线 | 欧美极品jizzhd欧美爆 | 一级aa毛片 | 亚洲v欧美v国产v在线观看 | 另类av在线 | 亚洲欧美精品suv | 亚洲日本在线电影 | 色在线影院 | 亚洲综合少妇 | 久久婷婷久久一区二区三区 | 午夜天堂精品久久久久 | 欧美视频在线观看一区 | 40岁丰满东北少妇毛片 | 美国一级黄色毛片 | 老头与老头性ⅹxx视频 | 少妇高潮a一级 | 精品国产999 | 久久发布国产伦子伦精品 | 亚洲乱码视频在线观看 | 久久久久亚洲精品 | 欧美日韩综合一区二区 | 久久香蕉国产线看观看精品yw | 国产精品九九九九九 | 中文字幕亚洲欧美 | 国产精品原创 | 日本特黄特黄刺激大片 | 国产md视频一区二区三区 | 六月丁香啪啪 | 一级黄色毛片子 | 久久精品人人做人人爱爱站长工具 | 国产精品中文久久久久久久 | 国产精品成人av久久 | 亚洲第一综合色 | 国产高清在线a视频大全 | 久久久久女教师免费一区 | 亚洲精品一区二区三区中文字幕 | 婷婷久久丁香 | 男女视频国产 | 久久午夜无码鲁丝片 | 亚洲欧美日本一区 | 99热国内精品 | 国产第一网站 | 国产精品久久久久aaaa九色 | 国产精品白丝喷水在线观看 | 毛片一卡二卡 | 88av在线视频| 国产 日韩 欧美 制服 另类 | 亚洲人成网网址在线看 | 精品久久久久久无码中文字幕 | 黑人巨大无码中文字幕无码 | 精品黄色一级片 | 啪啪国产精品 | 国产伦精品一区二区三区视频孕妇 | 理论片午午伦夜理片久久 | xxx在线播放 | 日本欧美一区二区三区乱码 | 久久精品无码免费不卡 | 无码中文av有码中文av | 国产三级视频在线播放 | 91免费视频入口 | 免费无码又爽又黄又刺激网站 | 看片网站在线观看 | 狠狠色丁香婷婷综合 | 久久无码中文字幕免费影院蜜桃 | 国产三区精品 | 成人国产精品免费观看动漫 | 韩国三级在线看 | 国产美女网 | 欧美无砖区 | 玩弄少妇肉体到高潮动态图 | 视频在线一区 | 99热久久精品免费精品 | 天干夜天干天天天爽2022 | 日本又色又爽又黄又高潮 | 欧美视频在线免费 | 日本黄在线观看 | 日韩不卡手机视频在线观看 | 任你操精品视频 | 国产亚洲成av人在线观看导航 | 老司机午夜福利视频 | 青娱乐伊人 | 亚洲免费a视频 | 无遮挡又爽又刺激的视频 | 国产精品视频成人 | 欧美成人高清ww | 国产性夜夜春夜夜爽 | 色五月激情五月 | 他揉捏她两乳不停呻吟在线播放 | xxxx国产视频 | 538prom精品视频线放 | 在线视频网站www色 300部国产真实乱 | 四虎1515hh海外永久免费 | 蜜臀aⅴ精品一区二区三区 蜜臀aⅴ一区二区三区 | 精品国产一区二区三区忘忧草 | 大战肉丝少妇在线观看 | 综合色婷婷一区二区亚洲欧美国产 | 少妇xxxxxx | 国产激情偷乱视频一区二区三区 | 含羞草91大少妇 | 毛片视频网站在线观看 | 国产成人av一区二区三区在线观看 | 少妇性bbb搡bbb爽爽爽 | 麻豆视频在线观看免费网站黄 | 国产动漫av| 美国色综合| 40岁丰满东北少妇毛片 | 亚洲免费黄色 | 免费国产在线精品一区二区三区 | 雨宫琴音一区二区三区 | 国产精品区一区二区三区 | 久久久久久一级片 | 一二三四观看视频社区在线 | 91亚洲国产成人精品一区二区三 | 亚洲激情五月 | 国产精品国产精品国产专区不卡 | 国产精品天美传媒入口 | 天天射天天射 | 国产一级二级在线观看 | 国产电影无码午夜在线播放 | 亚洲精品在线一区二区 | 成人男男视频拍拍拍在线观看 | 日韩欧美一二三 | 五月天精品一区二区三区 | 国产精品久久久久久久久久iiiii | 亚洲一级一级一级 | 亚洲成在人网站无码天堂 | 中文字幕第一页av | 成人欧美一区二区三区在线播放 | 好吊妞视频788gao在线观看 | 欧美专区第一页 | 大狠狠大臿蕉香蕉大视频 | 青草视频在线播放 | 依人在线观看 | 337p日本欧洲亚洲大胆色噜噜 | 亚洲成人生活片 | 干日本少妇首页 | 天干夜天干天天天爽2022 | 日韩在线视频一区 | 国产成人精品一区二区三区 | 亚洲国产爱| xsmax国产精品 | 免费的黄色毛片 | 国内老熟妇对白hdxxxx | 国产精品欧美福利久久 | 成人宗合网 | 婷婷六月在线 | 激情欧美一区二区 | 精品国产乱码久久久久久天狼 | 一级a毛片| 古代玷污糟蹋np高辣h文 | 国产网红主播精品av | 农村黄性色生活片 | 国产精品久久人妻无码网站一区 | 久久精品第一页 | 日本一区二区视频在线 | 久久久妇女国产精品影视 | 做爰xxxⅹ性69免费软件 | 法国极品成人h版 | 色欲天天天综合网 | 黄色一毛片 | 亚洲欧美日韩久久一区二区 | 无码人妻精品一区二区蜜桃百度 | 本色视频aaaaaa一级网站 | 日韩不卡高清视频 | 久久久久一区二区三区 | 星铁乱淫h侵犯h文 | 亚洲 在线 | 久久国产资源 | 性高湖久久久久久久久免费 | 超碰一级片 | 国产最新精品 | 欧美最猛性xxxxx免费 | 黄页网站视频免费大全 | 亚洲激情视频 | 老头把女人躁得呻吟 | 免费在线看污视频 | 久久久亚洲国产精品麻豆综合天堂 | 久操精品 | 少妇裸体做爰免费视频网站 | 亚洲一区二区自拍偷拍 | 美女mm131爽爽爽免费动视频 | 色老头免费视频 | 日本乱妇乱子视频 | 久久99精品久久久久婷婷 | 亚洲精品乱码久久久久久蜜桃91 | 日本少妇毛茸茸高潮 | 午夜精品久久久久久久99热黄桃 | 性一交一无一伦一精一品 | 日本三级成本人网站 | 国产激情无套内精对白视频 | 亚洲激情自拍 | 亚洲操操 | 日韩污污| 亚洲中文字幕久久精品无码喷水 | 一本之道ay免费 | 人人爽久久涩噜噜噜小说 | 99热在线免费观看 | 少妇精品免费视频欧美 | 99色国产| 久久观看最新视频 | 特级黄色毛片 | 性少妇mdms丰满hdfilm | 精品视频9999 | 18国产免费视频 | 国产大片一区 | 久久精品亚洲天堂 | 免费观看全黄做爰大片国产 | 强奷乱码中文字幕熟女导航 | 黄色在线免费播放 | 日韩一区二区三区在线看 | 日本成人黄色 | 亚洲日韩欧美综合 | 狠狠操狠狠色 | 免费无码又爽又刺激高潮的视频 | 鲁鲁狠狠狠7777一区二区 | 一级全黄少妇性色生活免费看 | 强制憋尿play黄文尿奴 | 国产老熟女网站 | 国产网址 | 91久久视频| 欧美做爰全过程免费看 | 99久久婷婷国产综合精品电影 | 久久久橹橹橹久久久久高清 | 日韩一级黄色毛片 | 亚洲精品xxxx| 一日本道a高清免费播放 | 中文幕无线码中文字夫妻 | 在线看无码的免费网站 | 国产成人精品一区二区在线小狼 | 欧美一区二区三区免费看 | 午夜影院操 | 天天狠天天插天天透 | 国产美女极度色诱视频www | 大尺度做爰床戏呻吟色戒韩国 | 人妻互换免费中文字幕 | 国产亚洲精品久久yy50 | y111111少妇蜜桃视频 | 77777亚洲午夜久久多人 | 99er热精品视频国产 | 2024男人天堂| 韩国一级淫一片免费放 | av中文字幕第一页 | 久久a视频| 日韩黄色三级 | 亚洲综合精品伊人久久 | 亚洲精品喷潮一区二区三区 | www夜片内射视频日韩精品成人 | 一级在线看 | 野花中文免费观看6 | 精品爆乳一区二区三区无码av | 色婷婷久久一区二区三区麻豆 | 久久久精品一区 | 久久777国产线看观看精品 | 亚洲日本人的毛茸茸 | 激情网站在线观看 | 91丨九色 | 少妇人妻偷人精品视频 | 中文字幕天堂网 | 欧美aaaaaaaaa | 亚洲人成伊人成综合网久久久 | 九九精品在线观看视频 | 香蕉久久久久久 | 成人一级网站 | 国产h在线 | 成人男女做爰免费视频网老司机 | 国产精品第四页 | 欧美精品首页 | av日韩在线播放 | 国产色综合网 | 全黄性性激高免费视频 | 成人欧美一区二区三区黑人一 | 欧美日韩69 | 一区免费视频 | 欧美美女啪啪 | 亚洲综合社区 | 国内女人喷潮完整视频 | 欧美日韩国产免费一区二区三区 | 国产明星裸体无码xxxx视频 | 无码专区人妻系列日韩精品少妇 | 国产精品无码专区av在线播放 | 日韩www视频 | 免费的理伦片在线播放 | xvideos成人免费中文版 | 男女激情视频免费观看刺激 | 蜜臀av亚洲一区二区 | 亚洲精品二三区 | 噜噜噜精品欧美成人 | 亚洲天堂免费在线 | 亚洲va中文字幕无码久久 | 99精品视频在线观看 | 亚洲深深色噜噜狠狠爱网站 | 亚洲欧洲中文日韩久久av乱码 | 日韩精品一区二区三区不卡 | 国产99久久九九精品的功能介绍 | 成年人免费在线看 | jiizzyou性欧美老片 | 日日爽日日操 | 亚洲一区国产一区 | 爱草视频 | 狠狠色噜噜狠狠狠狠 | 日本19禁啪啪无遮挡网站 | 日本欧美一区二区三区乱码 | 久无码久无码av无码 | 亚洲日韩一区二区 | 日日躁你夜夜躁你av蜜 | 日本熟妇大乳 | 久久靖品 | 亚洲精品欧洲 | 天干天干天啪啪夜爽爽av | 97超视频| 国产精品久久九九 | 欧美粗大猛烈 | 色综合视频一区二区三区44 | 欧美又大粗又爽又黄大片视频 | 东热ca大乱合集 | 精品久久久久久久久久久aⅴ | 久久草草亚洲蜜桃臀 | 亚洲精品无码专区在线在线播放 | 日本按摩片色xxxx | 一区二区国产视频 | 天天爱天天做天天大综合 | 中文字幕免费高清在线观看 | 成人亚洲精品 | 97久久精品无码一区二区天美 | 中文字幕日韩精品亚洲七区 | 超碰激情 | 西西人体www44rt大胆高清 | 青青草国产在线 | 黄a免费网络 | 国产毛片毛片毛片 | 日日婷婷夜日日天干 | 天堂在线中文网 | 97av麻豆蜜桃一区二区 | 性人久久久久 | 曰韩一级片 | 国产精品性做久久久久久 | 欧美精品黄色 | 日本天堂在线播放 | 亚洲综合一区二区 | 又大又长粗又爽又黄少妇视频 | 伊人精品久久 | 一区在线视频 | 欧美jjzz| 久久国产午夜精品理论片最新版本 | 在线观看亚洲专区 | 在线观看中文字幕 | 超碰97免费在线 | 68日本xxxxxⅹxxx59 | 亚洲理论中文字幕 | 成人高清视频在线 | 亚洲成人av一区二区 | 99久热在线精品996热是什么 | 一二三四免费观看在线视频中文版 | 蜜桃精品免费久久久久影院 | 国产亚洲精久久久久久无码 | 熟妇人妻va精品中文字幕 | 欧美人与善在线com 久久精品人人做人人综合 国产特级毛片aaaaaa高潮流水 | 国产呻吟久久久久久久92 | 九九久久视频 | 天天夜夜骑 | 天堂网一区二区三区 | 清纯唯美一区二区三区 | 日一区二区 | 男女裸体无遮挡做爰 | 中文字幕无码不卡在线 | 婷婷夜夜躁天天躁人人躁 | 91不卡视频 | 中文人妻熟女乱又乱精品 | 无码免费中文字幕视频 | 人妻洗澡被强公日日澡 | 久草在线新时代视觉体验 | 最新91在线| 欧美丰满一区二区免费视频 | 九九热在线播放 | 成人在线精品 | 99热这里有精品 | 自拍偷在线精品自拍偷99九色 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 国产精品新婚之夜泄露女同 | 亚洲 欧美 另类人妖 | 93看片淫黄大片一级 | 老色鬼永久精品网站 | 久久久久亚洲精品无码网址 | 亚洲字幕av一区二区三区四区 | 亚洲国产精品网站 | 一二三国产777avav | 色欲av无码一区二区三区 | 东伊人一本东热 | 台湾chinesehdxxxx少妇 | 亚洲自拍偷拍一区二区 | 国产精品无码专区在线观看 | 精品综合久久久久久98 | 亚洲第一成年免费网站 | 成年人视频网址 | 十八禁真人啪啪免费网站 | 黄色大片免费看 | 日韩熟女精品一区二区三区 | 豆麻视频在线免费观看 | 欧美日韩免费在线观看 | 欧美一区二区免费 | 午夜剧场欧美 | 国产伦精品一区二区三区四区 | 91视频播放器| 亚洲色图18p| 国产精品观看 | 全肉高h后宫gl| 欧美日韩激情一区二区 | 欧美在线一二 | 男女啪动最猛动态图 | 日韩欧美久久 | 九九免费视频 | 久久久久久夜精品精品免费啦 | 91亚洲人人在字幕国产 | 欧美乱大交xxxxx潮喷 | 亚洲精品国产一区二区精华液 | 毛片网特黄 | 狠狠色噜噜狠狠狠狠777米奇 | 中文字幕第二一区 | a√天堂资源在线 | 18女下面流水不遮图 | 成人做爰69片免费 | 一级做a爰片久久毛片 | 无遮挡国产高潮视频免费观看 | 老司机成人网 | 高清av网址| 亚洲第一综合色 | 欧美成人看片黄a免费看 | 欧美在线免费观看视频 | 天天夜夜骑| 成人交配视频 | 国产精品久久久久久久久久免费看 | www欧美| 无码一区二区三区视频 | 日本成人在线看 | 久久爱综合 | 四虎影视国产精品免费久久 | 蜜臀久久99精品久久久久宅男 | 亚洲乱色伦图片区小说 | 亚洲性免费 | 天天操天天操天天干 | 久久天堂国产香蕉三区 | 午夜精品一区二区三区免费 | 久久精品aⅴ无码中文字字幕蜜桃 | 97精品一区二区视频在线观看 | 亚洲爆乳精品无码一区二区 | 日本资源在线 | 欧美久久综合 | 亚洲一个色 | 人妻少妇久久久久久97人妻 | 国产天堂 | 国产乱码一区二区三区咪爱 | 国产51精品入口豆花 | 国产对白叫床清晰在线播放图片 | 久久国产精品久久久 | 少妇又色又爽又高潮极品 | 国产狂做受xxxxx高潮 | 伊人影院视频 | 91综合中文字幕乱偷在线 | 国产日产久久欧美清爽 | 国产乱人乱精一区二视频国产精品 | 美女张开腿让人桶 | 妺妺窝人体色www聚色窝 | 国产熟妇另类久久久久 | 哺乳期喷奶水丰满少妇 | 国产精品免费久久 | 91久久精品一区二区 | 免费麻豆视频 | 国产精品186在线观看在线播放 | 日本在线视频播放 | 欧美大片免费高清观看 | 国产精品jizz在线观看美国 | 成年男女免费视频网站 | 亚洲伊人久久精品影院 | 日本中国内射bbxx | 亚洲乱码视频在线观看 | 91成人在线免费观看 | 少妇呻吟白浆高潮啪啪69 | 国产黄色片在线观看 | 亚洲男人的天堂一区二区 | 又湿又紧又大又爽a视频国产 | 久久久久精 | 人妻系列无码专区无码中出 | 国语对白自产 | 偷窥自拍青青草 | 夜夜添无码试看一区二区三区 | 欧美日韩免费网站 | 欧美日韩国产专区 | 亚洲毛片在线观看 | 日本久久不卡 | 国产色婷婷五月精品综合在线 | 男生女生羞羞网站 | 色综合久久久久久久 | 一本一道波多野结衣av中文 | 无遮挡很爽很污很黄的网站 | www成人免费 | 骚五月| 一区二区在线观看免费 | 97超碰免费在线 | 国产乱码一区二区三区 | 亚洲国产免费 | 久久精品九九 | 精精国产xxxx视频在线播放 | 亚洲红桃视频 | 日韩欧美国产一区二区在线观看 | 欧美亚州国产 | 最近的中文字幕在线看视频 | 红色假期黑色婚礼2 | 毛片网免费 | 96国产精品久久久久aⅴ四区 | 国产又爽又黄的激情精品视频 | 欧美视频日韩视频 | 黄色视屏在线 | 久草在线视频新时代视频 | 第一av| 国产亚洲成av人片在线观看 | 欧美亚洲国产精品久久 | 日韩一区二区三区在线 | 手机av免费观看 | 亚洲综合在线一区 | 日产精品无人区 | 日本ts人妖系列在线专区 | 热久久久久久久久 | 综合久| 激情人妻另类人妻伦 | 国产精品专区在线观看 | 日韩视频免费在线观看 | 2022av视频 | 国产成人无码区免费网站 | 天堂网一区二区三区 | 免费观看全黄做爰大片小说 | 日本sm/羞辱/调教/捆绑视频 | 日韩欧美不卡在线 | 免费无码av一区二区三区 | 色婷婷视频 | 亚洲成av人片在www色猫咪 | 日本一区二区三区在线播放 | 久久精品成人无码观看免费 | 波多野结衣乳巨码无在线观看 | 强开小受嫩苞第一次免费视频 | 91精品无人区麻豆乱码1区2区介绍 | 亚洲欧美日韩久久精品 | 国产在线 | 中文 | 亚洲欧洲国产视频 | 久久久久夜夜夜综合国产 | 亚洲欧美日韩精品久久亚洲区 | 人妻va精品va欧美va | 久久久艹 | 国产精品久久久久久久 | 调教驯服丰满美艳麻麻在线视频 | 黑人巨大精品欧美一区二区桃花岛 | 亚洲一级免费视频 | 欧美精品久久久久久久久久白贞 | 波多野结衣免费视频观看 | 野草社区在线观看 | 黄色资源在线 | 欧美交换乱淫粗大 | 亚洲va欧美va人人爽春色影视 | 午夜无码区在线观看 | 亚洲乱码日产精品bd在线观看 | 国产成人精品777 | 一级欧美一级日韩片免费观看 | 成人夜视频 | 免费久久久久久 | 黄色激情av | 国产精品九九热 | 国产66精品久久久久999小说 | 国产精品不卡视频 | 国产又黄又爽视频 | 久久黄色网 | 东方欧美色图 | av一二三四区 | 国产成人毛片 | 欧美一区在线看 | 亚洲欧美一区二区三区情侣bbw |