歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java使用JDBC方式連接數據庫

Java使用JDBC方式連接數據庫

日期:2017/3/1 9:18:44   编辑:Linux編程

開發一個JDBC應用程序,基本需要以下幾個步驟:

1.把JDBC驅動類裝載入JAVA虛擬機中。使用java.lang.Class類的靜態方法forName(String className)實現。

例: Class.forName("JDBC驅動類名稱")

2.加載驅動,並與數據庫建立連接。DriverManager類跟著已注冊的驅動程序,當我們調用getConnection()方法時,它會遍歷驅動程序列表,直到匹配上一個能夠連接至數據連接字符串中指定的數據庫的驅動程序,加載此驅動程序後,使用DriverManager類的getConnection方法建立與數據庫之間的連接。

例:

Connection con = DriverManager.getConnection(數據庫連接字符串,數據庫用戶名,密碼)

3.發送SQL語句並得到結果集。創建一個Statement接口的實例,並將SQL語句傳遞給它所連接的數據庫。

Statement實例分為3種類型:

(1)執行靜態SQL語句。通常通過Statement實例實現。

(2)執行動態SQL語句。通常通過PreparedStatement實例實現。

(3)執行數據庫存儲過程。通常通過CallableStatement實例實現。

例:

Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from table1");

Statement接口提供了三種執行SQL語句的方法:executeQuery 、executeUpdate ,execute 語句。

  1. ResultSet executeQuery(String sqlString):執行查詢數據庫的SQL語句 並返回一個結果集(ResultSet)對象。
  2. int executeUpdate(String sqlString):用於執行INSERT、UPDATE或DELETE語句以及SQL DDL語句,如:CREATE TABLE和DROP TABLE等
  3. execute(sqlString):用於執行返回多個結果集、多個更新計數或二者組合的語句。

例:

ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;   
int rows = stmt.executeUpdate("INSERT INTO ...") ;   
boolean flag = stmt.execute(String sql) ;   

4.處理結果。處理結果分為兩種情況:

(1)執行更新返回的是本次操作影響到的記錄數。

(2) 執行查詢返回的結果是一個ResultSet對象。

例:

while(rs.next()){
         int x=rs.getInt("a");
         String s=rs.getString("b");
         float f=rs.getFloat("c");  
}

5.關閉JDBC對象

操作完成後,要關閉所有使用的JDBC對象,以釋放JDBC資源,關閉順序和聲明順序相反。

(1) 關閉記錄集

(2) 關閉聲明

(3) 關閉連接對象

 if(rs != null){   // 關閉記錄集   
        try{   
            rs.close() ;   
        }catch(SQLException e){   
            e.printStackTrace() ;   
        }   
          }   
          if(stmt != null){   // 關閉聲明   
        try{   
            stmt.close() ;   
        }catch(SQLException e){   
            e.printStackTrace() ;   
        }   
          }   
          if(conn != null){  // 關閉連接對象   
         try{   
            conn.close() ;   
         }catch(SQLException e){   
            e.printStackTrace() ;   
         }   
          }  

Copyright © Linux教程網 All Rights Reserved