1. 程式人生 > >JDBC簡介及JDBC編寫步驟及常見API

JDBC簡介及JDBC編寫步驟及常見API

JDBC : Java Database Connectivity,Java資料庫連線。SUN公司為了簡化、統一對資料庫的操作,定義了一套Java操作資料庫的規範,稱之為JDBC。

這裡寫圖片描述

JDBC就像一座橋,連線Java程式與資料庫 。

JDBC的簡介

這裡寫圖片描述

驅動實際上就是現在的程式能夠跟目標程式進行通訊的一個介面規範,驅動中包含介面實現。

進行JDBC開發
1、學習JDBC介面規範 java.sql javax.sql 介面如何使用
2、在工程中匯入 相應資料庫驅動(JDBC實現)

核心JDBC介面規範
DriverManager 驅動管理器
Connection 連線
Statement 操作狀態 (子介面 PreparedStatement、CallableStatement)


ResultSet 結果集

這裡寫圖片描述

第一個JDBC程式
1、搭建資料庫環境
在執行中通過services.msc啟動MySQL

這裡寫圖片描述

再通過cmd連線mysql

這裡寫圖片描述

建立資料庫
切換資料庫
建立資料表:

向資料表插入資料

通過查詢語句進行查詢:

這裡寫圖片描述

2、建立web工程 megustas,匯入資料庫驅動(去各個資料庫的官網下載),將對應的jar包複製到WebContent\WEB-INF\lib目錄下:

這裡寫圖片描述

3、新建Java程式,使用JDBC介面規範連線資料庫

注意:在實際開發中並不推薦採用registerDriver方法註冊驅動,一般使用具體原因會在後續JDBC API中進行詳細介紹。

結果集ResultSet可以通過下圖進一步認識:

這裡寫圖片描述

sql注入

這裡寫圖片描述

可以使用PreparedStatement代替Statement,通過預編譯來防止這種sql注入。

小結

一、搭建實驗環境 :
1、在mysql中建立一個庫,並建立user表和插入表的資料。
2、新建一個Java工程,並匯入資料驅動。
二、編寫程式,在程式中載入資料庫驅動
DriverManager. registerDriver(Driver driver)
三、建立連線(Connection)
Connection conn=DriverManager.getConnection(url,user,pass);


四、建立用於向資料庫傳送SQL的Statement物件,併發送sql(向資料庫傳送的是sql語句,托福考試評分標準得到的回覆是ResultSet結果集
Statement st=conn.createStatement();
ResultSet rs=st.executeQuery(sql);
五、從代表結果集的ResultSet中取出資料,列印到命令列視窗
六、斷開與資料庫的連線,並釋放相關資源

  • 通過DriverManager載入驅動程式driver;
  • 通過DriverManager類獲得表示資料庫連線的Connection類物件;
  • 通過Connection物件繫結要執行的語句,生成Statement類物件;
  • 執行SQL語句,接收執行結果集ResultSet;
  • 可選的對結果集ResultSet類物件的處理;
  • 必要的關閉ResultSet、Statement和Connection

圖解如下:

這裡寫圖片描述

對於上圖中的資料庫URL需要注意:
連線任何資料庫 編寫JDBCURL

這裡寫圖片描述

Mysql URL : jdbc:mysql://localhost:3306/day13 通過?傳遞引數
Oracle寫法:jdbc:oracle:thin:@localhost:1521:sid

常見API

1、Connection介面 —- JDBC連線表示介面
* Connection介面一個物件 代表 一個數據庫 連線
作用兩點:
1) 獲得操作資料庫Statement物件
—– Statement 獲得普通操作狀態物件
—– PreparedStatement(是Statement子介面) 預編譯狀態物件
—— CallableStatement(是PreparedStatement子介面) 操作資料庫內部儲存過程的
* Statement物件可以向資料庫傳送sql語句,獲得ResultSet結果集

2) 進行事務控制
開啟一個事務
提交一個事務
回滾一個事務

2、Statement介面 —- 代表一個操作狀態
作用:操作資料庫SQL語句、呼叫儲存過程
:用於向資料傳送查詢語句。select語句,返回值ResultSet 結果集
:用於向資料庫傳送insert、update或delete語句 返回值int 受影響行數
:用於向資料庫傳送任意sql語句 — 建立資料庫 建立資料表,增刪改查 — 返回值boolean
* sql結果是ResultSet 返回true — 否則false

批處理 —- 一次執行多條sql
:把多條sql語句放到一個批處理中。
:向資料庫傳送一批sql語句執行。

3、ResultSet