java是與Oracle數據連接(jdbc)


爲了對學過的知識進行回顧和總結,今天寫這篇文章。

      爲了使用java從數據庫去讀數據,或者把數據寫入到數據庫中。我們需要了解一些數據庫連接的相關知識。

首先要不一個與數據庫連接的包導入到Eclipse中,這個包的名字是:ojdbc14_11g.jar

用java連接數據有一下幾步:

               a.註冊驅動

               b.通過驅動管理器連接數據庫。

               c.獲得語句對象。

               d.傳遞SQL語句對象,並放回查詢結果。

               e.關閉資源。

下來是相應的代碼實現數據庫的連接:

    1由於我連接數據庫時候,用的是Oracle數據庫。所以註冊數據庫驅動的用如下方式(不同數據庫,字符不一樣):

                        Class.forName("oracle.jdbc.driver.OracleDriver");//構建一個指定字符串的實例

    2通過驅動管理器獲得到數據庫的連接

                       //格式:"jdbc:oracle:thin:@<IP>:<端口號,默認1521>:<sid>"
			String url = "jdbc:oracle:thin:@localhost:1521:orcl";
			String dbUsername = "system";
			String dbPassword = "openlab";
			conn = DriverManager.getConnection(url, dbUsername, dbPassword);
對於IP,如果所寫的java程序與數據庫在同一臺計算機上,這時候可以寫localhost,但是對不不在同一臺計算機上這種情況,就需要寫相應所在機子上的IP地址。對於Oracle數據庫,使用端口號是1521。不同的數據有不同的端口號。sid指明瞭要連接的數據庫的類型。dbUsername和dbPassword指的是按住數據庫是所填寫的用戶名和密碼。如果在安裝Oracl沒有填寫用戶名,默認是system。口令是必填的,口令就是這個地方的dbPassword。通過url,dbUsername,dbPassword這三個信息獲得到數據庫的一個連接的對象conn。而這個對象的類型是:Connection。

    3.通過獲得的連接獲得語句對象。獲得這個對象是爲了調用相應的方法執行SQL語句的。

                       stmt = conn.createStatement();
   4.執行SQL語句,並且遍歷結果集

                        String sql = "select dname,location from dept_fen";
			rs = stmt.executeQuery(sql);
			while(rs.next()){
				String dname = rs.getString("dname");
				String loc = rs.getString("location");
				//String dept = rs.getString("deptno");
				System.out.println(dname + ","+ loc);
			}
需要說明的是:dept_fen是我數據庫中的一個表。用語句對象,調用executeQuery()方法,來執行SQL語句。

   5關閉資源。

   獲得連接,獲得語句對象,獲得查詢的結果集,都需要耗費相當大的資源。如果資源不關閉的話,數據庫資源用盡,將不能進行數據的操作。所以關閉連接比較重要,切勿忘記!爲了確保在任何情況下都能關閉打開的資源,可以使用下面這種方式。

finally{
			//可以把關閉資源放在finally中,這樣有個好處就是,不管發生什麼情況,總會別執行到,所用建議使用這種
			//方式來關閉資源,這是比較好的一種方式
			try{
				rs.close();
			}catch(SQLException e){
				e.printStackTrace();
			}
			try{
				stmt.close();
			}catch(SQLException e){
				e.printStackTrace();
			}
			
			try{
				conn.close();
			}catch(SQLException e){
				e.printStackTrace();
			}
}
finally確保了在任何情況下,其內部的代碼都會別執行到。


發佈了76 篇原創文章 · 獲贊 4 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章