亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

JDBC系列教程(一)

2019-11-18 13:58:48
字體:
供稿:網(wǎng)友

  本文出自: www.dukejava.com 作者:javaduke


連接
本概述是從《JDBCTM Database access from JavaTM: A Tutorial and Annotated Reference 》這本書中摘引來的。JavaSoft 目前正在預(yù)備這本書。這本書是一本教程,同時(shí)也是 JDBC 的重要參考手冊(cè),它將作為 Java 系列的組成部份在 1997 年春季由 Addison-Wesley 出版公司出版。


2.1 概述
Connection 對(duì)象代表與數(shù)據(jù)庫的連接。連接過程包括所執(zhí)行的 SQL 語句和在該連接上所返回的結(jié)果。一個(gè)應(yīng)用程序可與單個(gè)數(shù)據(jù)庫有一個(gè)或多個(gè)連接,或者可與許多數(shù)據(jù)庫有連接。


2.1.1 打開連接
與數(shù)據(jù)庫建立連接的標(biāo)準(zhǔn)方法是調(diào)用 DriverManager.getConnection 方法。該方法接受含有某個(gè) URL 的字符串。DriverManager 類(即所謂的 JDBC 治理層)將嘗試找到可與那個(gè) URL 所代表的數(shù)據(jù)庫進(jìn)行連接的驅(qū)動(dòng)程序。DriverManager 類存有已注冊(cè)的 Driver 類的清單。當(dāng)調(diào)用方法 getConnection 時(shí),它將檢查清單中的每個(gè)驅(qū)動(dòng)程序,直到找到可與 URL 中指定的數(shù)據(jù)庫進(jìn)行連接的驅(qū)動(dòng)程序?yàn)橹埂river 的方法 connect 使用這個(gè) URL 來建立實(shí)際的連接。

用戶可繞過 JDBC 治理層直接調(diào)用 Driver 方法。這在以下非凡情況下將很有用:當(dāng)兩個(gè)驅(qū)動(dòng)器可同時(shí)連接到數(shù)據(jù)庫中,而用戶需要明確地選用其中特定的驅(qū)動(dòng)器。但一般情況下,讓 DriverManager 類處理打開連接這種事將更為簡單。

下述代碼顯示如何打開一個(gè)與位于 URL "jdbc:odbc:wombat" 的數(shù)據(jù)庫的連接。所用的用戶標(biāo)識(shí)符為 "oboy" ,口令為 "12Java":

String url = "jdbc:odbc:wombat";
Connection con = DriverManager.getConnection(url, "oboy", "12Java");

2.1.2 一般用法的 URL
由于 URL 常引起混淆,我們將先對(duì)一般 URL 作簡單說明,然后再討論 JDBC URL。

URL(統(tǒng)一資源定位符)提供在 Internet 上定位資源所需的信息??蓪⑺胂鬄橐粋€(gè)地址。

URL 的第一部份指定了訪問信息所用的協(xié)議,后面總是跟著冒號(hào)。常用的協(xié)議有 "FTP"(代表“文件傳輸協(xié)議”)和 "http" (代表“超文本傳輸協(xié)議”)。假如協(xié)議是 "file",表示資源是在某個(gè)本地文件系統(tǒng)上而非在 Internet 上(下例用于表示我們所描述的部分;它并非 URL 的組成部分)。

ftp://javasoft.com/docs/JDK-1_apidocs.zip
http://java.sun.com/PRodUCts/jdk/CurrentRelease
file:/home/haroldw/docs/books/tutorial/summary.Html

URL 的其余部份(冒號(hào)后面的)給出了數(shù)據(jù)資源所處位置的有關(guān)信息。假如協(xié)議是 file,則 URL 的其余部份是文件的路徑。對(duì)于 ftp 和 http 協(xié)議,URL 的其余部份標(biāo)識(shí)了主機(jī)并可選地給出某個(gè)更詳盡的地址路徑。例如,以下是 JavaSoft 主頁的 URL。該 URL 只標(biāo)識(shí)了主機(jī):

http://java.sun.com

從該主頁開始瀏覽,就可以進(jìn)到許多其它的網(wǎng)頁中,其中之一就是 JDBC 主頁。JDBC 主頁的 URL 更為具體,它看起來類似:

http://java.sun.com/products/jdbc

2.1.3 JDBC URL
JDBC URL 提供了一種標(biāo)識(shí)數(shù)據(jù)庫的方法,可以使相應(yīng)的驅(qū)動(dòng)程序能識(shí)別該數(shù)據(jù)庫并與之建立連接。實(shí)際上,驅(qū)動(dòng)程序編程員將決定用什么 JDBC URL 來標(biāo)識(shí)特定的驅(qū)動(dòng)程序。用戶不必關(guān)心如何來形成 JDBC URL;他們只須使用與所用的驅(qū)動(dòng)程序一起提供的 URL 即可。JDBC 的作用是提供某些約定,驅(qū)動(dòng)程序編程員在構(gòu)造他們的 JDBC URL 時(shí)應(yīng)該遵循這些約定。

由于 JDBC URL 要與各種不同的驅(qū)動(dòng)程序一起使用,因此這些約定應(yīng)非常靈活。首先,它們應(yīng)答應(yīng)不同的驅(qū)動(dòng)程序使用不同的方案來命名數(shù)據(jù)庫。例如, odbc 子協(xié)議答應(yīng)(但并不是要求) URL 含有屬性值。

第二,JDBC URL 應(yīng)答應(yīng)驅(qū)動(dòng)程序編程員將一切所需的信息編入其中。這樣就可以讓要與給定數(shù)據(jù)庫對(duì)話的 applet 打開數(shù)據(jù)庫連接,而無須要求用戶去做任何系統(tǒng)治理工作。

第三, JDBC URL 應(yīng)答應(yīng)某種程度的間接性。也就是說,JDBC URL 可指向邏輯主機(jī)或數(shù)據(jù)庫名,而這種邏輯主機(jī)或數(shù)據(jù)庫名將由網(wǎng)絡(luò)命名系統(tǒng)動(dòng)態(tài)地轉(zhuǎn)換為實(shí)際的名稱。這可以使系統(tǒng)治理員不必將特定主機(jī)聲明為 JDBC 名稱的一部份。網(wǎng)絡(luò)命名服務(wù)(例如 DNS、 NIS 和 DCE )有多種,而對(duì)于使用哪種命名服務(wù)并無限制。

JDBC URL 的標(biāo)準(zhǔn)語法如下所示。它由三部分組成,各部分間用冒號(hào)分隔:

jdbc:< 子協(xié)議 >:< 子名稱 >

JDBC URL 的三個(gè)部分可分解如下:


jdbc ─ 協(xié)議。JDBC URL 中的協(xié)議總是 jdbc。


<子協(xié)議> ─ 驅(qū)動(dòng)程序名或數(shù)據(jù)庫連接機(jī)制(這種機(jī)制可由一個(gè)或多個(gè)驅(qū)動(dòng)程序支持)的名稱。子協(xié)議名的典型示例是 "odbc",該名稱是為用于指定 ODBC 風(fēng)格的數(shù)據(jù)資源名稱的 URL 專門保留的。例如,為了通過 JDBC-ODBC 橋來訪問某個(gè)數(shù)據(jù)庫,可以用如下所示的 URL:
jdbc:odbc:fred

本例中,子協(xié)議為 "odbc",子名稱 "fred" 是本地
ODBC 數(shù)據(jù)資源。

假如要用網(wǎng)絡(luò)命名服務(wù)(這樣 JDBC URL 中的數(shù)據(jù)庫名稱不必是實(shí)際名稱),則命名服務(wù)可以作為子協(xié)議。例如,可用如下所示的 URL :

jdbc:dcenaming:accounts-payable

本例中,該 URL 指定了本地 DCE 命名服務(wù)應(yīng)該將
數(shù)據(jù)庫名稱 "accounts-payable" 解析為更為具體的
可用于連接真實(shí)數(shù)據(jù)庫的名稱。


<子名稱> ─ 一種標(biāo)識(shí)數(shù)據(jù)庫的方法。子名稱可以依不同的子協(xié)議而變化。它還可以有子名稱的子名稱(含有驅(qū)動(dòng)程序編程員所選的任何內(nèi)部語法)。使用子名稱的目的是為定位數(shù)據(jù)庫提供足夠的信息。前例中,因?yàn)?ODBC 將提供其余部份的信息,因此用 "fred" 就已足夠。然而,位于遠(yuǎn)程服務(wù)器上的數(shù)據(jù)庫需要更多的信息。例如,假如數(shù)據(jù)庫是通過 Internet 來訪問的,則在 JDBC URL 中應(yīng)將網(wǎng)絡(luò)地址作為子名稱的一部份包括進(jìn)去,且必須遵循如下所示的標(biāo)準(zhǔn) URL 命名約定:
//主機(jī)名:端口/子協(xié)議

假設(shè) "dbnet" 是個(gè)用于將某個(gè)主機(jī)連接到 Internet 上的協(xié)議,則 JDBC URL 類似:

jdbc:dbnet://wombat:356/fred

2.1.4 "odbc" 子協(xié)議
子協(xié)議 odbc 是一種非凡情況。它是為用于指定 ODBC 風(fēng)格的數(shù)據(jù)資源名稱的 URL 而保留的,并具有下列特性:答應(yīng)在子名稱(數(shù)據(jù)資源名稱)后面指定任意多個(gè)屬性值。odbc 子協(xié)議的完整語法為:


jdbc:odbc:< 數(shù)據(jù)資源名稱 >[;< 屬性名 >=< 屬性值 >]*

因此,以下都是合法的 jdbc:odbc 名稱:

jdbc:odbc:qeor7
jdbc:odbc:wombat
jdbc:odbc:wombat;CacheSize=20;ExtensionCase=LOWER
jdbc:odbc:qeora;UID=kgh;PWD=fooey

2.1.5 注冊(cè)子協(xié)議
驅(qū)動(dòng)程序編程員可保留某個(gè)名稱以將之用作 JDBC URL 的子協(xié)議名。當(dāng) DriverManager 類將此名稱加到已注冊(cè)的驅(qū)動(dòng)程序清單中時(shí),為之保留該名稱的驅(qū)動(dòng)程序應(yīng)能識(shí)別該名稱并與它所標(biāo)識(shí)的數(shù)據(jù)庫建立連接。例如,odbc 是為 JDBC- ODBC 橋而保留的。示例之二,假設(shè)有個(gè) Miracle 公司,它可能會(huì)將 "miracle" 注冊(cè)為連接到其 Miracle DBMS 上的 JDBC 驅(qū)動(dòng)程序的子協(xié)議,從而使其他人都無法使用這個(gè)名稱。

JavaSoft 目前作為非正式代理負(fù)責(zé)注冊(cè) JDBC 子協(xié)議名稱。要注冊(cè)某個(gè)子協(xié)議名稱,請(qǐng)發(fā)送電子郵件到下述地址:

jdbc@wombat.eng.sun.com

2.1.6 發(fā)送 SQL 語句
連接一旦建立,就可用來向它所涉及的數(shù)據(jù)庫傳送 SQL 語句。JDBC 對(duì)可被發(fā)送的 SQL 語句類型不加任何限制。這就提供了很大的靈活性,即答應(yīng)使用特定的數(shù)據(jù)庫語句或甚至于非 SQL 語句。然而,它要求用戶自己負(fù)責(zé)確保所涉及的數(shù)據(jù)庫可以處理所發(fā)送的 SQL 語句,否則將自食其果。例如,假如某個(gè)應(yīng)用程序試圖向不支持儲(chǔ)存程序的 DBMS 發(fā)送儲(chǔ)存程序調(diào)用,就會(huì)失敗并將拋出異常。JDBC 要求驅(qū)動(dòng)程序應(yīng)至少能提供 ANSI SQL-2 Entry Level 功能才可算是符合 JDBC 標(biāo)準(zhǔn)TM 的。這意味著用戶至少可信賴這一標(biāo)準(zhǔn)級(jí)別的功能。

JDBC 提供了三個(gè)類,用于向數(shù)據(jù)庫發(fā)送 SQL 語句。Connection 接口中的三個(gè)方法可用于創(chuàng)建這些類的實(shí)例。下面列出這些類及其創(chuàng)建方法:


Statement ─ 由方法 createStatement 所創(chuàng)建。Statement 對(duì)象用于發(fā)送簡單的 SQL 語句。
PreparedStatement ─ 由方法 prepareStatement 所創(chuàng)建。PreparedStatement 對(duì)象用于發(fā)送帶有一個(gè)或多個(gè)輸入?yún)?shù)( IN 參數(shù))的 SQL 語句。PreparedStatement 擁有一組方法,用于設(shè)置 IN 參數(shù)的值。執(zhí)行語句時(shí),這些 IN 參數(shù)將被送到數(shù)據(jù)庫中。PreparedStatement 的實(shí)例擴(kuò)展了 Statement ,因此它們都包括了 Statement 的方法。PreparedStatement 對(duì)象有可能比 Statement 對(duì)象的效率更高,因?yàn)樗驯活A(yù)編譯過并存放在那以供將來使用。
CallableStatement ─ 由方法 prepareCall 所創(chuàng)建。CallableStatement 對(duì)象用于執(zhí)行 SQL 儲(chǔ)存程序 ─ 一組可通過名稱來調(diào)用(就象函數(shù)的調(diào)用那樣)的 SQL 語句。CallableStatement 對(duì)象從 PreparedStatement 中繼續(xù)了用于處理 IN 參數(shù)的方法,而且還增加了用于處理 OUT 參數(shù)和 INOUT 參數(shù)的方法。

以下所列提供的方法可以快速?zèng)Q定應(yīng)用哪個(gè) Connection 方法來創(chuàng)建不同類型的 SQL 語句:


createStatement 方法用于:


簡單的 SQL 語句(不帶參數(shù))


prepareStatement 方法用于:


帶一個(gè)或多個(gè) IN 參數(shù)的 SQL 語句


經(jīng)常被執(zhí)行的簡單 SQL 語句


prepareCall 方法用于:


調(diào)用已儲(chǔ)存過程


2.1.7 事務(wù)
事務(wù)由一個(gè)或多個(gè)這樣的語句組成:這些語句已被執(zhí)行、完成并被提交或還原。當(dāng)調(diào)用方法 commit 或 rollback 時(shí),當(dāng)前事務(wù)即告就結(jié)束,另一個(gè)事務(wù)隨即開始。

缺省情況下,新連接將處于自動(dòng)提交模式。也就是說,當(dāng)執(zhí)行完語句后,將自動(dòng)對(duì)那個(gè)語句調(diào)用 commit 方法。這種情況下,由于每個(gè)語句都是被單獨(dú)提交的,因此一個(gè)事務(wù)只由一個(gè)語句組成。假如禁用自動(dòng)提交模式,事務(wù)將要等到 commit 或 rollback 方法被顯式調(diào)用時(shí)才結(jié)束,因此它將包括上一次調(diào)用 commit 或 rollback 方法以來所有執(zhí)行過的語句。對(duì)于第二種情況,事務(wù)中的所有語句將作為組來提交或還原。

方法 commit 使 SQL 語句對(duì)數(shù)據(jù)庫所做的任何更改成為永久性的,它還將釋放事務(wù)持有的全部鎖。而方法 rollback 將棄去那些更改。

有時(shí)用戶在另一個(gè)更改生效前不想讓此更改生效。這可通過禁用自動(dòng)提交并將兩個(gè)更新組合在一個(gè)事務(wù)中來達(dá)到。假如兩個(gè)更新都是成功的,則調(diào)用 commit 方法,從而使兩個(gè)更新結(jié)果成為永久性的;假如其中之一或兩個(gè)更新都失敗了,則調(diào)用 rollback 方法,以將值恢復(fù)為進(jìn)行更新之前的值。

大多數(shù) JDBC 驅(qū)動(dòng)程序都支持事務(wù)。事實(shí)上,符合 JDBC 的驅(qū)動(dòng)程序必須支持事務(wù)。DatabaseMetaData 給出的信息描述 DBMS 所提供的事務(wù)支持水平。


2.1.8 事務(wù)隔離級(jí)別
假如 DBMS 支持事務(wù)處理,它必須有某種途徑來治理兩個(gè)事務(wù)同時(shí)對(duì)一個(gè)數(shù)據(jù)庫進(jìn)行操作時(shí)可能發(fā)生的沖突。用戶可指定事務(wù)隔離級(jí)別,以指明 DBMS 應(yīng)該花多大精力來解決潛在沖突。例如,當(dāng)事務(wù)更改了某個(gè)值而第二個(gè)事務(wù)卻在該更改被提交或還原前讀取該值時(shí)該怎么辦? 假設(shè)第一個(gè)事務(wù)被還原后,第二個(gè)事務(wù)所讀取的更改值將是無效的,那么是否可答應(yīng)這種沖突? JDBC 用戶可用以下代碼來指示 DBMS 答應(yīng)在值被提交前讀取該值(“dirty 讀取”),其中 con 是當(dāng)前連接:

con.setTransactionIsolation(TRANSACTION_READ_UNCOMMITTED);

事務(wù)隔離級(jí)別越高,為避免沖突所花的精力也就越多。Connection 接口定義了五級(jí),其中最低級(jí)別指定了根本就不支持事務(wù),而最高級(jí)別則指定當(dāng)事務(wù)在對(duì)某個(gè)數(shù)據(jù)庫進(jìn)行操作時(shí),任何其它事務(wù)不得對(duì)那個(gè)事務(wù)正在讀取的數(shù)據(jù)進(jìn)行任何更改。通常,隔離級(jí)別越高,應(yīng)用程序執(zhí)行的速度也就越慢(由于用于鎖定的資源耗費(fèi)增加了,而用戶間的并發(fā)操作減少了)。在決定采用什么隔離級(jí)別時(shí),開發(fā)人員必須在性能需求和數(shù)據(jù)一致性需求之間進(jìn)行權(quán)衡。當(dāng)然,實(shí)際所能支持的級(jí)別取決于所涉及的 DBMS 的功能。

當(dāng)創(chuàng)建 Connection 對(duì)象時(shí),其事務(wù)隔離級(jí)別取決于驅(qū)動(dòng)程序,但通常是所涉及的數(shù)據(jù)庫的缺省值。用戶可通過調(diào)用 setIsolationLevel 方法來更改事務(wù)隔離級(jí)別。新的級(jí)別將在該連接過程的剩余時(shí)間內(nèi)生效。要想只改變一個(gè)事務(wù)的事務(wù)隔離級(jí)別,必須在該事務(wù)開始前進(jìn)行設(shè)置,并在該事務(wù)結(jié)束后進(jìn)行復(fù)位。我們不提倡在事務(wù)的中途對(duì)事務(wù)隔離級(jí)別進(jìn)行更改,因?yàn)檫@將立即觸發(fā) commit 方法的調(diào)用,使在此之前所作的任何更改變成永久性的。

上一篇:JDBC示例

下一篇:JDBC接口技術(shù)介紹2

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
亚洲欧美资源在线| 精品视频1区2区| 熟妇女人妻丰满少妇中文字幕| 91精品啪在线观看国产18| 国产小视频精品| 国产偷国产偷精品高清尤物| 亚洲视频自拍偷拍| 天天操夜夜做| 午夜老司机精品| 亚洲人一区二区| 懂色av中文字幕一区二区三区| 日本国产一级片| 国产情侣在线播放| 视频一区日韩精品| 亚洲www在线观看| 欧美a级一区二区| 日韩一区二区精品视频| 国产精品伦一区二区三区视频| 制服丝袜第一页在线观看| 福利在线视频导航| 久久99精品一区二区三区三区| 日本黄色免费网址| 日韩中文字幕亚洲精品欧美| 深夜精品寂寞黄网站在线观看| 天天操天天爱天天干| 精品久久国产老人久久综合| 狠狠做六月爱婷婷综合aⅴ| 特级西西人体www高清大胆| 久久成人精品一区二区三区| 欧美人与物videos另类| 天堂中文在线观看| 樱桃国产成人精品视频| 最新国产在线拍揄自揄视频| 国产精品极品国产中出| 伊人色在线观看| 福利片免费在线观看| 曰批又黄又爽免费视频| www.就去干.com| 日本高清久久| 国产精品家庭影院| 亚洲国产婷婷香蕉久久久久久| 久久久精品国产免费观看同学| 国产欧美一区二区精品秋霞影院| 欧美黄免费看| 一区中文字幕在线观看| 成人影视在线播放| 欧美先锋资源| 欧美成人777| 99国产精品久久久久| 全部av―极品视觉盛宴亚洲| 亚洲黄色影片| 中文字幕有码无码人妻av蜜桃| 久草视频一区二区| 国产一区二区香蕉| 欧美18xxxxx| 久久精子c满五个校花| 免费看污视频的网站| 人人狠狠综合久久亚洲| 国产老肥熟xxxx在线观看| 国产三区四区在线观看| 在线观看h视频| 一区二区三区免费视频播放器| www..com国产| 成人免费视频一区二区| 午夜不卡影院| 99亚洲国产精品| 在线不卡免费欧美| 丰满少妇被猛烈进入一区二区| 国产午夜在线| 亚洲欧美一二三| 在线观看欧美| 日韩五码在线观看| www.jizz在线观看| 国产在视频线精品视频www666| 被黑人猛躁10次高潮视频| 欧美与欧洲交xxxx免费观看| 中文字幕在线观看视频免费| 欧美特黄一区二区三区| 亚洲国产精品av| 亚洲成人天堂网| 最新中文字幕av| 又黄又爽又色的视频| 在线国产视频观看| 毛片基地黄久久久久久天堂| 国产欧美日韩综合精品| 在线观看成人一级片| 182在线播放| 色播在线视频| 日韩毛片无码永久免费看| 一区二区国产精品视频| 色综合亚洲精品激情狠狠| 中文在线字幕观看| 国产啊啊啊视频在线观看| 9国产精品视频| 日本在线丨区| 91成人在线观看国产| 日韩不卡一二三| 高清免费日韩| 成人免费毛片高清视频| 免费看成一片| 91精品视频在线免费观看| 午夜伦欧美伦电影理论片| 国产在线综合网| 欧美va天堂| 亚洲婷婷影院| 黄色污污网站在线观看| 一区二区免费看| a级片在线免费看| 亚洲不卡在线播放| 99精品99久久久久久宅男| 性做久久久久久免费观看| 亚洲精品中文字幕在线播放| 91free张津瑜movies| 国产男女激情视频| 蜜桃tv一区二区三区| 日韩av免费看| av高清一区| 亚洲草草视频| 成人3d动漫一区二区三区91| av网站导航在线观看免费| 欧美男同性恋视频网站| 成人影院天天5g天天爽无毒影院| 精品久久久视频| 欧美激情欧美激情| 日韩黄色三级| 国产一二三四五区| 亚洲av无码一区二区三区dv| 中文字幕 91| 国产xxxxxx久色视频在| 在线观看视频网站你懂得| 污污的网站免费| 国产精品看片资源| 国产成人永久免费视频| 国产一区二区三区免费看| 综合亚洲自拍| 成人午夜精品视频| 日韩免费电影一区二区三区| 国产欧美日韩专区| 国产理论视频在线观看| 日韩在线一区二区| av一卡二卡| 色与欲影视天天看综合网| 一级视频在线免费观看| 天堂网视频在线观看| 亚洲一区二区三区小说| 欧美一区二区视频免费观看| 男女猛烈无遮挡午夜视频| 亚洲综合免费观看高清完整版| 成人高清在线视频| 91视视频在线直接观看在线看网页在线看| 国产99久久九九精品无码| 2020日本不卡一区二区视频| h网站在线看| www.久久久久久.com| 在线视频日本亚洲性| 91av资源在线| 天涯成人国产亚洲精品一区av| 97色在线观看免费视频| 午夜精品福利一区二区三区av| 国产精品资源在线看| 国产suv一区二区三区| 白白色 亚洲乱淫| 电影天堂国产精品| 麻豆福利视频| 色猫猫国产区一区二在线视频| 亚洲精品无播放器在线播放| 日韩精品福利视频| 1234区中文字幕在线观看| 亚州福利视频| 久草热在线观看| 色婷婷**av毛片一区| 欧美日韩福利电影| 91精品综合久久久久久| 男人的天堂在线| 91欧美国产| 国产日本欧美一区| 国产精品97| 网友自拍区视频精品| 免费在线一级视频| 户外极限露出调教在线视频| 亚洲一区亚洲二区| 人成免费在线视频| 精品精品国产国产自在线| 国内久久久精品| 亚洲色图久久久| 99精品人妻无码专区在线视频区| 精品一区二区三区中文字幕视频| 日韩av一级电影| 亚洲aaaaaa| 日韩av一卡| 青青伊人久久| 在线欧美不卡| 波多野结衣绝顶大高潮| 中文字字幕在线中文乱码电影| 久久五月情影视| 高清成人免费视频| 欧美男男激情freegay| 亚洲图片另类小说| 大陆一级毛片免费观看| 亚洲春色h网| 91xxxxx| 亚洲成熟丰满熟妇高潮xxxxx| 成人精品久久| 日韩欧美一区二区三区免费观看| 麻豆91在线观看| 91网页版在线| 亚洲十八**毛片| 欧美人与禽猛交乱配视频| 高清不卡在线观看av| 精品乱色一区二区中文字幕| 国产人妻精品一区二区三| 日本久久高清视频| 久久精品一二区| 中文字幕av网站| 久久国产色av| 欧美少妇xxx| 久久久久亚洲视频| 亚洲第一精品久久忘忧草社区| 久久精品亚洲7777影院| 国产精品久久久久久久久夜色| 欧美日韩aaaaaa| 国产精品爱啪在线线免费观看| 一区二区亚洲欧洲国产日韩| 伊人春色精品| 国产成人在线免费视频| 97高清免费视频| 欧美精品1区| 小说区乱图片区| 国产美女久久久久久| 午夜激情视频在线| 性xxxx丰满孕妇xxxx另类| 91在线三级| 亚洲欧美在线观看视频| 一本久久综合亚洲鲁鲁五月天| 成人在线日韩| 国产人成网在线播放va免费| 天天超碰亚洲| 亚洲第一福利在线观看| 亚洲精品国产一区二区精华液| 亚洲36d大奶网| 刘亦菲久久免费一区二区| 污视频在线免费| 在线看片国产福利你懂的| 午夜成人免费视频| 韩日毛片在线观看| 日本在线观看视频| 精品欧美不卡一区二区在线观看| 美女免费视频一区二区| 7777精品久久久大香线蕉小说| 欧美国产日本高清在线| 日韩午夜在线播放| 色av综合在线| 国产福利三区| 中文字幕无人区二| 日韩在线免费| 国产女主播在线一区二区| 欧美日韩在线观看视频| 久久久久99人妻一区二区三区| 日韩欧美在线综合网| 欧美五码在线| 日皮视频在线免费观看| www.久久| 国产精品午夜影院| 中文字幕一区二区三区人妻四季| 国产亚洲精品中文字幕| 国产亚洲精品7777| 成人高h视频在线| 久久露脸国语精品国产91| 中文字幕在线观看免费高清| 欧美成人精品福利在线视频| 777欧美精品| 国产亚洲精品自在线观看| 国产精品一区二区免费在线观看| 中文字幕在线观看第一页| 午夜免费福利影院| 快she精品国产999| 成人激情免费网站| 免费一区二区三区视频狠狠| www.激情小说.com| 日韩一中文字幕| 黄色在线论坛| 黄色一级视频片| 国产性猛交╳xxx乱大交| 黄网站在线免费看| 亚洲精品国产无码| 国产欧美日韩亚洲一区二区三区| 91九色蝌蚪91por成人| av网站无病毒在线| 四虎影院中文字幕| caoporn超碰97| 亚洲欧美激情小说另类| 西瓜成人精品人成网站| 久久一日本道色综合| youjizz国产精品| 91精品国产乱码久久久久久| 成人免费视频播放| 免费看污片网站| 欧美黑人视频一区| 激情成人中文字幕| 国产深喉视频一区二区| 欧美视频免费看欧美视频| 久久久精品国产免大香伊| 五月天婷婷网站| 亚洲区欧美区| gogogo高清免费观看在线视频| 久久国产成人精品国产成人亚洲| 久久高清免费观看| 成年无码av片在线| 亚洲一区二区三区中文字幕| 国产一区自拍视频| 久久精品色欧美aⅴ一区二区| 成人91在线| 国产主播精品| 国产黄色一级电影| 精品福利网址导航| 久久精品一区二区| 国产精品酒店视频| 亚洲成人激情小说| 香蕉国产成人午夜av影院| 九色91在线视频| 91黑丝在线| 国产免费人做人爱午夜视频| 无码人妻少妇色欲av一区二区| 成人在线播放免费观看| 欧美jizzhd欧美精品巨大| 欧美日韩美女在线| 好吊操视频这里只有精品| 精品国产一区二区三区久久影院|