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

首頁 > 學院 > 開發(fā)設計 > 正文

JDBC技術介紹

2019-11-18 13:58:57
字體:
來源:轉載
供稿:網(wǎng)友

  1. 介紹

  許多開發(fā)者和用戶都在尋找java程序中訪問數(shù)據(jù)庫的便捷方法。由于Java是一個健壯,安全,易于使用的,易于理解且可以從網(wǎng)絡中自動download ,所以它成為開發(fā)數(shù)據(jù)庫應用的一種良好的語言基礎。它提供了C,C++,Smalltalk, BASIC, COBOL, and 4GLs的許多優(yōu)點。許多公司已經(jīng)開始在Java與DBMS的連接方面做工作。

  許多Java應用開發(fā)者都希望能夠編寫獨立于特定DBMS的程序,而我們也相信一個獨立于DBMS的接口將使得與各種各樣DBMS連接變得最為便捷,開發(fā)更加迅速。所以我們認為定義一個通用的SQL數(shù)據(jù)庫存取框架,在各種各樣的提供數(shù)據(jù)庫連接模塊上提供統(tǒng)一的界面是十分有意義的。這使程序員可以面對單一的數(shù)據(jù)庫界面,使數(shù)據(jù)庫無關的Java工具和產(chǎn)品成為可能,使得數(shù)據(jù)庫連接的開發(fā)者可以提供各種各樣的連接方案。我們看到我們定義一個通用低層的,支持基本SQL功能的JavaDataBase Connectivity (JDBC)API的緊迫任務。

  幸運的是我們不必從頭設計一個SQL API。我們可以把我們的工作建立在 X/Open SQL CLI (調用層接口)之上(它也是Microsoft´s ODBC 的基礎)。

  我們主要任務是定義一個自然的Java接口來與X/Open CLI中定義的基本的抽象層和概念連接。

  JDBC API得到數(shù)據(jù)庫開發(fā)廠商,連接開發(fā)廠商,ISV,以及應用開發(fā)者的支持是十分重要的。我們相信把我們的工作建立在ODBC抽象層的基礎上將JDBC更加輕易得到大家的接受。而且從技術上來說,ODBC是我們設計工作的一個良好基礎。

  因為ODBC是一個C語言接口,所以ODBC在Java中直接使用不適當。從Java中來調用C代碼在安全性,健壯性,實現(xiàn)的方便,可移植性等等方面有許多不便。它使得Java在這些方面的許多優(yōu)點得不到發(fā)揮。

  我們已經(jīng)在短期里面實現(xiàn)了一個建立在ODBC上的API。長遠來看,我們可以通過其他方式提供實現(xiàn)。

1. 1. 注重

  我們非常感謝在數(shù)據(jù)庫,數(shù)據(jù)庫連接和數(shù)據(jù)庫工具領域的許多早期的工作者。他們?yōu)镴DBC的早期草案提供了很好的意見和建議。他們的工作對本規(guī)范起了不可估量的作用。

 

2. 目標與哲學

  這個部分描述了指引這個API開發(fā)的目標以及哲學。

2. 1. SQL 級 API

  我們的主要目標是為Java定義一個“調用級”(call-level)的SQL接口。著意味著我們主要的注重力集中在執(zhí)行原原本本的SQL語句并且取回結果。我們預計高層的API也將被定義,這些可能將建立在基層的接口上。

  這些高層接口包括象直接地、透明地把表里面的數(shù)據(jù)影射到Java類里面,用語法樹表示更加通用的查詢,以及Java內嵌的SQL語法。

  我們希望大量的應用開發(fā)工具將使用我們的API。然而我們也希望程序員能夠使用我們的API,尤其是目前這樣在Java里沒有任何其他手段(應該是說數(shù)據(jù)庫訪問手段)的情況下。

2. 2. 遵循SQL

  數(shù)據(jù)庫系統(tǒng)支持各式各樣的SQL語法和語義,它們相互之間在比較高級的功能例如外部連接,內嵌過程等方面并不一致,盡管我們能夠盼望著隨時間的推移這些部分的SQL可以獲得標準化。同時我們采取這樣的態(tài)度與立場:

  In fact, an application query need not even be SQL, or it may be a specialized derivative of SQL, e.g. for document or image queries, designed for specific DBMSs.

  In order to pass JDBC compliance tests and to be called "JDBC COMPLIANT " we require that a driver support at least ANSI SQL-2 Entry Level. This gives applications that want wide portability a guaranteed least common denominator. We believe ANSI SQL-2 Entry Level is reasonably powerful and is reasonably widely supported today.

* JDBC答應查詢表達式直接傳遞到底層的數(shù)據(jù)驅動,這樣一個程序可以獲得盡量多的SQL功能,但是可能被DBMS拒絕。事實上,一個程序的查詢甚至可以不是SQL的,或者是SQL的一個非凡演化,例如:為專門數(shù)據(jù)庫設計的文本或者圖形查詢。

* 為了通過JDBC兼容的測試,并且能夠被稱為JDBC兼容,我們要求一個驅動至少支持ANSI SQL-2的標準。這使得那些需要廣泛移植性的程序獲得一個最小的分母(這句話的原文是:This gives applications that want wide portability a guaranteed least common denominator.)。我們相信ANSI SQL-2是足夠強大的,并且是得到足夠支持的。

2. 3. JDBC必須可以建立在現(xiàn)有的數(shù)據(jù)庫接口上

  我們必須能夠保證 JDBC SQL API 能夠建立在普通的SQL API上,尤其是ODBC。這些要求已經(jīng)對這個規(guī)范的一些部分產(chǎn)生了影響,尤其是對傳出參數(shù)(OUT parameter)和大數(shù)據(jù)塊的處理。

2. 4. 必須保證這個接口與JAVA系統(tǒng)的其他部分保持一致

 目前對JAVA的積極回應已經(jīng)十分熱烈。很大程度上是由于這個語言標準以及標準運行時庫被認為是一致,簡單和強大的。我們將盡我們所能,提供這個Java數(shù)據(jù)庫接口,這個接口將建立在Java內核現(xiàn)有的這種風格,并且將進一步加強它。

2. 5. 保持簡單

  We would PRefer to keep this base API as simple as possible, at least initially. In general we would prefer to provide a single mechanism for performing a particular task, and avoid provid-ing duplicate mechanisms. We will extend the API later if any important functionality is miss-ing.

  我們將力爭使得基本的API盡量簡單,至少開始的時候是這樣的。一般來說,我們希望對實現(xiàn)每個特定的任務只提供一種方案,而避免提供多種方案。假如一些重要的功能遺漏了,那么我們在晚些時候將擴充這個API。

2. 6. 盡量保持強的、靜態(tài)的類型

  我們希望這個JDBC API保持盡量強的類型檢查,使得盡可能多的類型信息可以靜態(tài)地表達。著使得盡可能多的錯誤可以在編譯的時候被發(fā)現(xiàn)。

  由于SQL本身是動態(tài)類型的,所以我們可能會在程序運行的時候碰到類型不能匹配的問題。例如:當一個程序員在希望SELECT返回一個整數(shù),但是實際返回的是一個字符串“foo”. 但是我們依然希望程序員把他們所希望的類型在編譯的時候就能夠表達清楚,這樣我們可以做盡可能多的靜態(tài)檢查。我們也希望在必要的時候能夠支持動態(tài)類型接口(見第四章)

2. 7. 使普通任務簡化

  我們希望普通的任務能夠是簡單的,而不一般的工作是可行的。

  一個普通任務是指一個程序員執(zhí)行一個簡單的沒有參數(shù)的SQL語句(例如:SELECT,INSERT,UPDATE,DELETE),然后(例如SELECT)處理返回的具有簡單類型的元組。一個具有傳入?yún)?shù)(IN parameter)的SQL語句也是普通的。

  不那么普通但是也是十分重要的情形是當程序員使用有INOUT,OUT參數(shù)的SQL語句。我們也需要支持讀寫幾兆字節(jié)對象的SQL語句,更非凡一些的情形包括一個語句返回了多個結果集合。

  我們希望元數(shù)據(jù)(Meatdata)的使用很少的,只是那些熟練的程序員以及開發(fā)工具才需要處理的問題。元數(shù)據(jù)存取函數(shù)以及動態(tài)類型數(shù)據(jù)存取函數(shù)在這個文檔末尾,一般的程序員可以不必關心這些章節(jié)。

2. 8. 不同的功能讓不同的方法(函數(shù))來實現(xiàn)(“方法”的原文是:method,這樣翻譯是跟VB的)

  一種界面設計風格是使用很少的過程,提供許多作為參數(shù)傳遞的控制標志,這樣它們可以用來影響很大一個范圍內的各種行為。來表達不同的功能。這趨向與使用很多的方法,但是每個方法都比較同意理解。

  一般來說,Java內核類使用不同的方法(method)。這個步驟的主要優(yōu)點是開始學習基本界面的程序員可以不必被那些與復雜功能相關的參數(shù)所困擾。我們力圖在JDBC接口上也采用相同的策略。一般來說采用不同的方法而不是采用不同的標志和多用途的方法。

3. 接口概貌

  接口分為兩個層次,一個是面向程序開發(fā)人員的JDBC API。另外一個是底層的JDBC Driver API。

3. 1. JDBC API

  JDBC API 被描述成為彝族抽象的Java接口,似的應用程序遠可以對某個數(shù)據(jù)庫打開連接,執(zhí)行SQL語句并且處理結果。最重要的接口是:

* java.sql.DriverManager 處理驅動的調入并且對產(chǎn)生新的數(shù)據(jù)庫連接提供支持。

* java.sql.Connection 代表對特定數(shù)據(jù)庫的連接。

* java.sql.Statement  代表一個特定的容器,來對一個特定的數(shù)據(jù)庫執(zhí)行SQL語句。

* java.sql.ResultSet  控制對一個特定語句的行數(shù)據(jù)的存取。

其中java.sql.Statement又有兩個子類型:

1. java.sql.PreparedStatement  用于執(zhí)行預編譯的SQL語句。

2. java.sql.CallableStatement  用于執(zhí)行對一個數(shù)據(jù)庫內嵌過程的調用。

  下面的章節(jié)對JDBC是如何運行的提供了更多描述,整個定義見第13章。另外第15章描述了系統(tǒng)假如獲取數(shù)據(jù)庫的元數(shù)據(jù)信息。

3. 2. JDBC Driver API

  java.sql.Driver在第9章有完整的定義了.大部分JDBC驅動只需要完成這些JDBC API所定義的抽象類就可以了。非凡地,所有的driver必須提供對java.sql.Connection, java.sql. State-ment, java.sql.Prepared-Statement, and java.sql.ResultSet的實現(xiàn)。假如目標DBMS提供有OUT參數(shù)的內嵌過程,那么還必須提供java.sql.CallableStatement 接口。 每個database driver必須提供一個類:java.sql.Driver以使得系統(tǒng)可以由 java.sql.DriverManager來治理。

  一個顯然的driver是在ODBC之上提供對JDBC的實現(xiàn),從而提供與ODBC接口的JDBC-ODBC 橋,就象前面的圖所顯示的.由于JDBC放在ODBC之后,所以實現(xiàn)起來簡單而且高效。

  另外一個有用的驅動直接接觸數(shù)據(jù)庫無關的網(wǎng)絡協(xié)議。發(fā)布一個協(xié)議答應多個服務器實現(xiàn)的方法,例如在ODBC或者特定的DBMS上(盡管已經(jīng)有了一些使用固定協(xié)議的產(chǎn)品,但是我們不打算對它們實現(xiàn)標準化。),是可取的。

 

4. JDBC使用場合

  Before looking at specifics of the JDBC API, an understanding of typical use scenarios is help-ful. There are two common scenarios that must be treated differently for our purposes: applets and applications.

  在看JDBC API之前了解一下典型的使用場合是有幫助的。通常有兩種情形必須分別對待:applet和application.

4. 1. Applet

  目前Java使用的最多的從網(wǎng)絡中下載的applet,它們作為web文件的一個部分。當中有數(shù)據(jù)庫存取applet和能夠使用JDBC來接觸數(shù)據(jù)庫的applet。例如,一個用戶可能下載一個顯示股票歷史價格圖的applet。這個applet通過internet來從關系數(shù)據(jù)庫中獲得股票歷史價格。

  最一般的情況里面,對applet的使用是通過不可靠的邊界的。例如從另外一個公司或者Internet上獲得這些applet。于是稱這個情況為"Internet"場合。然而applet也可能通過局域網(wǎng)下載。在這個情況里面,客戶機的安全都還是一個問題。

典型的applet在幾個方面與傳統(tǒng)的數(shù)據(jù)庫應用程序有所不同:

1). 不可靠的applet被嚴格地限制在他們被答應執(zhí)行的的操作上。非凡地,不答應他們存取本地的文件,切不答應他們對任意的數(shù)據(jù)庫建立網(wǎng)絡連接。

2). 就標識和連接網(wǎng)上數(shù)據(jù)庫來說,Internet環(huán)境里面的applet面臨新的問題。

3). 當數(shù)據(jù)庫可能與你相隔萬里的時候,效率的考慮也有所不同了。與局域網(wǎng)相比,Internet上數(shù)據(jù)庫applet可能會碰到十分不同的反應時間。

4. 2. Application

  Java也可以用來建立普通的應用,從而想一般的應用一樣在客戶機上使用。我們相信隨著開發(fā)工具越來越多,人們開始熟悉到提高程序生產(chǎn)效率的必要性,以及Java的其他優(yōu)點,Java的這種用法將越來越流行。在這種方式里面,Java的代碼是可以信賴的,且被答應讀寫文件打開網(wǎng)絡連接等等,就想其他的應用程序代碼一樣。

  也許這些Java應用使用的最多的是在一個公司內部或者在Intranet上,所以不妨成為Intranet場合。例如一個公司希望利用Java及其GUI構件工具來建立他的基于合作數(shù)據(jù)模式的合作軟件。這些應用程序將存取局域網(wǎng)或者廣域網(wǎng)的數(shù)據(jù)。Java應用可以作到這些。

  Java應用程序場合和Intranet場合與applet場合有諸多不同。例如標定一個數(shù)據(jù)庫最自然的方式是用一個數(shù)據(jù)庫的名字,就象"Customers" 和"Personnel"這樣。然后用戶希望系統(tǒng)能夠定位具體的機器,DBMS,JDBC driver,和Java應用程序。

4. 3. 其他場合

還有其他一些有趣的場合:

1). 已驗證的applet(Trusted applets)是指那些已經(jīng)被Java虛擬機器認定是可以信賴的applet。他們之所以被認為是可信的是因為他們已經(jīng)對上了特定的密匙,或者用戶認為從特定來源來的applet是可信的。在安全的方面上他們與應用(appliction)相同,但是其他方面(例如定位一個數(shù)據(jù)庫)與則與applet相似。

2). 與直接從Java GUI出發(fā)用客戶/服務器模式來度曲DBMS服務器不同,三層存取方式可能被使用。在這個場合里面,Java應用程序對中間層的服務發(fā)出調用,中間層的服務在網(wǎng)上,它又再去調用數(shù)據(jù)庫。這些調用可能通過RPC (remote procedure call)或者ORB (object request broker )。在這兩種場合里面,中間層最好使用一個對象變化。我們希望三層結構會變得越來越普遍,因為對于MIS治理者來說,這可以使得他們有機會在公共數(shù)據(jù)庫上顯式地定義合法操作等。同時三層結構可以提供許多效率上的好處。

  目前中間層一般用C或者C++這樣的語言來完成。通過優(yōu)化編譯器把把Java 字節(jié)代碼翻譯成為高效的機器代碼,中間層也可以用Java來實現(xiàn)。Java有許多優(yōu)良特性(健壯性,安全性,多線程)可以達到中間層需要達到的目的。

 

5. 安全性考慮

  作為網(wǎng)絡上的語言JAVA必須十分注安全性的考慮?;谏厦娴挠懻摚琂DBC的兩種主要使用場合里面,我們必須考慮安全性問題:

* 在Java applications的場合里面Java代碼是本地的,所以也是"trusted"

* 沒有驗證的Java applet代碼不可以存取本地的以及其他網(wǎng)絡的數(shù)據(jù)。

5. 1. JDBC 和未驗證的applet

JDBC首先必須符合JAVA的一般安全規(guī)則。另外:

* JDBC 必須認為沒有驗證的applets是不可靠的。

* JDBC 不可以讓不可靠的applets存取本地數(shù)據(jù)庫。

* 一個已經(jīng)向JDBC DriverManager注冊的是JDBC Driver只能存取它所來的數(shù)據(jù)源。

* 一個applet也只能向它所Download來的服務器來存取數(shù)據(jù)。

  假如JDBC驅動層假如完全確信對一個數(shù)據(jù)庫服務器打開連接不會引起認證或者權限問題(可能由網(wǎng)上隨機主機上運行的程序引起),那么它就答應applet打開這樣的連接。數(shù)據(jù)庫服務器不通過ip地址來限制存取是相當少的,主要是為了舉例。(當心,這一段話我可能翻譯反了?。。〈蠹铱纯丛?。)這些限制是相當煩瑣的。不過他們與對一般applet的限制是一致的我們沒有必要放開這些限制。

5. 2. JDBC 和Java應用程序

  對于一個普通的Java應用程序(例如全部用Java代碼而不是不可靠的applet )JDBC將從本地的類路徑里面獲得驅動,并且答應應用程序自由存取文件,遠程服務器等等。

  但是和applet一樣,假如由于某些原因一個沒有驗證的sun.sql.Driver類從遠程的來源里面獲得,那么這個驅動只能和相同地方來的代碼配合。

5. 3. Driver的安全責任

  JDBC driver可能在各種情況下使用,所以驅動的編制者遵循一定的簡單的安全規(guī)則,從而避免applet做非法的數(shù)據(jù)庫連接。

  假如所有的驅動都象applet一樣從網(wǎng)上下載,那么這些原則將是不必要的,因為普通的安全規(guī)則已經(jīng)對它做了限制。但是驅動的編寫者必須記住一旦他們的驅動獲得成功,用戶將在本地磁盤安裝這些驅動,那么驅動將成為Java環(huán)境中一個被信任的部分,所以必須確信它不會被來訪的applet所濫用。所以我們鼓勵所有的驅動編寫者必須遵循一定安全原則。

  所有這些原則都是在連接打開的時候使用。這正式驅動和虛擬機器檢查當前調用者是否真的可以與指定的數(shù)據(jù)庫連接的時刻。一旦連接建立就不必做更多的檢查了。

5. 3. 1. 分享TCP/IP連接的時候必須謹慎   假如一個JDBC驅動試圖打開一個 TCP 連接,那么這個打開會被Java 安全治理機制自動檢查。這個機構會檢查當前調用棧里面有沒有applet,假如有那么就限定它可以訪問的機器集合。所以一般地JDBC驅動可以把TCP建立檢查留給Java虛擬機。

  但是假如一個JDBC驅動試圖在多個數(shù)據(jù)庫連接之間共享一個TCP連接,那么驅動就必須自己負責檢查每個調用者是否真的被答應與目標數(shù)據(jù)庫聯(lián)系。例如假如我們?yōu)閍pplet A打開了一個通往機器foobah 的TCP連接,這并不意味著applet B被自動答應來共享這個連接。applet B可能沒有任何訪問機器foobah的權力。所以在答應某個程序重用一個現(xiàn)成的TCP連接之前,JDBC 驅動必須通過安全機構來檢查當前的的調用者是否可以訪問這個連接。通過下面的代碼可是實現(xiàn)這個功能。

SecurityManager security = System.getSecurityManager();

if (security != null)

{

security.checkConnect(hostName, portNumber);

}

  假如連接是不答應的,那么Security.checkConnect方法將產(chǎn)生一個java.lang.SecurityException。 5. 3. 2. 檢查所有的本地文件訪問

  假如一個JDBC取得需要訪問本地機器上的數(shù)據(jù),那么他必須確信調用者是被答應打開這個文件的。例如:

SecurityManager security = System.getSecurityManager();

if (security != null)

{

security.checkRead(fileName);

}

  假如對特定文件的訪問是不答應的,那么Security.checkRead方法將產(chǎn)生一個java.lang.SecurityException。

5. 3. 3. 作好最壞的預備

  一些驅動可能使用本地的方法來橋接底層數(shù)據(jù)庫程序。則這些情況里面判定那些本地文件將被底層函數(shù)所訪問是困難的。

  在這些環(huán)境里面用戶必須作好最壞的打算,并且否決所有下載applet所發(fā)出的數(shù)據(jù)庫存取,除非驅動可能完全確信將要做存取是沒有問題的。

  例如一個JDBC-ODBC橋接器必須檢查ODBC數(shù)據(jù)源的的名稱,確保applet只可以訪問它的"生源地"。假如對有的名字中不能判定出數(shù)據(jù)源的主機名,那么只能否決這個訪問。

  為了決定一個當前的調用者是可以信賴的應用還是一個applet,JDBC驅動必須能夠檢查這個調用者是否可以寫一個隨機的文件:

SecurityManager security = System.getSecurityManager();

if (security != null)

{

security.checkWrite("foobaz");

}

上一篇:JDBC基礎

下一篇:JDBC接口技術介紹1

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
日韩中文字幕综合| 少妇高潮惨叫久久久久| 国产一区二区三区高清播放| 日韩毛片一二三区| 97久久香蕉国产线看观看| 久久精品国产69国产精品亚洲| 在线看日韩精品电影| 亚洲欧洲日韩精品在线| 国产成人精品综合网站| 操她视频在线观看| 精品无码一区二区三区爱欲| 欧美久久综合网| jizzjizzjizzjizz| 99欧美精品| 最近2019免费中文字幕视频三| 亚洲不卡视频在线| 激情久久综合| 中文字幕在线视频区| 亚洲一区有码| 激情美女网站| 91亚洲午夜在线| 欧美电影网站| 91精品国产乱| 亚洲精品成人在线视频| 欧美亚洲日本在线观看| 粉嫩aⅴ一区二区三区四区| 影音四色91| 国产片侵犯亲女视频播放| 成人一区二区在线| 久久精品视频免费| 亚洲丝袜精品丝袜在线| 亚洲美女中文字幕| 中文字幕在线不卡国产视频| 欧美成人精品三级网站| 国产专区中文字幕| 老司机午夜网站| 久久人妻少妇嫩草av蜜桃| 朝桐光av在线一区二区三区| 国产黄色在线观看| 亚洲欧美精品在线观看| 国产稀缺真实呦乱在线| 精品中文字幕在线观看| 亚洲天堂网一区| 日韩免费av一区二区| 综合网插菊花| 欧美激情videoshd| 在线观看xxxx| 亚洲精品小说| 国产精品成人免费一区二区视频| 国产精品电影久久久久电影网| 欧美四级在线| 酒色婷婷桃色成人免费av网| 日韩在线观看免费av| 成人交换视频| 97在线精品| 国产一伦一伦一伦| 一二三四区精品视频| 亚洲免费激情视频| 中文字幕一区二区精品| a级片免费在线观看| 欧美香蕉视频| 国产区二精品视| 国内精品女同女同一区二区三区| 久久66热re国产毛片基地| 国内精品伊人久久久久av影院| 久久久久久网址| 成人一区福利| 久久成人精品一区二区三区| 特级西西444www高清大视频| 久久99国产精品久久99| 色婷婷久久av| 97一区二区国产好的精华液| 日本不卡1234视频| 国偷自拍第113页| 国产极品视频在线观看| 亚洲丝袜自拍清纯另类| 国产69久久精品成人看| 国产99视频精品免费视频36| 欧美性受ⅹ╳╳╳黑人a性爽| 久久国产精品久久久久久电车| 男人天堂手机在线| 91日韩在线专区| 亚洲国产一区二区精品专区| 国产女人水真多18毛片18精品视频| 精品在线观看国产| 日韩av成人网| 在线亚洲人成| 国产欧美亚洲日本| 久久久精品性| 国产精品久久99久久| 91久久精品| 成人福利视频在线观看| 在线亚洲精品自拍| 国产精区一区二区| 无码人妻精品一区二区三区66| 欧美日韩成人高清| 日韩高清中文字幕一区| 日批免费观看视频| 日韩高清免费观看| 久久久91精品| 免费在线观看污| 周于希免费高清在线观看| a天堂中文在线88| 欧美色图片区| 亚洲色图清纯唯美| 久久精品夜夜夜夜夜久久| 欧美高清在线一区二区| 91国内视频| 成人国内精品久久久久一区| 国产精品9999久久久久仙踪林| 午夜cr在线观看高清在线视频完整版| 美女18一级毛片一品久道久久综合| 亚洲国产日韩在线一区模特| 秋霞电影一区二区| 狠狠操一区二区三区| 中文在线字幕观看| 久久国产手机看片| 亚洲精选视频免费看| 亚洲最大福利视频网站| 精品国产一区二区三区四| 欧美人与性禽动交精品| 日韩黄色在线播放| 久久99精品网久久| 久久99精品久久久久久青青日本| 成人免费视频视频| 国产主播性色av福利精品一区| 亚洲激情一区二区三区| 国产探花在线播放| 欧美第一精品| 久久久久亚洲AV成人网人人小说| 国产三级精品三级在线观看国产| 欧美肉体xxxx裸体137大胆| 国产精品手机在线观看| 麻豆成人在线播放| 91猫先生在线| 亚洲字幕av一区二区三区四区| 日本电影全部在线观看网站视频| 在线看片日韩| 亚洲天堂av在线免费观看| 国产一区二区三区久久悠悠色av| 午夜伦欧美伦电影理论片| 国产精品国内免费一区二区三区| 免费观看成年在线视频网站| 久久久噜噜噜久久人人看| 一道本无吗一区| 日本黄色小网站| 91精品人妻一区二区三区| 黄色日本网站| 久久精品国产亚洲精品| 久久精品无码一区二区三区| 欧美亚洲三区| 一级网站免费观看| 国产精品视频26uuu| 精品人妻一区二区三区潮喷在线| 樱桃视频免费看| 日韩精品一页| 成人在线丰满少妇av| 国产亚洲精品精品精品| 欧美另类交视频| 你懂的国产在线| 一区二区三国产精华液| 国产成人av电影免费在线观看| 国产精品免费麻豆入口| 国产成人精品1024| 嗯用力啊快一点好舒服小柔久久| 久久丝袜美腿综合| 美女三级福利视频| 日韩a级片在线观看| 国产精品久久久久一区二区三区厕所| 男女全黄做爰文章| 最近中文字幕免费| 任我爽在线视频| 国产精品尤物福利片在线观看| 美女一级全黄| 亚洲精品国产suv一区88| 欧美日韩亚洲一区在线观看| 中文字幕亚洲一区二区三区五十路| 香蕉视频在线观看www| 国内久久久精品| 在线观看av每日更新免费| 91在线看国产| 欧美激情第99页| 国产v综合ⅴ日韩v欧美大片| 成人在线视频中文字幕| 影音先锋国产资源| 3d动漫精品啪啪一区二区三区免费| 亚洲色偷偷色噜噜狠狠99网| 二区在线播放| 国产精品国产三级国产专业不| 精品乱码一区二区三区| jizz在线观看中文| 国产成人在线视频免费观看| 国产美女视频黄a视频免费| 精品亚洲自拍| 成人国产精品久久久网站| seseavlu视频在线| 成人看片网页| 人妻无码中文字幕| 青青草免费观看免费视频在线| 亚洲第一在线综合在线| 国产精品伦一区二区三区级视频频| 欧美黄色影院| 国产精品久久久久久影视| 欧美视频三区在线播放| 99精品视频一区二区| 精品孕妇一区二区三区| 日本黄色福利视频| 九九热久久免费视频| 欧美性猛交xxxx乱大交少妇| 精品一区二区三区中文字幕在线| 国产馆精品极品| 奇米影视四色在线| 免费av福利| 国产精品三级视频| 美女欧美视频在线观看免费| 在线观看免费高清视频| 制服丝袜国产精品| 久久久精品人妻一区二区三区四| 成人亚洲性情网站www在线观看| 免费在线观看的av网站| 亚洲视频分类| 精品国产一区二区三区久久久狼| 日韩中文字幕在线播放| 欧美一级片在线视频| 18深夜视频在线观看| 国产精品久久久久久av公交车| 三级一区在线视频先锋| 亚洲精品一区二区久| 日韩成人三级视频| 国产成人久久| 污视频网站在线观看| 天天干天天干天天操| 亚洲精品一区二区三区精华液| 这里只有精品9| 成人动漫一区| 最近2019中文字幕一页二页| 福利一区福利二区| 亚洲综合五月| 天堂精品在线视频| av一区在线| 欧美二区视频| 免费看国产黄色片| 手机福利在线视频| 久草在线资源站资源站| 亚洲区精品久久一区二区三区| 日韩 欧美 亚洲| 久久手机精品视频| 久久久久久久亚洲| 亚洲AV无码成人精品一区| 欧美精品一区二区不卡| 国产亚洲制服色| 在线成人免费av| 美女黄色一级视频| 三级不卡在线观看| 国产欧美日韩一区二区三区四区| 久久精品国产亚洲blacked| 亚州精品国产精品乱码不99按摩| 粉嫩高清一区二区三区精品视频| 久久久亚洲一区| av在线视屏| 午夜视频免费在线观看| 精品国产网站地址| 国产一区在线观看视频| 精品视频一区二区不卡| 午夜国产福利在线| 丰满少妇中文字幕| 在线观看福利电影| 日韩一区二区三免费高清| 亚洲国产一区二区三区在线| 刘亦菲一区二区三区免费看| 明星乱亚洲合成图.com| 亚洲国产成人一区二区| 精品无码一区二区三区蜜臀| 亚洲18在线看污www麻豆| 91黑丝高跟在线| 怡红院怡春院首页| 偷偷色噜狠狠狠狠的777米奇| 91美剧网在线播放| 欧美疯狂party性派对| 欧美另类第一页| 中文字幕日本不卡| 国产精品老女人精品视频| 中文字幕第38页| 日韩一区二区中文| 性xx十八spa按摩| 第四色成人网| 操一操视频一区| 欧美在线中文字幕| 欧美国产日本在线| 蜜桃视频一区二区三区| 久久精品影视伊人网| 91免费看国产| 亚洲国产视频在线| 国产免费无码一区二区| 亚洲美女喷白浆| 99riav一区二区三区| 最新热久久免费视频| 欧美香蕉爽爽人人爽| 香港三级日本三级a视频| 尤物视频在线| 欧美成人做性视频在线播放| 国产精品亚洲а∨天堂免在线| 国产精品美女久久久久久久久久久| 国产美女视频免费看| 日韩中文字幕网址| 亚洲视频一二| 天堂中文资源在线| 国产成人一区二区精品非洲| 成年女人的天堂在线| 黑人と日本人の交わりビデオ| 91捆绑美女网站| 亚洲国产三级| 中文字幕av资源一区| 天天射天天拍| 91视频在线网站| 精品一区2区三区| 日韩精品―中文字幕| 国外亚洲成av人片在线观看| 呻吟揉丰满对白91乃国产区| 精品视频免费看| 久久亚洲精品视频| 午夜欧美2019年伦理| 亚洲色欲色欲www在线观看| 亚洲伦在线观看| 欧美日韩国产bt| 久久国产精品亚洲77777| 少妇喷水在线观看| 国自产精品手机在线观看视频|