JDBC使用步驟

JDBC編程步驟:

1、註冊載入JDBC驅動程序;

註冊載入驅動driver。也就是強制類載入:其註冊載入JDBC驅動有三種方法: java

方法一:Class.forName(DriverName); 當中DriverName=Driver包名。Driver類名; 
Oracle的DriverName=「oracle.jdbc.driver.OracleDriver「。 
SQLServer的DriverName=「com.microsoft.jdbc.sqlserver.SQLServerDriver「。
方法三:直接建立一個驅動對象:new oracle.jdbc.driver.OracleDriver()。
mysql

MySql的DriverName=「com.mysql.jdbc.Driver「; sql

方法二:Class.forName(DriverName).newInstance(); 數據庫

代碼完畢兩個功能:第一,把驅動程序載入到內存裏;第二。把當前載入的驅動程序本身主動去DriverManager那註冊,DriverManager是JDBC規範中惟一的Java類。編程

2、獲得鏈接對象 Connection

要鏈接數據庫,需要向java.sql.DriverManager請求並得到Connection對象,該對象就表明一個數據庫的鏈接。      
使用DriverManager的getConnectin(Stringurl , String username ,  String password )方法傳入指定的欲鏈接的數據庫的路徑、數據庫的username與password來得到。      
  好比://鏈接MySql數據庫,username和password都是root      
  String url ="jdbc:mysql://localhost:3306/test";      
   String username = "root";   
   String password = "root" ; 
   try{      
     Connection con =DriverManager.getConnection(url ,username , password ) ;     
   }catch(SQLException se){      
     System.out.println("數據庫鏈接失敗!");   
      se.printStackTrace();    
   }
oracle

 

一、DriverManager在JDBC規範中是類而不是接口。它是一個服務類,用於管理JDBC驅動程序,提供getConnection()方法創建應用程序與數據庫的鏈接。當JDBC驅動程序載入到內存時,會本身主動向DriverManager註冊。此行代碼發出鏈接請求,DriverManager類就會用註冊的JDBC驅動程序來建立到數據庫的鏈接。sqlserver

二、DriverManager.getConnection()是個靜態方法。url

三、DriverManager在java.sql包中。當咱們調用sql包裏不論什麼一個類(包含接口)的不論什麼一個方法時都會報一個編譯時異常SQLException。這裏咱們使用一個try塊後跟多個catch塊解決。spa

四、方法參數URL:統一資源定位符。咱們鏈接的數據庫在哪臺主機上(這個經過ip地址肯定),這個主機有可能裝了好幾種數據庫軟件,比方SqlServer,mysql,oracle,那麼咱們鏈接哪一個數據庫要經過port號來肯定。port號又稱服務號監聽號,sqlserver爲1433,mysql爲3306,oracle爲1521:。下表列出常常使用數據庫軟件的url寫法:server

Oracle: jdbc:oracle:thin:@ip:1521:dbName;

MySql:jdbc:mysql://ip:3306:dbName; 
SQLServer:jdbc:sqlserver://ip:1443;databaseName=dbName;

五、當使用本機ip地址鏈接時需要關閉防火牆。不然鏈接不上,使用localhost或127.0.0.1則不用關閉防火牆。

3、建立 Statement對象

一、運行靜態SQL語句。一般經過Statement實例實現。   

二、運行動態SQL語句。一般經過PreparedStatement實例實現。         
三、運行數據庫存儲過程。一般經過CallableStatement實例實現。

      
 詳細的實現方式:        
Statement stmt = con.createStatement();         

PreparedStatement pstmt=con.prepareStatement(sql);         

CallableStatement cstmt =con.prepareCall("{CALLdemoSp(? , ?

)}") ;   

 4、運行sql語句

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

 一、ResultSet       executeQuery(String sqlString):運行查詢數據庫的SQL語句。返回一個結果集(ResultSet)對象。  

 二、int    executeUpdate(String sqlString):用於運行INSERT、UPDATE或DELETE語句以及SQL DDL語句,如:CREATETABLE和DROP TABLE等       

 三、execute(sqlString):用於運行返回多個結果集、多個更新計數或兩者組合的 語句。詳細實現的代碼:

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

5、處理結果 兩種狀況:   

    一、運行更新返回的是本次操做影響到的記錄數。

   

    二、運行查詢返回的結果是一個ResultSet對象。    

    ResultSet包括符合SQL語句中條件的所有行。並且它經過一套get方法提供了對這些行中數據的訪問。

 

    使用結果集(ResultSet)對象的訪問方法獲取數據:  

    while(rs.next()){      

    String name = rs.getString("name") ;  

   String pass = rs.getString(1) ; // 此方法比較高效     

 }      

(列是從左到右編號的,並且從列1開始)

6、關閉資源釋放資源

  操做完畢之後要把所有使用的JDBC對象全都關閉,以釋放JDBC資源。關閉順序和聲明順序相反:    

   一、關閉記錄集   

    二、關閉聲明   

    三、關閉鏈接對象

            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() ; 

         }          

  }

相關文章
相關標籤/搜索