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

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

JDBCTM 指南:入門1 - 介紹

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

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


1.1 什么是 JDBCTM?
JDBCTM 是一種用于執(zhí)行 SQL 語句的 JavaTM API(有意思的是,JDBC 本身是個商標(biāo)名而不是一個縮寫字;然而,JDBC 常被認(rèn)為是代表 “Java 數(shù)據(jù)庫連接 (Java Database Connectivity)”)。它由一組用 Java 編程語言編寫的類和接口組成。JDBC 為工具/數(shù)據(jù)庫開發(fā)人員提供了一個標(biāo)準(zhǔn)的 API,使他們能夠用純 Java API 來編寫數(shù)據(jù)庫應(yīng)用程序。

有了 JDBC,向各種關(guān)系數(shù)據(jù)庫發(fā)送 SQL 語句就是一件很輕易的事。換言之,有了 JDBC API,就不必為訪問 Sybase 數(shù)據(jù)庫專門寫一個程序,為訪問 Oracle 數(shù)據(jù)庫又專門寫一個程序,為訪問 Informix 數(shù)據(jù)庫又寫另一個程序,等等。您只需用 JDBC API 寫一個程序就夠了,它可向相應(yīng)數(shù)據(jù)庫發(fā)送 SQL 語句。而且,使用 Java 編程語言編寫的應(yīng)用程序,就無須去憂慮要為不同的平臺編寫不同的應(yīng)用程序。將 Java 和 JDBC 結(jié)合起來將使程序員只須寫一遍程序就可讓它在任何平臺上運(yùn)行。

Java 具有堅(jiān)固、安全、易于使用、易于理解和可從網(wǎng)絡(luò)上自動下載等特性,是編寫數(shù)據(jù)庫應(yīng)用程序的杰出語言。所需要的只是 Java 應(yīng)用程序與各種不同數(shù)據(jù)庫之間進(jìn)行對話的方法。而 JDBC 正是作為此種用途的機(jī)制。

JDBC 擴(kuò)展了 Java 的功能。例如,用 Java 和 JDBC API 可以發(fā)布含有 applet 的網(wǎng)頁,而該 applet 使用的信息可能來自遠(yuǎn)程數(shù)據(jù)庫。企業(yè)也可以用 JDBC 通過 Intranet 將所有職員連到一個或多個內(nèi)部數(shù)據(jù)庫中(即使這些職員所用的計(jì)算機(jī)
有 Windows、 Macintosh 和 UNIX 等各種不同的操作系統(tǒng))。隨著越來越多的程序員開始使用 Java 編程語言,對從 Java中便捷地訪問數(shù)據(jù)庫的要求也在日益增加。

MIS 治理員們都喜歡 Java 和 JDBC 的結(jié)合,因?yàn)樗剐畔鞑プ兊幂p易和經(jīng)濟(jì)。企業(yè)可繼續(xù)使用它們安裝好的數(shù)據(jù)庫,并能便捷地存取信息,即使這些信息是儲存在不同數(shù)據(jù)庫治理系統(tǒng)上。新程序的開發(fā)期很短。安裝和版本控制將大為簡化。程序員可只編寫一遍應(yīng)用程序或只更新一次,然后將它放到服務(wù)器上,隨后任何人就都可得到最新版本的應(yīng)用程序。對于商務(wù)上的銷售信息服務(wù), Java 和 JDBC 可為外部客戶提供獲取信息更新的更好方法。


1.1.1 JDBC 的用途是什么?
簡單地說,JDBC 可做三件事:



與數(shù)據(jù)庫建立連接,
發(fā)送 SQL 語句,
處理結(jié)果。


下列代碼段給出了以上三步的基本示例:

Connection con = DriverManager.getConnection (
"jdbc:odbc:wombat", "login", "passWord");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next()) {
int x = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
}


1.1.2 JDBC 是一種低級 API ,是高級 API 的基礎(chǔ)
JDBC 是個“低級”接口,也就是說,它用于直接調(diào)用 SQL 命令。在這方面它的功能極佳,并比其它的數(shù)據(jù)庫連接 API 易于使用,但它同時(shí)也被設(shè)計(jì)為一種基礎(chǔ)接口,在它之上可以建立高級接口和工具。高級接口是“對用戶友好的”接口,它使用的是一種更易理解和更為方便的 API,這種 API 在幕后被轉(zhuǎn)換為諸如 JDBC 這樣的低級接口。在編寫本文時(shí),正在開發(fā)兩種基于 JDBC 的高級 API:


一種用于 Java 的嵌入式 SQL。至少已經(jīng)有一個提供者計(jì)劃編寫它。DBMS 實(shí)現(xiàn) SQL:一種專門設(shè)計(jì)來與數(shù)據(jù)庫聯(lián)合使用的語言。JDBC 要求 SQL 語句必須作為 String 傳給 Java 方法。相反,嵌入式 SQL 預(yù)處理器答應(yīng)程序員將 SQL 語句直接與Java 混在一起使用。例如,可在 SQL 語句中使用 Java 變量,用以接受或提供 SQL 值。然后,嵌入式 SQL 預(yù)處理器將通過 JDBC 調(diào)用把這種 Java/SQL 的混合物轉(zhuǎn)換為 Java。
關(guān)系數(shù)據(jù)庫表到 Java 類的直接映射。JavaSoft 和其它提供者都聲稱要實(shí)現(xiàn)該 API。在這種“對象/關(guān)系”映射中,表中的每行對應(yīng)于類的一個實(shí)例,而每列的值對應(yīng)于該實(shí)例的一個屬性。于是,程序員可直接對 Java 對象進(jìn)行操作;存取數(shù)據(jù)所
需的 SQL 調(diào)用將在“掩蓋下”自動生成。此外還可提供更復(fù)雜的映射,例如將多個表中的行結(jié)合進(jìn)一個 Java 類中。
隨著人們對 JDBC 的愛好日益增漲,越來越多的開發(fā)人員一直在使用基于 JDBC 的工具,以使程序的編寫更加輕易。程序員也一直在編寫力圖使最終用戶對數(shù)據(jù)庫的訪問變得更為簡單的應(yīng)用程序。例如,應(yīng)用程序可提供一個選擇數(shù)據(jù)庫任務(wù)的菜單。
任務(wù)被選定后,應(yīng)用程序?qū)⒔o出提示及空白供填寫執(zhí)行選定任務(wù)所需的信息。所需信息輸入后,應(yīng)用程序?qū)⒆詣诱{(diào)用所需的SQL 命令。在這樣一種程序的協(xié)助下,即使用戶根本不懂 SQL 的語法,也可以執(zhí)行數(shù)據(jù)庫任務(wù)。


1.1.3 JDBC 與 ODBC 和其它 API 的比較
目前,Microsoft 的 ODBC(開放式數(shù)據(jù)庫連接)API 可能是使用最廣的、用于訪問關(guān)系數(shù)據(jù)庫的編程接口。它能在幾乎所有平臺上連接幾乎所有的數(shù)據(jù)庫。為什么 Java 不使用 ODBC?

對這個問題的回答是:Java 可以使用 ODBC,但最好是在 JDBC 的幫助下以 JDBC-ODBC 橋的形式使用,這一點(diǎn)我們稍后再說。現(xiàn)在的問題已變成:“為什么需要 JDBC”? 回答如下:


ODBC 不適合直接在 Java 中使用,因?yàn)樗褂?C 語言接口。從 Java 調(diào)用本地 C 代碼在安全性、實(shí)現(xiàn)、堅(jiān)固性和程序的自動移植性方面都有許多缺點(diǎn)。
從 ODBC C API 到 Java API 的字面翻譯是不可取的。例如,Java 沒有指針,而 ODBC 卻對指針用得很廣泛(包括很輕易出錯的指針 "void *")。您可以將 JDBC 想象成被轉(zhuǎn)換為面向?qū)ο蠼涌诘?ODBC,而面向?qū)ο蟮慕涌趯?Java 程序員來說較
易于接收。
ODBC 很難學(xué)。它把簡單和高級功能混在一起,而且即使對于簡單的查詢,其選項(xiàng)也極為復(fù)雜。相反,JDBC 盡量保證簡單功能的簡便性,而同時(shí)在必要時(shí)答應(yīng)使用高級功能。
啟用“純 Java ”機(jī)制需要象 JDBC 這樣的 Java API。假如使用 ODBC,就必須手動地將 ODBC 驅(qū)動程序治理器和驅(qū)動程序安裝在每臺客戶機(jī)上。假如完全用 Java 編寫 JDBC 驅(qū)動程序則 JDBC 代碼在所有 Java 平臺上(從網(wǎng)絡(luò)計(jì)算機(jī)到大型機(jī))
都可以自動安裝、移植并保證安全性。
總之,JDBC API 對于基本的 SQL 抽象和概念是一種自然的 Java 接口。它建立在 ODBC 上而不是從零開始。因此,熟悉 ODBC 的程序員將發(fā)現(xiàn) JDBC 很輕易使用。JDBC 保留了 ODBC 的基本設(shè)計(jì)特征;事實(shí)上,兩種接口都基于 X/Open SQL CLI
(調(diào)用級接口)。它們之間最大的區(qū)別在于:JDBC 以 Java 風(fēng)格與優(yōu)點(diǎn)為基礎(chǔ)并進(jìn)行優(yōu)化,因此更加易于使用。

最近,Microsoft 又引進(jìn)了 ODBC 之外的新 API: RDO、 ADO 和 OLE DB。這些設(shè)計(jì)在許多方面與 JDBC 是相同的,即它們都是面向?qū)ο蟮臄?shù)據(jù)庫接口且基于可在 ODBC 上實(shí)現(xiàn)的類。但在這些接口中,我們未看見有非凡的功能使我們要轉(zhuǎn)而選擇它
們來替代 ODBC,尤其是在 ODBC 驅(qū)動程序已建立起較為完善的市場的情況下。它們最多也就是在 ODBC 上加了一種裝飾而已。這并不是說 JDBC 不需要從其最初的版本再發(fā)展了;然而,我們覺得大部份的新功能應(yīng)歸入諸如前一節(jié)中所述的對象/關(guān)系映射和嵌入式 SQL 這樣的高級 API。


1.1.4 兩層模型和三層模型
JDBC API 既支持?jǐn)?shù)據(jù)庫訪問的兩層模型,同時(shí)也支持三層模型。

在兩層模型中,Java applet 或應(yīng)用程序?qū)⒅苯优c數(shù)據(jù)庫進(jìn)行對話。這將需要一個 JDBC 驅(qū)動程序來與所訪問的特定數(shù)據(jù)庫治理系統(tǒng)進(jìn)行通訊。用戶的 SQL 語句被送往數(shù)據(jù)庫中,而其結(jié)果將被送回給用戶。數(shù)據(jù)庫可以位于另一臺計(jì)算機(jī)上,用戶通過網(wǎng)絡(luò)連接到上面。這就叫做客戶機(jī)/服務(wù)器配置,其中用戶的計(jì)算機(jī)為客戶機(jī),提供數(shù)據(jù)庫的計(jì)算機(jī)為服務(wù)器。網(wǎng)絡(luò)可以是 Intranet(它可將公司職員連接起來),也可以是 Internet。





在三層模型中,命令先是被發(fā)送到服務(wù)的“中間層”,然后由它將 SQL 語句發(fā)送給數(shù)據(jù)庫。數(shù)據(jù)庫對 SQL 語句進(jìn)行處理并將結(jié)果送回到中間層,中間層再將結(jié)果送回給用戶。MIS 主管們都發(fā)現(xiàn)三層模型很吸引人,因?yàn)榭捎弥虚g層來控制對公司數(shù)據(jù)的訪問和可作的的更新的種類。中間層的另一個好處是,用戶可以利用易于使用的高級 API,而中間層將把它轉(zhuǎn)換為相應(yīng)的低級調(diào)用。最后,許多情況下三層結(jié)構(gòu)可提供一些性能上的好處。




到目前為止,中間層通常都用 C 或 C++ 這類語言來編寫,這些語言執(zhí)行速度較快。然而,隨著最優(yōu)化編譯器(它把 Java字節(jié)代碼轉(zhuǎn)換為高效的特定于機(jī)器的代碼)的引入,用 Java 來實(shí)現(xiàn)中間層將變得越來越實(shí)際。這將是一個很大的進(jìn)步,它使人們可以充分利用 Java 的諸多優(yōu)點(diǎn)(如堅(jiān)固、多線程和安全等特征)。JDBC 對于從 Java 的中間層來訪問數(shù)據(jù)庫非常重要。


1.1.5 SQL 的一致性
結(jié)構(gòu)化查詢語言 (SQL) 是訪問關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。困難之處在于:雖然大多數(shù)的 DBMS (數(shù)據(jù)庫治理系統(tǒng))對其基本功能都使用了標(biāo)準(zhǔn)形式的 SQL,但它們卻不符合最近為更高級的功能定義的標(biāo)準(zhǔn) SQL 語法或語義。例如,并非所有的數(shù)據(jù)庫都支持儲存程序或外部連接,那些支持這一功能的數(shù)據(jù)庫又相互不一致。人們希望 SQL 中真正標(biāo)準(zhǔn)的那部份能夠進(jìn)行擴(kuò)展以包括越來越多的功能。但同時(shí) JDBC API 又必須支持現(xiàn)有的 SQL。

JDBC API 解決這個問題的一種方法是答應(yīng)將任何查詢字符串一直傳到所涉及的 DBMS 驅(qū)動程序上。這意味著應(yīng)用程序可以使用任意多的 SQL 功能,但它必須冒這樣的風(fēng)險(xiǎn):有可能在某些 DBMS 上出錯。事實(shí)上,應(yīng)用程序查詢甚至不一定要是 SQL,或者說它可以是個為特定的 DBMS 設(shè)計(jì)的 SQL 的專用派生物(例如,文檔或圖象查詢)。

JDBC 處理 SQL 一致性問題的第二種方法是提供 ODBC 風(fēng)格的轉(zhuǎn)義子句。這將在 4.1.5 節(jié)“語句對象中的 SQL 轉(zhuǎn)義語法”中討論。

轉(zhuǎn)義語法為幾個常見的 SQL 分歧提供了一種標(biāo)準(zhǔn)的 JDBC 語法。例如,對日期文字和已儲存過程的調(diào)用都有轉(zhuǎn)義語法。

對于復(fù)雜的應(yīng)用程序,JDBC 用第三種方法來處理 SQL 的一致性問題。它利用 DatabaseMetaData 接口來提供關(guān)于 DBMS 的描述性信息,從而使應(yīng)用程序能適應(yīng)每個 DBMS 的要求和功能。

由于 JDBC API 將用作開發(fā)高級數(shù)據(jù)庫訪問工具和 API 的基礎(chǔ) API,因此它還必須注重其所有上層建筑的一致性?!胺?JDBC 標(biāo)準(zhǔn)TM" 代表用戶可依靠的 JDBC 功能的標(biāo)準(zhǔn)級別。要使用這一說明,驅(qū)動程序至少必須支持 ANSI SQL-2 Entry Level(ANSI SQL-2 代表美國國家標(biāo)準(zhǔn)局 1992 年所采用的標(biāo)準(zhǔn)。Entry Level 代表 SQL 功能的特定清單)。驅(qū)動程序開發(fā)人員可用 JDBC API 所帶的測試工具包來確定他們的驅(qū)動程序是否符合這些標(biāo)準(zhǔn)。

“符合 JDBC 標(biāo)準(zhǔn)TM” 表示提供者的 JDBC 實(shí)現(xiàn)已經(jīng)通過了 JavaSoft 提供的一致性測試。這些一致性測試將檢查 JDBC API 中定義的所有類和方法是否都存在,并盡可能地檢查程序是否具有 SQL Entry Level 功能。當(dāng)然,這些測試并不完全,而且 JavaSoft 目前也無意對各提供者的實(shí)現(xiàn)進(jìn)行標(biāo)級。但這種一致性定義的確可對 JDBC 實(shí)現(xiàn)提供一定的可信度。隨著越來越多的數(shù)據(jù)庫提供者、連接提供者、Internet 提供者和應(yīng)用程序編程員對 JDBC API 的接受,JDBC 也正迅速成為 Java 數(shù)據(jù)庫訪問的標(biāo)準(zhǔn)。


1.2 JDBC 產(chǎn)品
在編寫本文時(shí),有幾個基于 JDBC 的產(chǎn)品已開發(fā)完畢或正在開發(fā)中。當(dāng)然,本節(jié)中的信息將很快成為過時(shí)信息。因此,有關(guān)最新的信息,請查閱 JDBC 的網(wǎng)站,可通過從以下 URL 開始瀏覽找到:

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


1.2.1 JavaSoft 框架
JavaSoft 提供三種 JDBC 產(chǎn)品組件,它們是 Java 開發(fā)工具包 (JDK) 的組成部份:


JDBC 驅(qū)動程序治理器,


JDBC 驅(qū)動程序測試工具包,和


JDBC-ODBC 橋。


JDBC 驅(qū)動程序治理器是 JDBC 體系結(jié)構(gòu)的支柱。它實(shí)際上很小,也很簡單;其主要作用是把 Java 應(yīng)用程序連接到正確的JDBC 驅(qū)動程序上,然后即退出。

JDBC 驅(qū)動程序測試工具包為使 JDBC 驅(qū)動程序運(yùn)行您的程序提供一定的可信度。只有通過 JDBC 驅(qū)動程序測試包的驅(qū)動程序才被認(rèn)為是符合 JDBC 標(biāo)準(zhǔn)TM 的。

JDBC-ODBC 橋使 ODBC 驅(qū)動程序可被用作 JDBC 驅(qū)動程序。它的實(shí)現(xiàn)為 JDBC 的快速發(fā)展提供了一條途徑,其長遠(yuǎn)目標(biāo)提供一種訪問某些不常見的 DBMS(假如對這些不常見的 DBMS 未實(shí)現(xiàn) JDBC) 的方法。





1.2.2 JDBC 驅(qū)動程序的類型
我們目前所知曉的 JDBC 驅(qū)動程序可分為以下四個種類:


JDBC-ODBC 橋加 ODBC 驅(qū)動程序:JavaSoft 橋產(chǎn)品利用 ODBC 驅(qū)動程序提供 JDBC 訪問。注重,必須將 ODBC 二進(jìn)制代碼(許多情況下還包括數(shù)據(jù)庫客戶機(jī)代碼)加載到使用該驅(qū)動程序的每個客戶機(jī)上。因此,這種類型的驅(qū)動程序最適合于企業(yè)網(wǎng)(這種網(wǎng)絡(luò)上客戶機(jī)的安裝不是主要問題),或者是用 Java 編寫的三層結(jié)構(gòu)的應(yīng)用程序服務(wù)器代碼。 本地 API - 部份用 Java 來編寫的驅(qū)動程序: 這種類型的驅(qū)動程序把客戶機(jī) API 上的 JDBC 調(diào)用轉(zhuǎn)換為 Oracle、 Sybase、Informix、DB2 或其它 DBMS 的調(diào)用。注重,象橋驅(qū)動程序一樣,這種類型的驅(qū)動程序要求將某些二進(jìn)制代碼加載到每臺客戶機(jī)上。
JDBC 網(wǎng)絡(luò)純 Java 驅(qū)動程序:這種驅(qū)動程序?qū)?JDBC 轉(zhuǎn)換為與 DBMS 無關(guān)的網(wǎng)絡(luò)協(xié)議,之后這種協(xié)議又被某個服務(wù)器轉(zhuǎn)換為一種 DBMS 協(xié)議。這種網(wǎng)絡(luò)服務(wù)器中間件能夠?qū)⑺募?Java 客戶機(jī)連接到多種不同的數(shù)據(jù)庫上。所用的具體協(xié)議取決于提供者。通常,這是最為靈活的 JDBC 驅(qū)動程序。有可能所有這種解決方案的提供者都提供適合于 Intranet 用的產(chǎn)品。為了使這些產(chǎn)品也支持 Internet 訪問,它們必須處理 Web 所提出的安全性、通過防火墻的訪問等方面的額外要求。幾家提供者正將 JDBC 驅(qū)動程序加到他們現(xiàn)有的數(shù)據(jù)庫中間件產(chǎn)品中。
本地協(xié)議純 Java 驅(qū)動程序:這種類型的驅(qū)動程序?qū)?JDBC 調(diào)用直接轉(zhuǎn)換為 DBMS 所使用的網(wǎng)絡(luò)協(xié)議。這將答應(yīng)從客戶機(jī)機(jī)器上直接調(diào)用 DBMS 服務(wù)器,是 Intranet 訪問的一個很實(shí)用的解決方法。由于許多這樣的協(xié)議都是專用的,因此數(shù)據(jù)庫提供者自己將是主要來源,有幾家提供者已在著手做這件事了。
最后,我們預(yù)計(jì)第 3、4 類驅(qū)動程序?qū)⒊蔀閺?JDBC 訪問數(shù)據(jù)庫的首選方法。第 1、2 類驅(qū)動程序在直接的純 Java 驅(qū)動程序還沒有上市前將會作為過渡方案來使用。對第 1、2 類驅(qū)動程序可能會有一些變種(下表中未列出),這些變種要求有連接器,但通常這些是更加不可取的解決方案。第 3、4 類驅(qū)動程序提供了 Java 的所有優(yōu)點(diǎn),包括自動安裝(例如,通過使用 JDBC 驅(qū)動程序的 applet applet來下載該驅(qū)動程序)。

下表顯示了這 4 種類型的驅(qū)動程序及其屬性:


驅(qū)動程序種類 純 JAVA? 網(wǎng)絡(luò)協(xié)議
1 - JDBC-OCBC 橋 非 直接
2 - 基于本地 API 的 非 直接
3 - JDBC 網(wǎng)絡(luò)的 是 要求連接器
4 - 基于本地協(xié)議的 是 直接



1.2.3 JDBC 驅(qū)動程序的獲取
在編寫本文時(shí),已有幾十個屬于種類的驅(qū)動程序,即可與 Javasoft 橋聯(lián)合使用的 1: ODBC 驅(qū)動程序的驅(qū)動程序。有大約十多個屬于種類 2 的驅(qū)動程序是以 DBMS 的本地 API 為基礎(chǔ)編寫的。只有幾個屬于種類 3 的驅(qū)動程序。目前至少有 2 個屬于種類 4 的驅(qū)動程序,但到 1997 年底,我們預(yù)計(jì)主要的 DBMS 都會有種類 4 的驅(qū)動程序。

要獲取關(guān)于驅(qū)動程序的最新信息,請查閱 JDBC 的網(wǎng)站,其網(wǎng)址為: http:// java.sun.com/products/jdbc。提供第 3 種驅(qū)動程序的首批提供者是 SCO、Open Horizon、Visigenic 和 WebLogic。JavaSoft 和數(shù)據(jù)庫連接的領(lǐng)先提供者 Intersolv合作研制了 JDBC-ODBC 橋和 JDBC 驅(qū)動程序測試工具包。


1.2.4 其它產(chǎn)品
各種 JDBC 應(yīng)用程序的開發(fā)工具正在開發(fā)中。請注重查閱 JavaSoft 網(wǎng)頁以得到更新信息。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
亚洲人体大胆视频| 在线免费观看一区| a国产在线视频| 亚洲欧美日韩在线不卡| 不卡的电视剧免费网站有什么| 美女网站色91| 全国精品免费看| 国产xxx免费观看| 人人爱人人爽| 538在线一区二区精品国产| 青春草在线视频观看| 污污软件在线观看| 天天噜夜夜操| 国产精品-区区久久久狼| 久久精品这里热有精品| 亚洲av永久无码国产精品久久| 精品国产a毛片| 欧美人与性禽动交精品| 一区二区三区四区不卡| 超碰在线公开97| 中文字幕天堂网| 高跟丝袜一区二区三区| 免费高清视频在线观看| 一级aaaa毛片| av国产在线观看| 亚洲电影一级片| 日本三级中文字幕| 性欧美大胆高清视频| 中文字幕在线观看一区| 亚洲一级二级三级在线免费观看| 2017亚洲男人天堂| 欧美曰成人黄网| 免费精品国产自产拍观看| 成年人看的羞羞网站| 亚洲乱码国产乱码精品天美传媒| 全部毛片永久免费看| 国产视频一区二区三| 一区福利视频| 欧美尤物巨大精品爽| 你懂的一区二区| 91一区二区| 色婷婷狠狠18禁久久| 色喇叭免费久久综合网| 神马久久久久久久| 中文字幕av免费在线观看| 亚洲欧洲日本国产| 91亚洲精品久久久蜜桃| 久久久国产精品成人免费| 国产欧美自拍| 91爱爱小视频k| 亚洲av无码乱码国产麻豆| 羞羞网站在线| 色欲人妻综合网| 国产激情av在线| 中文字幕免费高| 日韩电影不卡一区| 天天插综合网| 日本年轻的继坶中文字幕| 国产成人小视频在线观看| 亚洲成a人片| 在线日韩第一页| 亚洲综合免费视频| 日韩欧美激情在线| 亚洲福利影片在线| 久久综合导航| 日韩在线精品强乱中文字幕| 4438全国亚洲精品在线观看视频| 国产精品久久久久久户外露出| 国产精品一区二区a| 国产盗摄视频一区二区三区| 日韩av一二三区| av免费观看网址| 亚洲最大av在线| 国产成人精品在线观看| 在线看片免费人成视久网| 国产中文在线视频| 精品国产视频在线| 黄色一级免费| 99久久这里有精品| av中文在线资源| 国产一级片毛片| 国产精品日韩久久久久| a在线播放不卡| 97超级碰在线看视频免费在线看| 国产精品大全| 一级特黄妇女高潮| 一级片中文字幕| 欧美熟妇另类久久久久久多毛| 国产精品一区二区不卡视频| 亚洲天堂免费观看| 欧美不卡在线视频| 国产精品嫩草影视| 精品成人18| 欧美视频在线观看免费网址| 97在线视频人妻无码| 久久久五月婷婷| 国产精品免费无遮挡无码永久视频| 喷水一区二区三区| 在线日韩日本国产亚洲| 国产福利电影在线| 91丨九色丨蝌蚪丨老版| 中文字幕国产视频| 午夜精品www| 中文字幕一区二区三区人妻| 中国xxxx自拍视频| 亚洲aⅴ男人的天堂在线观看| 国内老熟妇对白xxxxhd| 欧美精品aⅴ在线视频| 精品乱码一区内射人妻无码| 欧美日韩亚洲一| 神马午夜电影一区二区三区在线观看| 日韩精品一区二区三区丰满| 你懂的国产精品| 女女互磨互喷水高潮les呻吟| 日韩不卡免费视频| 神马午夜一区二区| 天天艹天天操| 日韩限制级电影在线观看| 伊人色综合久久天天| 午夜久久美女| 成年人网站在线免费观看| 男女一区二区三区免费| 一区二区三区欧美在线观看| 色综合久久久久综合| 啦啦啦啦免费高清视频在线观看1| 国产精品视频久久| 免费高潮视频95在线观看网站| 国产精品露脸av在线| 国产日韩欧美一二三区| 波兰性xxxxx极品hd| 黄视频在线观看免费| 欧美色图免费看| 亚洲综合电影一区二区三区| 国产在线视频你懂| 亚洲成人福利片| 国产精品高潮呻吟久久久| 特大巨黑人吊性xxxxn38| 欧美重口另类videos人妖| 69国产精品视频免费观看| 欧洲av在线精品| 99热这里只有精品免费| 夜级特黄日本大片_在线| 国产乱码字幕精品高清av| 亚洲成色777777在线观看影院| 日韩一区二区电影在线| 午夜在线电影亚洲一区| 国产一区二三区| 粉嫩av一区二区三区天美传媒| 日韩第二十一页| 欧美精品欧美精品| 欧美三级免费| 韩剧1988在线观看免费完整版| 午夜成人亚洲理伦片在线观看| 国产亚洲一区二区三区在线播放| 欧美高清视频在线高清观看mv色露露十八| 欧美丝袜一区二区三区| 午夜啪啪免费视频| 国产一区精品在线| 狠狠色噜噜狠狠狠狠色吗综合| 最新eeuss影院在线观看| 操操操综合网| 极品日韩av| 懂色av噜噜一区二区三区av| 奇米色777欧美一区二区| 欧美日韩精品一区二区三区四区| 不卡一二三区首页| 男人天堂网视频| 日韩亚洲欧美中文高清在线| 色琪琪综合男人的天堂aⅴ视频| 欧美视频在线观看网站| 成人免费视频网| 国产精品一区毛片| 国产精品亚洲综合天堂夜夜| 一道本无吗dⅴd在线播放一区| 亚洲欧美在线精品| 无码精品视频一区二区三区| 亚洲成人a**站| 日韩黄色成人| 中文字幕精品视频在线观看| 日韩精品在线免费看| 6080yy午夜一二三区久久| 国产一区在线免费| 久久美女艺术照精彩视频福利播放| 国产91白丝在线播放| 午放福利视频在线播放| 欧美理论影院| 奇米影视亚洲狠狠色| 国产色播av在线| 中文字幕永久在线| 澳门精品久久国产| 亚洲欧美另类在线观看| 国产精品vip| 秋霞精品一区二区三区| 欧美日韩日日摸| 日本人体一区二区| 国产igao激情在线入口| 黄色av网址在线播放| 国产视频一区在线观看| www.狠狠操| 黄色三级网站在线观看| 免费一区二区在线观看| 久久一区二区中文字幕| 视频一区在线免费看| 91欧美激情一区二区三区成人| 国产免费人做人爱午夜视频| 久久品道一品道久久精品| 久久精品国产亚洲blacked| 成人免费在线观看网站| 日本最新一区二区三区视频观看| 97国产精品视频人人做人人爱| 黄色软件在线| 欧美日韩中文字幕精品| 成人免费一级视频| 国产精品美女久久久久aⅴ国产馆| 岛国av在线网站| 成人亚洲网站| 在线视频国产日韩| 一本色道久久综合亚洲精品酒店| 国产精品久久久久久久龚玥菲| 成人毛片在线精品国产| 欧美亚洲另类视频| 亚洲男人天堂av在线| 久久免费视频观看| 狠狠色噜噜狠狠狠狠97| 刘亦菲国产毛片bd| 日韩一级淫片| 久久久久久久久蜜桃| 亚洲一区二区影视| 日韩午夜视频在线| 欧美视频一区二区三区四区| 欧美丝袜丝交足nylons图片| 人人妻人人澡人人爽精品欧美一区| 在线观看日本www| 国产无遮挡裸体视频在线观看| 九九免费视频| 综合 欧美 亚洲日本| 丁香综合av| 日韩午夜影院| 超碰porn在线| 国产一区日韩二区欧美三区| 91麻豆精品91久久久久久清纯| 欧美亚洲国产bt| 日韩动漫在线观看| 日韩最新av在线| 国产欧美精品国产国产专区| 亚洲久本草在线中文字幕| 久久久精品国产sm调教网站| 免费看的www视频网站视频| 国精产品一区一区二区三区mba| 日韩毛片免费观看| 日韩av一区二区在线观看| 欧美福利在线播放网址导航| 九九在线免费视频| 精品在线免费视频| 岛国一区二区在线观看| 91黄色激情网站| 日韩网站在线看片你懂的| 日本欧美一区二区三区不卡视频| 天天揉久久久久亚洲精品| 青青草手机在线观看| yes4444视频在线观看| 免费av一区二区| 秋霞影院一区二区| 成人污污视频| 婷婷亚洲图片| 91麻豆精品国产91久久久久推荐资源| 国偷自产av一区二区三区麻豆| 国产精品二区三区四区| 手机亚洲手机国产手机日韩| 精品黄色免费中文电影在线播放| 国产 日韩 欧美一区| 一级做a爰片久久毛片美女图片| 性网站在线观看| av电影在线播放| 欧美风狂大伦交xxxx| 亚洲精品国产第一综合99久久| 欧美日韩视频一区二区| 成人蜜臀av电影| 精品国产一区二区三区四区精华| 国产精品探花在线观看| 久久99精品一区二区三区三区| 男人操女人在线观看| 免费观看国产精品视频| 国产精品乱码一区二区三区视频| 国产高清视频色在线www| 日日骚av一区| 国产成人在线小视频| 成人无码一区二区三区| 依依成人综合视频| 亚洲成人中文在线| 亚洲一区二区成人| 亚洲综合色网站| 五月开心六月丁香综合色啪| 久久久久无码精品国产| 在线观看17c| 欧美大香线蕉线伊人久久| 中文字幕在线日亚洲9| 一本久久a久久免费精品不卡| 在线播放日韩专区| 成人激情黄色小说| 91精品国产高清久久久久久| 萌白酱国产一区二区| 欧美视频久久| 黄色片在线看| 国产麻豆视频精品| 91手机视频在线观看| 美腿丝袜一区二区三区| 国模私拍一区二区国模曼安| 欧美色欧美亚洲另类二区精品| av在线播放成人| 欧美凹凸一区二区三区视频| 在线观看免费黄网站| 色老综合老女人久久久| 91色综合久久久久婷婷| 黄色精品免费| 性色av蜜臀av色欲av| 久久躁狠狠躁夜夜爽| 国产精品久久久91| 国产欧美高清视频在线| 尤物视频在线观看网站| 天堂一区二区三区| 久久久精品久久| 激情文学综合插| 中文字幕一区二区三区精彩视频| 狠狠躁天天躁日日躁欧美| 九九九热视频| 污网站在线观看视频| www.欧美三级电影.com|