天天看點

2019面試題:談談對JDBC的了解(最簡潔!)

JDBC相關簡介

1.什麼是 JDBC ?

JDBC(Java Data Base Connectivity,java資料庫連接配接)是一種用于執行SQL語句的Java API(Application Programming Interface),可以為多種關系資料庫提供統一通路,它由一組用Java語言編寫的類和接口組成。

簡單說:

它就是Java與資料庫的連接配接的橋梁或者插件,用Java代碼就能操作資料庫的增删改查、存儲過程、事務等。

2019面試題:談談對JDBC的了解(最簡潔!)

2.JDBC 有什麼用 ?

我們用JAVA就能連接配接到資料庫;建立SQL或者MYSQL語句;執行SQL或MYSQL的查詢資料庫;檢視和修改結果記錄。

3.JDBC API 介紹及接口

JDBC API主要做三件事:與資料庫建立連接配接,發送SQL語句,處理結果。

提供的接口包括:

JAVA API:提供對JDBC的管理連結;

JAVA Driver API:支援JDBC管理到驅動器連接配接。

DriverManager:這個類管理資料庫驅動程式的清單,檢視加載的驅動是否符合JAVA Driver API的規範。 裝載驅動程式,并為建立新的資料庫連接配接提供支援。

Connection:與資料庫中的所有的通信是通過唯一的連接配接對象。負責連接配接資料庫并擔任傳送資料的任務。

Statement:把建立的SQL對象,轉而存儲到資料庫當中。由Connection産生,負責執行SQL語句。

ResultSet:它是一個疊代器,用于檢索查詢資料。負責儲存和處理Statement中心執行後所産生的查詢結果。           

複制

DriverManager©, 管理驅動

Connection(I), 資料庫連接配接

Statement(I), SQL 語句發送器

ResultSet(I), 結果集

4.采用JDBC通路資料庫的基本步驟:

a) 注冊驅動

b) 建立資料庫連接配接(Connection)

c) 準備 SQL 語句

d) 擷取 SQL 語句發送器(Statement)

e) 發送并執行 SQL 語句, 得到結果集(ResultSet)

f) 處理結果集

g) 關閉資源(ResultSet, Statement, Connection)

5.執行查詢操作

import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* jdbc連接配接資料庫, 執行查詢操作
**
@author Administrator
**
/
public class TestJdbcQuery {
public static void main(String[] args) throws
ClassNotFoundException, SQLException {
// [1] 聲明連接配接參數
String url = "jdbc:oracle:thin:@localhost:1521:orcl";// 資料
庫的路徑
String user = "scott"; // 使用者名
String password = "tiger"; // 密碼
// [2] 注冊驅動
Class.forName("oracle.jdbc.driver.OracleDriver");
// [3] 建立資料庫連接配接, 需要用到驅動管理器
Connection conn = DriverManager.getConnection(url, user,
password);
// [4] 定義SQL語句
String sql = "select empno, ename, hiredate from emp";
// [5] 建立sql發送器, 是由連接配接對象建立的
Statement stmt = conn.createStatement();
// [6] 發送并執行sql語句, 得到結果集
ResultSet rs = stmt.executeQuery(sql);
// [7] 處理結果集
while(rs.next()) {
// 取出該行的每一列資料, 依據資料類型取值
int empno = rs.getInt(1);// 資料庫列索引從1開始
String ename = rs.getString("ename");
Date hiredate = rs.getDate(3);
System.out.println(empno + "\t" + ename + "\t" +
hiredate.toLocaleString());
}
// [8] 關閉資源, 先開的後關
rs.close();
stmt.close();
conn.close();
}
}           

複制