jdbc連接數據庫和使用

 jdbc連接數據庫大全:

一、JDBC連接DB2
Class.forName("Com.ibm.db2.jdbc.net.DB2Driver");
String url="jdbc:db2://dburl:port/DBname"
cn = DriverManager.getConnection( url, sUsr, sPwd );

二、JDBC連接Microsoft SQLServer(microsoft)
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver" );
cn = DriverManager.getConnection( "jdbc:microsoft:sqlserver://DBServerIP:1433;databaseName=master", sUsr, sPwd );

三、JDBC連接Sybase(jconn2.jar)
Class.forName( "com.sybase.jdbc2.jdbc.SybDriver" );
cn = DriverManager.getConnection( "jdbc:sybase:Tds:DBServerIP:2638", sUsr, sPwd );

四、JDBC連接MySQL(mm.mysql-3.0.2-bin.jar)
Class.forName( "org.gjt.mm.mysql.Driver" );
cn = DriverManager.getConnection( "jdbc:mysql://DBServerIP:3306/myDatabaseName", sUsr, sPwd );

五、JDBC連接PostgreSQL(pgjdbc2.jar)
Class.forName( "org.postgresql.Driver" );
cn = DriverManager.getConnection( "jdbc:postgresql://DBServerIP/myDatabaseName", sUsr, sPwd );

六、JDBC連接Oracle(classes12.jar)
Class.forName( "oracle.jdbc.driver.OracleDriver" );
cn = DriverManager.getConnection( "jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd );

七、JDBC連接ODBC
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
Connection cn = DriverManager.getConnection( "jdbc:odbc:" + sDsn, sUsr, sPwd );

注意:異常需要捕獲並處理;URL符合jdbc協議。

這些可以在網上也能找到。

創建一個Statement   

    •要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分爲以下3   種類型:   

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

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

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

    具體的實現方式:   

        Statement stmt = con.createStatement() ;   

       PreparedStatement pstmt = con.prepareStatement(sql) ;   

       CallableStatement cstmt =   con.prepareCall("{CALL demoSp(? , ?)}") ;   

 

執行SQL語句   

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

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

     2int 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) ;   

 

處理結果   

    兩種情況:   

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

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

    • ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提供了對這些   

      行中數據的訪問。   

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

     while(rs.next()){   

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

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

     }   

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

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

         }   

          }  

也可以和在一起關

          try{   

   if(rs != null){   // 關閉記錄集   

rs.close() ;   

   if(stmt != null){   // 關閉聲明   

   stmt.close() ;   

}

if(conn != null){  // 關閉連接對象   

            conn.close() ;   

 } 

 

         }catch(SQLException e){   

            e.printStackTrace() ;   

         }   

          

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章