使用JDBC開發數據庫應用程序:
JDBC API是一個Java應用程序接口,作用是一般化SQL數據庫,使Java開發者能夠通過統一的接口開發獨立於DBMS的Java應用程序,JDBC最大的特點是無論後臺是何種數據庫。對於Java程序員而言,他的工作方式完全相同。JDBC爲許多不同的數據庫連接模塊的前端提供了統一的接口。
JDBC API 由類和接口構成,這些類和接口用於建立數據庫的連接、把SQL語句發送到數據庫、處理SQL語句的結果以及獲取數據庫的元數據。使用Java開發任何數據庫應用程序都需要4個主要接口:Driver、Connection、Statement和ResultSer。這些接口定義了使用SQL訪問數據庫的一般架構。JDBC API定義了這些接口。JDBC驅動程序開發商爲這些接口提供實現。程序員使用這些接口。
這些接口的關係如圖所示,JDBC應用程序使用Driver接口加載一個合適的驅動,使用Connection接口加載一個合適的驅動程序,使用Connection接口連接到數據庫,使用Statement接口創建和執行SQL語句,如果語句返回結果的話,使用ResultSet接口處理結果。注意,有一些語句不返回結果,例如,SQL數據定義語句和SQL數據修改語句。
JDBC類能夠讓Java程序連接到數據庫,發送SQL語句並處理結果
JDBC接口和類是開發Java數據庫程序的構造模塊。訪問數據庫的典型Java程序主要採用下列步驟:
1.加載驅動程序
在連接到數據庫之前,必須使用下面的語句,加載一個合適的驅動程序:
Class.forName("JDBCDriverClass");
驅動程序是一個實現接口java.sql.Driver的具體類。
下表列出了Access、MySQL和Oracle的驅動程序:
JDBC驅動程序
注意: 要使用驅動程序,必須將相關的jar包加載到類路徑(classpath)中。
jar包中包含許多支持驅動的類。這些類由JDBC使用,但不直接由JDBC程序員使用。當你在程序中明確使用某個類時,它被JVM自動加載。但是在程序中不顯示地使用驅動程序類,因此,必須編寫代碼告訴JVM加載它們。
Java6支持驅動程序的自動加載,因此不需要顯示地加載它們。但是,並不是所有的驅動程序都有這個特性。我了安全起見,應該顯示加載驅動程序。
這種連接方式的優點是:無需在客戶端或者服務器端安裝特殊軟件,而且這些驅動程序可以被動態下載。
2.建立連接:
爲了連接到一個數據庫,需要使用DriverManager類中的靜態方法getConnection(databaseURL),如下所示:
Connection connection=DriverManager.getConnection(databaseURL);
其中databaseURL是數據庫在Internet上的唯一標識符。下表列出了Access、MySQL、Oracle的URL
JDBC的URL
MySQL數據庫的databaseURL指定定位數據庫的主機名和數據庫名。例如下面的語句以用戶名admin和密碼admin,爲本地MySQL數據庫創建一個Connection對象,假設要使用的數據庫名爲Javabook:
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost/javabook","admin","admin");
3.創建語句
如果把一個Connection對象想象成一條連接程序和數據庫的纜道,那麼Statement對象或它的子類可以看作一輛纜車,它爲數據庫傳輸SQL語句,並把運行結果返回程序。一旦創建了Connection對象,就可以創建執行SQL語句的語句。
Statement statement=connection.createStatement();
4.執行語句
可以使用方法executeUpdate(String sql)來執行SQL DDL(數據庫定義語言)或更新語句,可以使用executeQuery(String sql)來執行SQL查詢語句。查詢結果在ResultSet中返回。例如下面的代碼執行SQL語句create table Temp(col1 char(5),col2 char(5))。
statement.executeUpdate("create table Temp(col1 char(5),col2 char(5))");
下面的代碼執行SQL查詢功能:
ResultSet resultSet=statement.executeQuery("select * from Student");