Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();<br />String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";<br />String user="sa";<br />String password="";<br />Connection conn=DriverManager.getConnection(url,user,password);<br />Statement stmt = conn.createStatement();<br />ResultSet rs = stmt.executeQuery(sql);<br />while(rs.next())<br />{<br /> System.out.println(rs.getString(1));//列印表的第一列<br />}
Java JDBC編程總結
文章分類:Java編程
Hibernate、TopLink等OR
Mapping操作資料庫的技術都是建立JDBC技術之上的,實際來說,他們的效能和JDBC是有很大差距的,但反過來說,如果JDBC用不好,還不如
hibernate呢。暫且不說這些孰優孰劣的話了,再次主要是對Java的基礎技術做個總結,以加深認識。
一、JDBC的基本原理
JDBC是Java操作資料庫的技術規範。他實際上定義了一組標準的操作資料庫的介面。為了能讓Java操作資料庫,必須要有實現了JDBC這些
介面的類,不同的資料庫廠商為了讓Java語言能操作自己的資料庫,都提供了對JDBC介面的實現--這些實現了JDBC介面的類打成一個jar包,就是
我們平時看到的資料庫驅動。由於不同的資料庫操作資料的機制不一樣,因此JDBC的具體實現也就千差萬別,但是你作為java程式員,你只和Java
JDBC的介面打交到,才不用理會他們怎麼實現的!呵呵,現在知道JDBC驅動是怎麼回事了。當然,這些類可以自己去寫--如果你很牛!
二、JDBC編程的步驟
為了說明這個步驟,假設你要通過java程式執行一個sql查詢,你需要按照如下的步驟去走:
1、建立指定資料庫的URL
這個URL實際上還是統一資源定位器,裡麵包含了一些串連資料庫的資訊:資料庫類型、連接埠、驅動類型、串連方式、資料庫伺服器的ip(或名字)、資料庫名(有的是別名)等。其格式如下:
jdbc:subProtocol:subName://DBserverIP:port/DatabaseName
例如mysql的一個url:jdbc:mysql://192.168.3.143:3306/zfvims
2、載入驅動類到JVM記憶體地區中
有兩種方法:
一種是用Class.forName()方法載入指定的驅動程式。
一種是將驅動程式添加到java.lang.System的屬性jdbc.drivers中。
最後說明一點,有時候添加到系統的CLASSPATH環境變數是不行的,原因是在使用JDBC介面操作資料庫前,JVM還沒有載入上驅動。
Class.forName("com.mysql.jdbc.Driver")
3、、通過DriverManager類管理驅動、建立資料庫連接。
DriverManager類作用於程式員和JDBC驅動程式之間,提供註冊管理驅動建立串連細節等方法,它所有成員均為靜態。通過其getConnection方法會建立一個JDBC Connection對象。
Connection conn=DriverManager.registerDriver("jdbc:mysql://192.168.3.143:3306/zfvims","lavasoft","password");
4、Connection類--資料庫連接
這裡所說的Connection類實際上是實現了JDBC的Connection介面的類,這個類一般都是jdbc驅動程式實現了。
Connection類表示了資料庫連接,通過其對象可以擷取一個擷取資料庫和表等資料庫物件的詳細資料。但更多的是通過這個串連更進一步去向資料庫發送
SQL語句去執行,下面會講到。
資料庫的串連的建立是很耗費資源和時間的,因此在不用串連的情況下要通過其close()方法將串連關閉,以釋放系統資源。
5、Statement類--發送並執行(靜態)SQL語句
通過Connection對象的createStatement()方法可以建立一個Statement對象,通過該對象的方法可以(發送)並執
行一個靜態sql語句。如果要執行動態sql(sql串中有參數),那麼就用PreparedStatement類,用法和Statement類似。
Statement stmt=con.createStatement()
6、ResultSet類--結果集
當你執行一條sql查詢後,就會產生一個查詢結果。ResultSet就表示資料庫結果集的資料表,通常通過執行查詢資料庫的語句產生。
ResultSet 對象具有指向其當前資料行的指標。通過ResultSet對象不但可以結果集資料,還可以擷取結果集表的列名、資料類型等資訊。
ResultSet rs=stmt.executeQuery(sql)
7、關閉資料庫連接
當對sql操作完成後,應該關閉資料庫連接,這樣避免因為串連未關閉而耗費系統資源,如果每次都不關閉,多次操作將建立多個串連,最終資料庫連接會達到最大限度,或者耗盡系統的資源,從而導致應用崩潰。因此要注意關閉資源,尤其是資料庫連接。