JDBC學習筆記(1)—JDBC概述

一、JDBC基本概念

JDBC(Java DataBase Connectivity,java數據庫連接)是一種用於執行SQL語句的Java API,可以爲多種關係數據庫提供統一訪問,它由一組用Java語言編寫的類和接口組成。同時,JDBC提供了一種基準,據此可以構建更高級的工具和接口,是數據庫開發人員能夠編寫數據庫應用程序。

二、JDBC用途

   主要用途有三個: 

  1. 連接數據庫
  2. 傳遞SQL語句
  3. 處理數據庫響應並且返回結果

三、JDBC架構

JDBC分爲雙層架構和三層架構。
三層架構與雙層架構不同的是引入了中間層服務。

四、JDBC重要編程接口

1.Driver接口

   Driver接口由數據庫廠家提供,作爲java開發人員,只需要使用Driver接口就可以了。在編程中要連接數據庫,必須先裝載特定廠商的數據庫驅動程序,不同的數據庫有不同的裝載方法。如:

2.Connection接口

  Connection與特定數據庫的連接(會話),在連接上下文中執行sql語句並返回結果。DriverManager.getConnection(url, user, password)方法建立在JDBC URL中定義的數據庫Connection連接上。 常用方法有:

         createStatement():創建向數據庫發送sql的statement對象。
         prepareStatement(sql) :創建向數據庫發送預編譯sql的PrepareSatement對象。
         prepareCall(sql):創建執行存儲過程的callableStatement對象。
         setAutoCommit(boolean autoCommit):設置事務是否自動提交。
         commit() :在鏈接上提交事務。
         rollback() :在此鏈接上回滾事務。

3.Statement接口

   用於執行靜態SQL語句並返回它所生成結果的對象。主要有三種Statement類:

   Statement:由createStatement創建,用於發送簡單的SQL語句(不帶參數)。
   PreparedStatement :繼承自Statement接口,由preparedStatement創建,用於發送含有一個或多個參數的SQL語句。PreparedStatement對象比Statement對象的效率更高,並且可以防止SQL注入,所以我們一般都使用PreparedStatement。
   CallableStatement:繼承自PreparedStatement接口,由方法prepareCall創建,用於調用存儲過程。

  
  常用Statement方法:

   execute(String sql):運行語句,返回是否有結果集
   executeQuery(String sql):運行select語句,返回ResultSet結果集。
   executeUpdate(String sql):運行insert/update/delete操作,返回更新的行數。
   addBatch(String sql) :把多條sql語句放到一個批處理中。
   executeBatch():向數據庫發送一批sql語句執行。

  4.ResultSet接口

  ResultSet提供檢索不同類型字段的方法,常用的有:

 getString(int index)、getString(String columnName):獲得在數據庫裏是varchar、char等類型的數據對象。
 getFloat(int index)、getFloat(String columnName):獲得在數據庫裏是Float類型的數據對象。
 getDate(int index)、getDate(String columnName):獲得在數據庫裏是Date類型的數據。
 getBoolean(int index)、getBoolean(String columnName):獲得在數據庫裏是Boolean類型的數據。
 getObject(int index)、getObject(String columnName):獲取在數據庫裏任意類型的數據。

  ResultSet還提供了對結果集進行滾動的方法:

 next():移動到下一行
 Previous():移動到前一行
 absolute(int row):移動到指定行
 beforeFirst():移動resultSet的最前面。
 afterLast() :移動到resultSet的最後面。

五、JDBC編程步驟:

  1. 加載驅動程序

     有兩種方式:
     1、Class.forName("com.mysql.jdbc.Driver");
     推薦使用這種方式,不會對具體的驅動類產生依賴。
     2、DriverManager.registerDriver(com.mysql.jdbc.Driver);會造成DriverManager中產生兩個一樣的驅動,並且會對具體的驅動類產生依賴。
    
  2. 獲得數據庫連接

    Connection conn=DriverManager.getConnection(url,user,password);
    

    參數詳解:

     url:用於表示數據庫的位置,通過url地址告訴JDBC程序連接哪個個數據庫。                                      寫法爲:jdbc://mysql://localhost:3306/DBname?參數名:參數值;
     jdbc爲協議;mysql爲子協議;localhost:主機名;3306爲mysql默認端口;DBname爲數據庫名稱。
    
      其它參數有:useUnicode=true&characterEncoding=utf-8&useSSL=false;
      user:爲用戶名
      password:爲密碼
    
  3. 創建Statement或PreparedStatement對象

    conn.createStatement();
    conn.prepareStatement(sql);
    
  4. 關閉數據庫連接

            關閉數據庫連接順序依次是:
                                   ResultSet->Statement/PrepareStatement->Connection
            爲什麼要關閉數據庫連接原因:
                                防止內存溢出。因爲數據量大的情況下,程序對內存的需求會增加。
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章