自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用JDBC連接數(shù)據(jù)庫

開發(fā) 后端
本文向您介紹使用JDBC連接數(shù)據(jù)庫的一些知識,包括數(shù)據(jù)庫連接的一些基本概念,結合一個JDBC連接數(shù)據(jù)庫的實例,知道您建立自己的JDBC連接。

據(jù)估算,將近一半的軟件開發(fā)都要涉及客戶(機)/服務器方面的操作。Java為自己保證的一項出色能力就是構建與平臺無關的客戶機/服務器數(shù)據(jù)庫應用。在Java 1.1中,這一保證通過Java數(shù)據(jù)庫連接(JDBC)實現(xiàn)了。

數(shù)據(jù)庫最主要的一個問題就是各家公司之間的規(guī)格大戰(zhàn)。確實存在一種“標準”數(shù)據(jù)庫語言,即“結構查詢語言”(SQL-92),但通常都必須確切知道自己要和哪家數(shù)據(jù)庫公司打交道,否則極易出問題,盡管存在所謂的“標準”。JDBC是面向“與平臺無關”設計的,所以在編程的時候不必關心自己要使用的是什么數(shù)據(jù)庫產(chǎn)品,只要使用JDBC連接數(shù)據(jù)庫就可以。然而,從JDBC里仍有可能發(fā)出對某些數(shù)據(jù)庫公司專用功能的調用,所以仍然不可任性妄為。
 
和Java中的許多API一樣,JDBC也做到了盡量的簡化。我們發(fā)出的方法調用對應于從數(shù)據(jù)庫收集數(shù)據(jù)時想當然的做法:使用JDBC連接數(shù)據(jù)庫,創(chuàng)建一個語句并執(zhí)行查詢,然后處理結果集。

 為實現(xiàn)這一“與平臺無關”的特點,JDBC為我們提供了一個“驅動程序管理器”,它能動態(tài)維護數(shù)據(jù)庫查詢所需的所有驅動程序對象。所以假如要連接由三家公司開發(fā)的不同種類的數(shù)據(jù)庫,就需要三個單獨的驅動程序對象。驅動程序對象會在裝載時由“驅動程序管理器”自動注冊,并可用Class.forName()強行裝載。

為打開一個數(shù)據(jù)庫,必須創(chuàng)建一個“數(shù)據(jù)庫URL”,它要指定下述三方面的內容:

(1) 用“jdbc”指出要使用JDBC。

(2) “子協(xié)議”:驅動程序的名字或者一種數(shù)據(jù)庫連接機制的名稱。由于JDBC的設計從ODBC吸收了許多靈感,所以可以選用的***種子協(xié)議就是“jdbc-odbc橋”,它用“odbc”關鍵字即可指定。

(3) 數(shù)據(jù)庫標識符:隨使用的數(shù)據(jù)庫驅動程序的不同而變化,但一般都提供了一個比較符合邏輯的名稱,由數(shù)據(jù)庫管理軟件映射(對應)到保存了數(shù)據(jù)表的一個物理目錄。為使自己的數(shù)據(jù)庫標識符具有任何含義,必須用自己的數(shù)據(jù)庫管理軟件為自己喜歡的名字注冊(注冊的具體過程又隨運行平臺的不同而變化)。

所有這些信息都統(tǒng)一編譯到一個字串里,即“數(shù)據(jù)庫URL”。舉個例子來說,若想通過ODBC子協(xié)議同一個標識為“people”的數(shù)據(jù)庫連接,相應的數(shù)據(jù)庫URL可設為:

String dbUrl = \"jdbc:odbc:people\"

如果通過一個網(wǎng)絡連接,數(shù)據(jù)庫URL也需要包含對遠程機器進行標識的信息。

準備好同數(shù)據(jù)庫連接后,可調用靜態(tài)方法DriverManager.getConnection(),將數(shù)據(jù)庫的URL以及進入那個數(shù)據(jù)庫所需的用戶名密碼傳遞給它。得到的返回結果是一個Connection對象,利用它即可查詢和操縱數(shù)據(jù)庫。

下面是一個使用JDBC連接數(shù)據(jù)庫的例子,將打開一個聯(lián)絡信息數(shù)據(jù)庫,并根據(jù)命令行提供的參數(shù)查詢一個人的姓(Last Name)。它只選擇那些有E-mail地址的人的名字,然后列印出符合查詢條件的所有人:

  1. //: Lookup.java   
  2. // Looks up email addresses in a    
  3. // local database using JDBC   
  4. import java.sql.*;   
  5.  
  6. public class Lookup {   
  7.   public static void main(String[] args) {   
  8.     String dbUrl = \"jdbc:odbc:people\";   
  9.     String user = \"\";   
  10.     String password = \"\"; [Page]  
  11.     try {   
  12.       // Load the driver (registers itself)   
  13.       Class.forName(   
  14.         \"sun.jdbc.odbc.JdbcOdbcDriver\");   
  15.       Connection c = DriverManager.getConnection(   
  16.         dbUrl, user, password);   
  17.       Statement s = c.createStatement();   
  18.       // SQL code:   
  19.       ResultSet r =    
  20.         s.executeQuery(   
  21.           \"SELECT FIRST, LAST, EMAIL \" +   
  22.           \"FROM people.csv people \" +   
  23.           \"WHERE \" +   
  24.           \"(LAST=’\" + args[0] + \"’) \" +   
  25.           \" AND (EMAIL Is Not Null) \" +   
  26.           \"ORDER BY FIRST\");   
  27.       while(r.next()) {   
  28.         // Capitalization doesn’t matter:   
  29.         System.out.println(   
  30.           r.getString(\"Last\") + \", \"    
  31.           + r.getString(\"fIRST\")   
  32.           + \": \" + r.getString(\"EMAIL\") );   
  33.       }   
  34.       s.close(); // Also closes ResultSet   
  35.     } catch(Exception e) {   
  36.       e.printStackTrace();   
  37.     }   
  38.   }   
  39. ///:~  

可以看到,數(shù)據(jù)庫URL的創(chuàng)建過程與我們前面講述的完全一樣。在該例中,數(shù)據(jù)庫未設密碼保護,所以用戶名和密碼都是空串。

用DriverManager.getConnection()建好連接后,接下來可根據(jù)結果Connection對象創(chuàng)建一個Statement(語句)對象,這是用createStatement()方法實現(xiàn)的。根據(jù)結果Statement,我們可調用executeQuery(),向其傳遞包含了SQL-92標準SQL語句的一個字串(不久就會看到如何自動創(chuàng)建這類語句,所以沒必要在這里知道關于SQL更多的東西)。

executeQuery()方法會返回一個ResultSet(結果集)對象,它與繼承器非常相似:next()方法將繼承器移至語句中的下一條記錄;如果已抵達結果集的末尾,則返回null。我們肯定能從executeQuery()返回一個ResultSet對象,即使查詢結果是個空集(也就是說,不會產(chǎn)生一個違例)。注意在試圖讀取任何記錄數(shù)據(jù)之前,都必須調用一次next()。若結果集為空,那么對next()的這個***調用就會返回false。對于結果集中的每條記錄,都可將字段名作為字串使用(當然還有其他方法),從而選擇不同的字段。另外要注意的是字段名的大小寫是無關緊要的——SQL數(shù)據(jù)庫不在乎這個問題。為決定返回的類型,可調用getString(),getFloat()等等。到這個時候,我們已經(jīng)用Java的原始格式得到了自己的數(shù)據(jù)庫數(shù)據(jù),這樣一個過程下來就完成了JDBC連接數(shù)據(jù)庫的任務;接下去可用Java代碼做自己想做的任何事情了。

 

【編輯推薦】

  1. JDBC數(shù)據(jù)庫驅動程序種類及選擇
  2. JDBC與ODBC的區(qū)別與應用
  3. JSP開發(fā)中JDBC設計加快數(shù)據(jù)庫訪問
  4. 淺談JSP與JDBC的靈活運用
  5. JDBC驅動設置淺析
責任編輯:佚名 來源: 中國自學編程網(wǎng)
相關推薦

2009-07-14 17:18:23

JDBC怎么連接數(shù)據(jù)庫

2009-07-20 15:56:08

JDBC連接數(shù)據(jù)庫步驟

2009-07-20 14:30:38

jdbc連接數(shù)據(jù)庫代碼

2011-03-16 17:14:17

JavaBean數(shù)據(jù)庫

2012-03-02 10:51:06

JavaJDBC

2009-07-07 17:42:28

2009-06-15 15:26:00

NetBeans連接數(shù)使用JSTL

2009-07-14 18:13:36

Microsoft J

2011-12-05 10:43:54

JavaJDBC數(shù)據(jù)庫

2010-03-04 17:19:40

2009-03-19 10:08:09

C#數(shù)據(jù)庫查詢

2011-05-26 09:27:59

JDBC連接數(shù)據(jù)庫

2011-05-26 13:54:42

數(shù)據(jù)庫JDBC連接

2010-06-04 09:33:28

連接MySQL數(shù)據(jù)庫

2009-06-19 10:28:00

JDBC連接數(shù)據(jù)庫

2010-10-12 12:00:42

MySQL連接

2011-07-05 09:54:04

2009-08-25 14:05:06

C#連接數(shù)據(jù)庫代碼

2010-08-04 10:32:56

Flex連接數(shù)據(jù)庫

2009-12-31 10:38:10

ADO.NET連接數(shù)據(jù)
點贊
收藏

51CTO技術棧公眾號