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

首頁 > 學院 > 開發設計 > 正文

JDBC 概述(二)

2019-11-18 12:40:12
字體:
來源:轉載
供稿:網友

  2 JDBC連接概述
  Connection 對象代表與數據庫的連接。連接過程包括所執行的 SQL 語句和在該連接上所返回的結果。一個應用程序可與單個數據庫有一個或多個連接,或者可與許多數據庫有連接。2.1.1 打開連接與數據庫建立連接的標準方法是調用DriverManager.getConnection方法。該方法接受含有某個 URL 的字符串。DriverManager 類(即所謂的 JDBC治理層)將嘗試找到可與那個 URL 所代表的數據庫進行連接的驅動程序。DriverManager 類存有已注冊的 Driver 類的清單。當調用方法 getConnection 時,它將檢查清單中的每個驅動程序,直到找到可與URL 中指定的數據庫進行連接的驅動程序為止。Driver 的方法connect 使用這個 URL來建立實際的連接。
  用戶可繞過 JDBC 治理層直接調用 Driver 方法。這在以下非凡情況下將很有用:當兩個驅動器可同時連接到數據庫中,而用戶需要明確地選用其中特定的驅動器。但一般情況下,讓 DriverManager 類處理打開連接這種事將更為簡單。
  下述代碼顯示如何打開一個與位于 URL "jdbc:odbc:wombat" 的數據庫的連接。所用的用戶標識符為 "oboy" ,口令為 "12java":String url = "jdbc:odbc:wombat";
  Connection con = DriverManager.getConnection(url, "oboy", "12Java");
  2.1.2 一般用法的 URL由于 URL 常引起混淆,我們將先對一般 URL 作簡單說明,然后再討論 JDBC URL。
  URL(統一資源定位符)提供在 Internet 上定位資源所需的信息??蓪⑺胂鬄橐粋€地址。URL 的第一部份指定了訪問信息所用的協議,后面總是跟著冒號。常用的協議有"FTP"(代表“文件傳輸協議”)和 "http" (代表“超文本傳輸協議”)。假如協議是 "file",表示資源是在某個本地文件系統上而非在 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 的其余部份(冒號后面的)給出了數據資源所處位置的有關信息。假如協議是 file,則 URL 的其余部份是文件的路徑。對于 ftp 和http 協議,URL 的其余部份標識了主機并可選地給出某個更詳盡的地址路徑。例如,以下是 JavaSoft 主頁的URL。該 URL 只標識了主機:
  http://java.sun.com從該主頁開始瀏覽,就可以進到許多其它的網頁中,其中之一就是JDBC 主頁。JDBC 主頁的 URL 更為具體,它看起來類似: http://java.sun.com/products/jdbc
  2.1.3 JDBC URL
  JDBC URL 提供了一種標識數據庫的方法,可以使相應的驅動程序能識別該數據庫并與之建立連接。實際上,驅動程序編程員將決定用什么 JDBC URL 來標識特定的驅動程序。用戶不必關心如何來形成JDBC URL;他們只須使用與所用的驅動程序一起提供的 URL 即可。JDBC 的作用是提供某些約定,驅動程序編程員在構造他們的 JDBC URL 時應該遵循這些約定。
  由于 JDBC URL 要與各種不同的驅動程序一起使用,因此這些約定應非常靈活。首先,它們應答應不同的驅動程序使用不同的方案來命名數據庫。例如, odbc 子協議答應(但并不是要求) URL 含有屬性值。第二,JDBC URL 應答應驅動程序編程員將一切所需的信息編入其中。這樣就可以讓要與給定數據庫對話的 applet 打開數據庫連接,而無須要求用戶去做任何系統治理工作。第三, JDBC URL 應答應某種程度的間接性。也就是說,JDBC URL 可指向邏輯主機或數據庫名,而這種邏輯主機或數據庫名將由網絡命名系統動態地轉換為實際的名稱。這可以使系統治理員不必將特定主機聲明為JDBC 名稱的一部份。網絡命名服務(例如 DNS、 NIS 和DCE )有多種,而對于使用哪種命名服務并無限制。JDBC URL 的標準語法如下所示。它由三部分組成,各部分間用冒號分隔:
  jdbc:< 子協議 >:< 子名稱 >
  JDBC URL 的三個部分可分解如下: jdbc ─ 協議。
  JDBC URL 中的協議總是 jdbc。
  <子協議> ─ 驅動程序名或數據庫連接機制(這種機制可由一個或多個驅動程序支持)的名稱。子協議名的典型示例是 "odbc",該名稱是為用于指定 ODBC 風格的數據資源名稱的 URL 專門保留的。例如,為了通過JDBC-ODBC 橋來訪問某個數據庫,可以用如下所示的 URL:
  jdbc:odbc:fred
  本例中,子協議為 "odbc",子名稱 "fred" 是本地ODBC 數據資源。
  假如要用網絡命名服務(這樣 JDBC URL 中的數據庫名稱不必是實際名稱),則命名服務可以作為子協議。例如,可用如下所示的 URL :jdbc:dcenaming:accounts-payable本例中,該 URL 指定了本地 DCE 命名服務應該將數據庫名稱 "accounts-payable" 解析為更為具體的可用于連接真實數據庫的名稱。<子名稱> ─ 一種標識數據庫的方法。子名稱可以依不同的子協議而變化。它還可以有子名稱的子名稱(含有驅動程序編程員所選的任何內部語法)。使用子名稱的目的是為定位數據庫提供足夠的信息。前例中,因為 ODBC 將提供其余部份的信息,因此用 "fred" 就已足夠。然而,位于遠程服務器上的數據庫需要更多的信息。例如,假如數據庫是通過Internet 來訪問的,則在 JDBC URL 中應將網絡地址作為子名稱的一部份包括進去,且必須遵循如下所示的標準 URL 命名約定://主機名:端口/子協議假設 "dbnet" 是個用于將某個主機連接到 Internet 上的協議,則 JDBC URL 類似:
  jdbc:dbnet://wombat:356/fred 2.1.4 "odbc" 子協議子協議 odbc 是一種非凡情況。它是為用于指定 ODBC 風格的數據資源名稱的 URL 而保留的,并具有下列特性:答應在子名稱(數據資源名稱)后面指定任意多個屬性值。odbc 子協議的完整語法為: jdbc:odbc:< 數據資源名稱 >[;< 屬性名 >=< 屬性值 >]*
  因此,以下都是合法的 jdbc:odbc 名稱:
  jdbc:odbc:qeor7jdbc:odbc:wombat
  jdbc:odbc:wombat;CacheSize=20;ExtensionCase=LOWER
  jdbc:odbc:qeora;UID=kgh;PWD=fooey
  2.1.5 注冊子協議驅動程序編程員可保留某個名稱以將之用作 JDBC URL 的子協議名。
  當 DriverManager 類將此名稱加到已注冊的驅動程序清單中時,為之保留該名稱的驅動程序應能識別該名稱并與它所標識的數據庫建立連接。例如,odbc 是為 JDBC- ODBC 橋而保留的。
  示例之二,假設有個 Miracle 公司,它可能會將 "miracle" 注冊為連接到其Miracle DBMS 上的JDBC 驅動程序的子協議,從而使其他人都無法使用這個名稱。JavaSoft 目前作為非正式代理負責注冊 JDBC 子協議名稱。要注冊某個子協議名稱,請發送電子郵件到下述地址:
  jdbc@wombat.eng.sun.com
  2.1.6 發送 SQL 語句連接一旦建立,就可用來向它所涉及的數據庫傳送 SQL 語句。JDBC對可被發送的 SQL 語句類型不加任何限制。這就提供了很大的靈活性,即答應使用特定的數據庫語句或甚至于非 SQL 語句。然而,它要求用戶自己負責確保所涉及的數據庫可以處理所發送的 SQL 語句,否則將自食其果。例如,假如某個應用程序試圖向不支持儲存程序的DBMS 發送儲存程序調用,就會失敗并將拋出異常。JDBC 要求驅動程序應至少能提供 ANSI SQL-2 Entry Level 功能才可算是符合 JDBC標準TM 的。這意味著用戶至少可信賴這一標準級別的功能。JDBC 提供了三個類,用于向數據庫發送 SQL 語句。Connection 接口中的三個方法可用于創建這些類的實例。下面列出這些類及其創建方法:
  Statement ─ 由方法 createStatement 所創建。Statement 對象用于發送簡單的SQL 語句。
  PreparedStatement ─ 由方法 prepareStatement 所創建。
  PreparedStatement 對象用于發送帶有一個或多個輸入參數( IN 參數)的 SQL 語句。PreparedStatement 擁有一組方法,用于設置 IN 參數的值。
  執行語句時,這些 IN 參數將被送到數據庫中。PreparedStatement 的實例擴展了 Statement ,因此它們都包括了 Statement 的方法。
  PreparedStatement 對象有可能比 Statement 對象的效率更高,因為它已被預編譯過并存放在那以供將來使用。
  CallableStatement ─ 由方法 prepareCall 所創建。CallableStatement 對象用于執行 SQL 儲存程序 ─ 一組可通過名稱來調用(就象函數的調用那樣)的SQL 語句。CallableStatement 對象從 PreparedStatement 中繼續了用于處理 IN 參數的方法,而且還增加了用于處理 OUT 參數和 INOUT 參數的方法。
  以下所列提供的方法可以快速決定應用哪個 Connection 方法來創建不同類型的SQL 語句:
  createStatement 方法用于:簡單的 SQL 語句(不帶參數) prepareStatement 方法用于: 帶一個或多個IN 參數的 SQL 語句 經常被執行的簡單 SQL 語句prepareCall 方法用于: 調用已儲存過程2.1.7 事務事務由一個或多個這樣的語句組成:這些語句已被執行、完成并被提交或還原。當調用方法 commit 或 rollback 時,當前事務即告就結束,另一個事務隨即開始。
  缺省情況下,新連接將處于自動提交模式。也就是說,當執行完語句后,將自動對那個語句調用 commit 方法。這種情況下,由于每個語句都是被單獨提交的,因此一個事務只由一個語句組成。假如禁用自動提交模式,事務將要等到 commit 或rollback 方法被顯式調用時才結束,因此它將包括上一次調用 commit 或rollback 方法以來所有執行過的語句。對于第二種情況,事務中的所有語句將作為組來提交或還原。
  方法 commit 使 SQL 語句對數據庫所做的任何更改成為永久性的,它還將釋放事務持有的全部鎖。而方法 rollback 將棄去那些更改。
  有時用戶在另一個更改生效前不想讓此更改生效。這可通過禁用自動提交并將兩個更新組合在一個事務中來達到。假如兩個更新都是成功,則調用 commit 方法,從而使兩個更新結果成為永久性的;假如其中之一或兩個更新都失敗了,則調用 rollback 方法,以將值恢復為進行

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美在线看| 在线观看免费高清视频97| 伊人亚洲福利一区二区三区| 亚洲视频欧洲视频| 91久久精品日日躁夜夜躁国产| 在线视频精品一| 欧美日韩中文字幕综合视频| 91久久国产精品| 欧美高清视频一区二区| 午夜精品久久久久久久99热浪潮| 国产亚洲一区二区精品| 亚洲午夜激情免费视频| 中文字幕欧美日韩在线| 中文字幕亚洲字幕| 91探花福利精品国产自产在线| 国产精品久久久久久久电影| 欧美一级淫片aaaaaaa视频| 亚洲高清福利视频| 欧美性猛交xxxx偷拍洗澡| 亚洲a在线播放| 欧美整片在线观看| 欧美疯狂做受xxxx高潮| 欧美疯狂性受xxxxx另类| 国产精品日韩电影| 91热精品视频| 欧美老妇交乱视频| 亚洲精品98久久久久久中文字幕| 亚洲成在人线av| 在线视频欧美性高潮| 亚洲欧美日韩图片| 91久久精品国产91久久性色| 精品欧美一区二区三区| 亚洲高清在线观看| 成人午夜小视频| 久久久久久久国产| 亚洲欧美精品一区| 国产免费久久av| 欧美日韩国产91| 亚洲四色影视在线观看| 国产一区二区精品丝袜| 在线中文字幕日韩| 国产精品永久在线| 亚洲石原莉奈一区二区在线观看| 日本视频久久久| 亚洲性夜色噜噜噜7777| 亚洲a级在线观看| 国产精品扒开腿爽爽爽视频| 中文字幕亚洲情99在线| 国产成+人+综合+亚洲欧美丁香花| 亚洲激情视频网| 少妇高潮 亚洲精品| 亚洲乱码一区av黑人高潮| 亚洲第一页中文字幕| 欧美性xxxx18| 久久久久久尹人网香蕉| 日韩理论片久久| 国产一区二区丝袜高跟鞋图片| 一本一本久久a久久精品牛牛影视| 久久视频免费在线播放| 日韩中文字幕在线视频播放| 激情成人在线视频| 91社影院在线观看| 亚洲欧美在线磁力| 亚洲精品动漫久久久久| 日韩成人av在线| 国产精品久久久久福利| 久久777国产线看观看精品| 日韩视频一区在线| 日本精品va在线观看| 亚洲欧美国产日韩天堂区| 亚洲精品电影在线观看| 主播福利视频一区| 国产精欧美一区二区三区| 欧美中文字幕在线| 欧美激情一区二区三区久久久| 日韩激情视频在线| 日韩免费在线电影| 久久精品国产96久久久香蕉| 亚洲肉体裸体xxxx137| 亚洲影院在线看| 97人人模人人爽人人喊中文字| 亚洲精品国产精品国产自| 91精品久久久久久久久| 国产精品扒开腿做爽爽爽男男| 日韩在线播放av| 亚洲人成在线观看| 亚洲国产精品热久久| 欧美视频在线视频| 欧美自拍大量在线观看| 欧美黑人狂野猛交老妇| 久久久影视精品| 国产免费一区视频观看免费| 欧美xxxx综合视频| 国产精品综合不卡av| 国产精品自产拍在线观看| 欧美与黑人午夜性猛交久久久| 欧美日韩在线观看视频小说| 日本亚洲欧美三级| 久久久精品国产网站| 美女福利视频一区| 久久久久久久999精品视频| 日本中文字幕成人| 国产一区二区三区毛片| 78m国产成人精品视频| 亚洲人成网7777777国产| 欧美日韩美女在线观看| 亚洲国产精品va在线看黑人动漫| 国产97色在线| 欧美一区二区影院| 国产精品爽爽ⅴa在线观看| 国内外成人免费激情在线视频| 亚洲男人第一av网站| 欧美伊久线香蕉线新在线| 日韩欧美在线观看| 日韩专区在线观看| 国产精品视频内| 97国产一区二区精品久久呦| 日韩色av导航| 日韩美女在线观看| 欧美性猛交xxxx富婆| 国产最新精品视频| 欧美在线日韩在线| 精品中文字幕在线观看| 日韩精品视频在线观看免费| 日韩欧美精品在线观看| 亚洲欧美中文另类| 欧美最猛性xxxx| 韩国美女主播一区| 欧美日韩午夜剧场| 亚洲欧美在线x视频| 久久久av免费| 精品国产美女在线| 这里只有精品久久| 国产主播在线一区| 欧美成人免费在线观看| 欧美激情一区二区三区久久久| 国产欧美日韩91| 成人精品视频久久久久| 久久久天堂国产精品女人| 久99久在线视频| 国产精品极品美女粉嫩高清在线| 91久久在线视频| 欧美性高潮在线| 中日韩美女免费视频网站在线观看| 亚洲高清不卡av| 91色在线视频| 亚洲男人的天堂在线播放| 国产一区视频在线| 欧美激情一级欧美精品| 成人黄色免费看| 日韩精品丝袜在线| 韩国三级日本三级少妇99| 亚洲精品欧美日韩| 国产精品久久久久久久电影| 欧美黄色三级网站| 91精品国产综合久久久久久久久| 国产精国产精品| 亚洲免费成人av电影| 成人精品在线观看| 亚洲片在线观看| 日韩中文在线中文网三级| 久久久久久香蕉网| 亚洲国产欧美精品| 欧美亚洲在线观看|