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