1. 程式人生 > >資料庫基礎 四張圖理解資料庫之第三張 資料庫連線 JDBC 理解 多表操作(附帶相關資源)第三天

資料庫基礎 四張圖理解資料庫之第三張 資料庫連線 JDBC 理解 多表操作(附帶相關資源)第三天

JDBC

JDBC:

概述:

Java Data Base Connectivity,Java資料庫連線
    就是Java程式碼操作不同資料庫(DBMS)。

JDBC就是Java定義的用來操作不同資料庫的規範,本質就是一些介面和類。
#####介面:
Driver(驅動),connection(資料庫連線物件),statement(SQL操作物件),perparestatement(具有預編譯的SQL操作物件),resultset(獲取執行資料局的結構集)
##### 類:
drivernanager(用來管理資料庫中的所有驅動程式)

核心功能:

  1. 連線資料庫。
  2. 向資料庫傳送指令(SQL語句)。
  3. 操作資料庫返回的:結果集。
    1、如果執行時更新語句,返回值是:int
    2、如果執行的查詢語句,返回的結果集是:Resultset 型別

2、什麼是驅動?

    就是裝置之間進行通訊的橋樑。

3、JDBC的原理

提供了統一的規範就是類和介面的規範,統一了驅動。

JDBC原理圖解:

這裡寫圖片描述

4、JDBC程式碼演示:

A:建立一個數據庫。
B:在資料庫中建立一個表
C:往資料表中新增資料。
D:通過JDBC操作資料。
1、注入驅動
2、註冊驅動
3、獲取連線物件
4、根據連線物件獲取執行SQL語句的物件。
5、執行SQL語句,獲得結果集。
6、操作結果集。
7、釋放資源。

5、JDBC的API詳解之:DriverManager(類)

作用:主要用於驅動管理及獲取連線物件。

作用1:註冊驅動。

public static void registerDrtver (Driver driver)( MySQL的驅動或是Oracle的驅動); 註冊驅動的意思,
形參是誰的驅動就註冊誰。

Driver類就是MySQL資料庫提供的 驅動類
publc class com.mysql.jdbc.Driver implenents java,sql,driver(){}

記憶:
實際開發中,我們不用上述的方式註冊驅動,因為上述註冊的方式會導致驅動程式註冊兩次。

所以:我們通過反射的方式載入com。MySQL。jdbc。driver 類的位元組碼檔案,從而來自動註冊驅動。
class。forName(“com。MySQL。jdbc。driver”); 驅動的全路徑

作用2:獲取連線物件。
public static Connection getConnection(String url , string username , string password ); 獲取連線物件
url: 資料庫連線字串。

格式:
協議:子協議要操作的DBMS: // 要操作的資料的IP地址或者主機名:埠號 / 要操作的具體的資料庫

例如:
jdbc:mysql: // 127.0.0.1:3306 / bin
jdbc:mysql : localhost:3306 / bin
如果操作的是本地資料庫(DBMS),上述的寫法可以優化為:
jdbc:mysql:/// bin
username : 要操作的資料庫(DBMS)的賬號
password:要操作的資料庫(DBMS)的密碼

6、JDBC的API詳解值:Connection(介面)

作用一:獲取可以執行的SQL語句的物件。
public statement createStatement(); 獲取可以執行的SQL語句的物件。

public preparedstatement prepareStatment(string sql) 獲取可以執行SQL語句的物件。 它是createstatement的子介面。
具有預編譯功能,可以解決SQL注入攻擊問題。

作用二:可以進行事務管理。

7、JDBC的API詳解值:statement(介面)

     statement :可以操作SQL語句的物件。

作用一:執行SQL語句
public resultset executeQuery(string sql); 執行查詢語句。
public int executeUpdate(string sql); 執行更新語句。

作用二:可以執行此處理。

8、JDBC的API詳解之:resultset(介面)

resultset:執行查詢語句後的結果集物件。

public Boolean next(); 判斷結果集中是否還有資料。 類似於iterator 的hasnext()

pubic xxx getxxx(int columnIndex);根據列的編號獲取列的資訊。
public xxx getxxx (string columName);根據列的名字,獲取該列的資訊。

9、JDBC釋放資源的優化程式碼。

一張圖瞭解資料庫。