本週的小組項目工做主要是完成詳細設計,在系統實現上這幾天我主要在學習使用JDBC鏈接數據庫,以前並無接觸過,因此從最基本的開始去了解學習。html
JDBC表明Java數據庫鏈接,這對Java編程語言和普遍的數據庫之間獨立於數據庫的鏈接標準的Java API。java
JDBC庫包含的API爲每一個一般與數據庫的使用相關聯的任務:mysql
使得鏈接到數據庫sql
建立SQL或MySQL語句數據庫
執行SQL或MySQL的查詢數據庫編程
查看和修改結果記錄架構
從根本上說,JDBC是一種規範,它提供的接口,一套完整的,容許便攜式訪問底層數據庫。能夠用Java來寫不一樣類型的可執行文件,如:併發
Java應用程序oracle
Java Appletsyii
Java Servlets
Java ServerPages (JSP)
Enterprise JavaBeans (EJBs)
全部這些不一樣的可執行文件就可使用JDBC驅動程序來訪問數據庫,並把存儲的數據的優點。
JDBC提供了相同的功能,ODBC,容許Java程序包含與數據庫無關的代碼。
之前正如期進行本教程,須要具有如下兩個主題內容很好的瞭解:
JDBC API支持兩層和三層處理模型進行數據庫訪問,但在通常的JDBC體系結構由兩層組成:
JDBC API: 提供了應用程序對JDBC的管理鏈接。
JDBC Driver API: 支持JDBC管理到驅動器鏈接。
JDBC API的使用驅動程序管理器和數據庫特定的驅動程序提供透明的鏈接到異構數據庫。
JDBC驅動程序管理器可確保正確的驅動程序來訪問每一個數據源。該驅動程序管理器可以支持鏈接到多個異構數據庫的多個併發的驅動程序。
注:更多關於JDBC內容(常見的JDBC組件、軟件包等)如下連接有詳細說明:http://www.yiibai.com/jdbc/jdbc-introduction.html
在安裝相應的驅動程序後,能夠開始創建使用JDBC的數據庫鏈接。
涉及到創建一個JDBC鏈接的編程是至關簡單的。下面是這些簡單的四個步驟:
導入JDBC包: 添加import語句到Java程序導入所需的類在Java代碼中。
註冊JDBC驅動程序:這一步會致使JVM加載所需的驅動程序實現到內存中,所以它能夠實現JDBC請求。
數據庫URL制定:這是建立格式正確的地址指向到要鏈接的數據庫。
建立鏈接對象:最後,代碼調用DriverManager對象的getConnection()方法來創建實際的數據庫鏈接。
import 語句告訴Java編譯器在哪裏能夠找到在代碼中引用,並放置在您的源代碼最開始的類。
使用標準的JDBC包,它容許選擇,插入,更新和SQL表中刪除數據,添加如下進口到您的源代碼:
import java.sql.* ; // for standard JDBC programs import java.math.* ; // for BigDecimal and BigInteger support
使用它以前,必須註冊你的驅動程序在程序。註冊驅動程序是由Oracle驅動程序的類文件被加載到內存中以便它能夠被用做JDBC接口的實現過程。
須要作這個註冊只能在你的程序一次。能夠經過如下兩種方式之一註冊一個驅動程序。
能夠用它來註冊一個驅動程序的第二種方法是使用staticDriverManager.registerDriver()方法。
應該,若是使用的是不兼容的JDK JVM,好比微軟提供一個使用registerDriver()方法。
下面的示例使用registerDriver()來註冊Oracle驅動程序:
try { Driver myDriver = new oracle.jdbc.driver.OracleDriver(); DriverManager.registerDriver( myDriver ); } catch(ClassNotFoundException ex) { System.out.println("Error: unable to load driver class!"); System.exit(1); }
注:方法二如下連接有說明:http://www.yiibai.com/jdbc/jdbc-db-connections.html
當加載的驅動程序,能夠創建程序中使用DriverManager.getConnection()方法的鏈接。爲方便參考,讓列出了三個重載DriverManager.getConnection()方法:
getConnection(String url)
getConnection(String url, Properties prop)
getConnection(String url, String user, String password)
在這裏,每一個表單須要一個數據庫URL。數據庫的URL是指向數據庫地址。
制定一個數據庫URL是大多數用在創建鏈接相關。
下面三種形式DriverManager.getConnection()方法來建立一個鏈接對象。getConnection()最經常使用形式要求傳遞一個數據庫URL,用戶名 username和密碼 password:
對URL數據庫部分databaseName的值:假設使用的是Oracle的瘦驅動程序,須要指定一個主機:端口。
假設有一臺主機TCP/IP地址192.0.0.1 以及主機名和Oracle監聽器被配置爲在端口1521,數據庫名稱是EMP,而後完整的數據庫URL是:
jdbc:oracle:thin:@amrood:1521:EMP
如今,必須調用適當的用戶名和密碼以及getConnection()方法來得到一個Connection對象,以下所示:
String URL = "jdbc:oracle:thin:@amrood:1521:EMP"; String USER = "username"; String PASS = "password" Connection conn = DriverManager.getConnection(URL, USER, PASS);
注:其餘兩種形式爲:只使用一個數據庫URL;使用數據庫的URL和一個properties對象。具體實現方法說明請見如下連接:http://www.yiibai.com/jdbc/jdbc-db-connections.html
在JDBC程序的結束,它明確要求關閉全部的鏈接到數據庫,以結束每一個數據庫會話。可是,若是忘了,Java垃圾收集器會關閉鏈接時,它會清除陳舊的對象。
依託垃圾收集,特別是在數據庫編程,是很是差的編程習慣。應該老是在關閉與鏈接對象關聯的close()方法鏈接的習慣。
爲了確保鏈接被關閉,能夠在代碼中的finally塊執行。 finally塊都會執行,不論是否發生或也不例外。
要關閉上面打開的鏈接,應該調用close()方法,以下所示:
conn.close();
顯式地關閉鏈接DBMS節約資源。
小結:第一次使用JDBC來鏈接數據庫,在這過程當中也確實遇到了很多問題,例如JAVA、Oracle使用不熟練對整個過程形成了很大影響,因此仍是須要增強本身的編程能力,對於過程中所犯的一些錯誤須要本身一步一步耐心解決。