您好,登錄后才能下訂單哦!
好程序員
解讀
JDBC
是什么,
JDBC
簡介
- JDBC
(
Java DataBase Connectivity,java
數(shù)據(jù)庫連接)是一種用于執(zhí)行
SQL
語句的
Java API
,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用
Java
語言編寫的類和接口組成。
JDBC
提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫應(yīng)用程序
- Java
具有堅固、安全、易于使用、易于理解和可從網(wǎng)絡(luò)上自動下載等特性,是編寫數(shù)據(jù)庫應(yīng)用程序的杰出語言。所需要的只是
Java
應(yīng)用程序與各種不同數(shù)據(jù)庫之間進行對話的方法。
- JDBC
可以在各種平臺上使用
Java
,如
Windows
,
Mac OS
和各種版本的
UNIX
。
- JDBC
庫包括通常與數(shù)據(jù)庫使用相關(guān)的下面提到的每個任務(wù)的
API
。
JDBC
使用步驟
-
連接數(shù)據(jù)庫。
-
創(chuàng)建
SQL
或
MySQL
語句。
-
在數(shù)據(jù)庫中執(zhí)行
SQL
或
MySQL
查詢。
-
查看和修改生成的記錄。
JDBC
核心組件
* DriverManager
:
*
此類管理數(shù)據(jù)庫驅(qū)動程序列表。使用通信子協(xié)議將來自
java
應(yīng)用程序的連接請求與適當(dāng)?shù)臄?shù)據(jù)庫驅(qū)動程序匹配。
- Driver
:
*
此接口處理與數(shù)據(jù)庫服務(wù)器的通信,我們很少會直接與
Driver
對象進行交互。而是使用
DriverManager
對象來管理這種類型的對象。
* Connection
:
*
該界面具有用于聯(lián)系數(shù)據(jù)庫的所有方法。連接對象表示通信上下文,即,與數(shù)據(jù)庫的所有通信僅通過連接對象。
* Statement
:
*
使用從此接口創(chuàng)建的對象將
SQL
語句提交到數(shù)據(jù)庫。除了執(zhí)行存儲過程之外,一些派生接口還接受參數(shù)。
* ResultSet
:
*
在使用
Statement
對象執(zhí)行
SQL
查詢后,這些對象保存從數(shù)據(jù)庫檢索的數(shù)據(jù)。它作為一個迭代器,允許我們移動其數(shù)據(jù)。
* SQLException
:
*
此類處理數(shù)據(jù)庫應(yīng)用程序中發(fā)生的任何錯誤
JDBC
案例代碼
package com.qianfeng.demos;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Demo01 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// 1.加載驅(qū)動
// DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/students?useSSL=false";
String user = "root";
String password = "root";
// 2.獲取java和數(shù)據(jù)庫的鏈接
Connection conn = DriverManager.getConnection(url, user, password);
// 3.獲取statement對象,執(zhí)行SQL語句
Statement stmt = conn.createStatement();
// 4.編寫SQL語句
String sql = "select * from shuihu";
// 5.執(zhí)行sql語句,獲取返回結(jié)果
ResultSet resultSet = stmt.executeQuery(sql);
// 6.編寫循環(huán),不斷判斷和獲取resultset中的內(nèi)容
while(resultSet.next()) {
System.out.println(resultSet.getObject(1)
+ "\t" + resultSet.getObject(2)
+ "\t" + resultSet.getObject(3)
+ "\t" + resultSet.getObject(4)
+ "\t" + resultSet.getObject(5)
+ "\t" + resultSet.getObject(6));
}
// 7.釋放資源
resultSet.close();
stmt.close();
conn.close();
}
}
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。