一小時讓你徹底搞懂JDBC的執行過程

一小時讓你徹底搞懂JDBC的執行過程

JDBC 是什麼?

JDBC(Java Data Base Connectivity, Java 資料庫連線)是一種用於執行 SQL 語句的 Java API,是 Java 應用連線各種關係型資料庫的基本的介面。可以為多種關係資料庫提供統一訪問。

JDBC有什麼作用?

簡單地說,JDBC 可做三件事:與資料庫建立連線、傳送 操作資料庫的語句並處理結果。再簡單具體就是完成了對資料庫資料的增刪改查等操作。

JDBC執行過程

一:引包

在執行JDBC前,首先我們要匯入MySQL jar包

一小時讓你徹底搞懂JDBC的執行過程

建立資料夾lib,並匯入該包

一小時讓你徹底搞懂JDBC的執行過程

二:載入驅動

Class。forName(“com。mysql。jdbc。Driver”);

三:建立連線

connection = DriverManager。getConnection(“jdbc:mysql://127。0。0。1:3306/test”, “root”, “root”);

四:建立語句

statement = connection。createStatement();

五:執行語句

resultSet= statement。executeQuery(sql);

六:處理結果

rowMapper。rowMapper(resultSet);

七:釋放資源

finally { if (resultSet!=null) { try { resultSet。close(); } catch (SQLException e) { e。printStackTrace(); } } if (statement!=null) { try { statement。close(); } catch (SQLException e) { e。printStackTrace(); } } if (connection!=null) { try { connection。close(); } catch (SQLException e) { e。printStackTrace(); } }

JDBS的完整程式碼為

package jdbc; import java。sql。Connection;import java。sql。DriverManager;import java。sql。ResultSet;import java。sql。SQLException;import java。sql。Statement; interface IRowMapper{ void rowMapper(ResultSet resultSet);} public class Test { public static void select(String sql,IRowMapper rowMapper) { Connection connection = null; Statement statement = null; ResultSet resultSet= null; try { Class。forName(“com。mysql。jdbc。Driver”);//d、載入驅動類 connection = DriverManager。getConnection(“jdbc:mysql://127。0。0。1:3306/test”, “root”, “root”);//e、獲取連線 statement = connection。createStatement();//f、建立語句 resultSet= statement。executeQuery(sql);//g、執行語句 rowMapper。rowMapper(resultSet);//h、處理結果,以為rowMapper變數存的是IRowMapper介面實現類物件,所以程式執行時呼叫該物件中的rowMapper方法 } catch (Exception e) { e。printStackTrace(); }finally {//k、釋放資源 if (resultSet!=null) { try { resultSet。close(); } catch (SQLException e) { e。printStackTrace(); } } if (statement!=null) { try { statement。close(); } catch (SQLException e) { e。printStackTrace(); } } if (connection!=null) { try { connection。close(); } catch (SQLException e) { e。printStackTrace(); } } } }//l select方法執行完畢,執行過程回到main方法 public static void main(String[] args) { class RowMapper implements IRowMapper{ @Override public void rowMapper(ResultSet resultSet) { try { while(resultSet。next()) {//i 遍歷結果 String id = resultSet。getString(“id”); String address = resultSet。getString(“address”); System。out。println(id); System。out。println(address); } } catch (Exception e) { e。printStackTrace(); } }//j 內部類中rowMapper執行完畢,則執行流程再次回到select方法 } String sql = “select * from student”;//a、sql存的是字串地址 IRowMapper rowMapper = new RowMapper();//b、上轉型物件,rowMapper存的是物件地址 select(sql,rowMapper);//c、開始呼叫select方法,執行過程切換到select方法,傳入sql語句字串地址,和IRowMapper實現類建立的物件的地址 }//m main方法結束,整個程式結束 }

感謝閱讀,如果覺得本文對你有幫助,記得點個贊再走哦~