JDBC的簡介
???????? JDBC(Java Data Base Connectivity,java數據庫連接)是一種用于執行SQL語句的Java API,可以為多種關系數據庫提供統一訪問,它由一組用Java語言編寫的類和接口組成。JDBC為工具/數據庫開發人員提供了一個標準的API,據此可以構建更高級的工具和接口,使數據庫開發人員能夠用純 Java API 編寫數據庫應用程序,操作不同的數據庫需要使用不同的JDBC。
JDBC編程步驟
一、Load the Driver? 加載JDBC驅動程序
???????? DriverManager管理一組JDBC驅動程序的基本服務。可以想象成一個管家,通過注冊DriverManager可以拿到跟數據庫的一根鏈接。
????????? 首先新建一個項目,過程不再贅述。右擊項目->Build Path -> Add External Archives。然后選擇sqljdbc4.jar
???????? 然后實例化SQLServerDriver,打開jar包你會發現它的路徑是com.microsoft.sqlserver.jdbc.SQLServerDriver。實例化有兩種方法:
??? 1、使用Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");?
?????????? Class 與class不同,Class是一個類
???? 2、 new com.microsoft.sqlserver.jdbc.SQLServerDriver();
????? 兩種方法都差不多,沒啥區別,看個人愛好了。
?二、連接數據庫
1
Connection conn = DriverManager.getConnection(, , ,);
??? getConnection有三個參數。
????????? 第一個參數是數據庫的連接字符串,這個需要根據實際情況的不同而有所不同。
????????? 第二個是用戶名
? ? ? ? ? 第三個是密碼
三、Execute the SQL 執行數據庫語句
? ? ? ? 執行數據庫語句前要創建一個語句對象。Statement
1
Statement stmt = conn.createStatement(); ????????????????????????
? 四、處理得到的結果集
1
ResultSet rs = stmt.executeQuery("select * from dept");
???????? 返回來的結果集rs,指針指向第一條數據的前面,所以需要先next一下。
1 while ( rs.next()){ 2 3 rs.getString(); 4 5 rs.getInt(); 6 7 …… 8 }
五、關閉數據庫
??????????? 原則上,后打開的先關閉
ResultSet.close
Statement.close
Connection.close
?
下面是完整代碼:
?
1 import java.sql.* ; 2 public class JTest{ 3 4 public static void main(String[] args) throws Exception{ 5 String JDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver" ; 6 String connectDB="jdbc:sqlserver://ABYSS-PC\\MYABYSS:64160;DatabaseName=master" ; 7 // 實例化驅動 8 Class.forName(JDriver); 9 String user ="sa" ; 10 String possword = "" ; 11 // 連接數據庫 12 Connection conn = 13 DriverManager.getConnection(connectDB, user, possword); 14 // 創建語句對象 15 Statement stmt = conn.createStatement(); 16 // 執行select語句 17 ResultSet rs = 18 stmt.executeQuery("Select * from dept" ); 19 // 循環獲取結果集 20 while ( rs.next()){ 21 System.out.println(rs.getString("deptno" )); 22 System.out.println(rs.getInt("deptno" )); 23 } 24 // 關閉數據庫,遵循后打開先關閉的原則。 25 rs.close(); 26 stmt.close(); 27 conn.close(); 28 } 29 }
?
?
?
JDBC編程大致就這么些步驟,不過以上的代碼太不專業了,而且有點問題。實例化驅動、連接數據庫、創建語句對象等代碼都會拋出異常,假若在程序運行的過程中出現異常而導致程序終止,后面的關閉數據庫的語句不會被執行,而且被申請的內存不會被釋放,長此以往會導致資源的耗盡。因此這里需要將throws 改為try/catch。
import java.sql.* ; public class JText { public static void main(String[] args) { String JDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver" ; String connectDB ="jdbc:sqlserver://ABYSS-PC\\MYABYSS:64160;DatabaseName=master" ; String user ="sa" ; String possword = "" ; Connection conn = null ; Statement stmt = null ; ResultSet rs = null ; try { // 實例化驅動 Class.forName(JDriver); // 連接數據庫 conn = DriverManager.getConnection(connectDB, user, possword); // 創建語句對象 stmt = conn.createStatement(); // 執行select語句 rs = stmt.executeQuery("Select * from dept" ); // 循環獲取結果集 while ( rs.next()){ System.out.println(rs.getString( "deptno" )); System.out.println(rs.getInt( "deptno" )); } } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { // 關閉數據庫,遵循后打開先關閉的原則。 if (rs != null ){ // 在關閉之前,判斷一下是否為空 rs.close(); // 關閉之后 釋放資源,這是一個很好的習慣 rs = null ; } if (stmt != null ){ stmt.close(); stmt = null ; } if (conn != null ){ conn.close(); conn = null ; } } catch (SQLException e){ e.printStackTrace(); } } } }
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
