1. 程式人生 > >JDBC使用的五大步驟

JDBC使用的五大步驟

JDBC使用的五大步驟

Java開發任何資料庫應用程式都需要4個主要介面:Driver,Connection,Statement和ResultSet。這些介面定義了使用SQL訪問資料庫的一般架構。訪問資料庫的Java程式主要有5個步驟

1.載入驅動(Driver)(僅僅做一次)

2.建立連線 (Connection)

3.建立執行SQL的語句(Statement)

4.執行語句

5.獲取結果(ResultSet)

6.關閉資源

1.使用JDBC第一步:註冊驅動有三種方式:

  1. Class.forName(“com.mysql.jdbc.Driver”);

​ 推薦這樣的方式,不會對詳細的驅動類產生依賴

  1. DriverManager.registerDriver(com.mysql.jdbc.Driver);

​ 會對詳細的驅動類產生依賴

  1. System.setProperty(“jdbc.drivers”, “driver1:driver2”);

​ 儘管不會對詳細的驅動類產生依賴;但註冊不太方便。所以非常少使用

2.使用JDBC第二步:建立連線

通過Connection建立連線,Connection是一個介面類。其功能是與資料庫進行連線(會話)。

建立Connection介面類物件:

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

當中URL的格式要求為:

JDBC:子協議:子名稱//主機名:port/資料庫名?屬性名=屬性值&…

如:"jdbc:mysql://localhost:3306/test“

user即為登入資料庫的username,如root

password即為登入資料庫的密碼,為空就填””

3.使用JDBC第三步:建立執行物件

執行物件Statement負責執行SQL語句。由Connection物件產生。

Statement介面類還派生出兩個介面類PreparedStatement和CallableStatement,這兩個介面類物件為我們提供了更加強大的資料訪問功能。

建立Statement的語法為:

Statement st = conn.createStatement();

4.使用JDBC第四步:執行SQL語句

執行物件Statement提供兩個經常使用的方法來執行SQL語句。

executeQuery(Stringsql),該方法用於執行實現查詢功能的sql語句。返回型別為ResultSet(結果集)。

如:ResultSet rs =st.executeQuery(sql);

executeUpdate(Stringsql),該方法用於執行實現增、刪、改功能的sql語句,返回型別為int,即受影響的行數。

如:int flag = st.executeUpdate(sql);

5.使用JDBC第五步:處理執行結果

ResultSet物件

ResultSet物件負責儲存Statement執行後所產生的查詢結果。

結果集ResultSet是通過遊標來操作的。

遊標就是一個可控制的、能夠指向隨意一條記錄的指標。

有了這個指標我們就能輕易地指出我們要對結果集中的哪一條記錄進行改動、刪除,或者要在哪一條記錄之前插入資料。一個結果集物件中僅僅包括一個遊標。

6.使用JDBC 第六步——釋放資源

Connection物件的close方法用於關閉連線,並釋放和連線相關的資源。

舉個栗子

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
 
public class UseJdbc {
 
    public void Jdbc() {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");//載入驅動程式
            //建立連線 "jdbc:mysql://localhost/資料庫名?serverTimezone=UTC", "賬號", "密碼"
            Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/user?serverTimezone=UTC", "root", "1234");
            //建立語句
            Statement statement = connection.createStatement();
            //用executeQuery執行SQL查詢語句
            ResultSet resultSet = statement.executeQuery("select * from user");
            //獲取並輸出返回結果
            System.out.println(resultSet); 
            //關閉連線
            connection.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}