Java Web編程的主要組件技術——JDBC

來源:互聯網
上載者:User

標籤:

參考書籍:《J2EE開源編程精要15講》

 

JDBC(Java DataBase Connectivity)是Java Web應用程式開發的最主要API之一。當向資料庫查詢資料時,Java應用程式先調用JDBC API,然後JDBC API把查詢語句提交給JDBC磁碟機,JDBC磁碟機把查詢語句轉化為特定資料庫理解的形式,JDBC磁碟機檢索SQL查詢的結果,並轉化為Java應用程式使用的等價JDBC API類和介面。

 

JDBC磁碟機

  JDBC軟體包本身不能連結任何資料庫,它只是一個API架構,需要資料庫驅動程式以及其他軟體包提供實施方法。

  JDBC資料庫驅動程式分為以下幾類:

  • JDBC-ODBC橋接磁碟機:把JDBC API翻譯成ODBC API,適用MS Access、MS SQL Server等資料庫
  • 部分本機API的Java磁碟機:有些資料庫,如DB2和Informix,包含資料庫廠商供應的JDBC磁碟機,包含可JDBC API可直接調用的類
  • 純Java磁碟機:通過IP/TCP把Java應用程式或applet連結到資料庫

  常見資料庫磁碟機和資料庫URL(本地URL)

資料庫名 資料庫磁碟機 資料庫URL(本地)
Oracle9i  oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@localhost:1521:dbName
SQL Server 2000 com.microsoft.jdbc.sqlserver.SQLServerDriver jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ddbName;
MySQL com.mysql.jdbc.Driver jdbc:mysql://localhost/dbName
JDBC-ODBC sun.jdbc.odbc.JdbcOdbcDriver jdbc:odbc:datasourceName

JDBC API的核心組件

  • DriverManager類:用於跟蹤可用的JDBC驅動程式並產生資料庫連接
  • Connection介面:用於取得資料庫資訊,產生資料庫語句,管理資料庫事務
  • ResultSet介面:訪問SQL查詢返回的資料。next()以此定位每一行資料,用相應的get方法讀取資料
  • Statement介面:提供在基層串連上啟動並執行SQL語句,產生結果集。有2個子介面,PreparedStatement和CallableStatement   

    PreparedStatement 提供可以與查詢資訊一起先行編譯的一種語句類型

  CallableStatement繼承自PreparedStatement ,用來封裝資料庫中預存程序的執行

用JDBC查詢資料庫

  • 裝載磁碟機
  • 串連資料庫
  • 查詢資料庫  

  裝載磁碟機

    調用Class類的forName()方法裝入資料庫特定的磁碟機,如:裝載MySQL的磁碟機

      Class.forName("com.mysql.jdbc.Driver");

  串連資料庫

    先從DriverManager類產生Connection對象,如

      String url="jdbc:mysql://localhost/mydatabase";

      Connection con=DriverManager.getConnection(url,"Bill","123");

      本地MySQL資料庫mydatabase,使用者名稱為Bill,密碼為123

  查詢資料庫

    1) Statement對象:把簡單查詢語句發送到資料庫

      executeQuery()方法執行簡單的選擇(SELECT)查詢,返回ResultSet對象

      executeUpdate()方法執行SQL的INSERT、UPDATE或DELETE語句,返回int值,給出收影響的行數

      如:

        Statement st=con.createStatement();

        ResultSet rs=st.executeQuery("select * from students");

    2) PreparedStatement對象:允許執行參數化的查詢

      如:

        String sql="select * from students where stuID=?";

        PreparedStatement ps=con.prepareStatement(sql);

        ps.setString(1,"56789");//設定第一個問號處參數值為56789,類型為String

        ResultSet rs=ps.executeQuery();

    樣本:

 1 import java.sql.*; 2  3 class Jdbc Test{ 4     public static void main(String args[]){ 5         try{ 6             Class.forName("com.mysql.jdbc.Driver"); 7             String url="jdbc:mysql://localhost/mydatabase"; 8             Connection con=DriverManager.getConnection(url,"Bill","123"); 9             String sql="select * from students where stuID=?";10             PreparedStatement ps=con.prepareStatement(sql);11             ps.setString(1,"56789");12             ResultSet rs=ps.executeQuery();13             while(rs.next()){14                 String name=rs.getString("student_name");15             }16             rs.close();17             con.close();18         }catch(SQLException e){19             e.printStackTrace();20         }21     }22 }
View Code

 

    

  

 

Java Web編程的主要組件技術——JDBC

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.