黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 JDBC連接數(shù)據(jù)庫的代碼

JDBC連接數(shù)據(jù)庫的代碼

更新時(shí)間:2022-06-10 09:58:20 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2156次

Java作為最杰出的編程語言之一,為數(shù)據(jù)庫提供了廣泛的支持。它幫助我們通過JDBC(Java Database Connectivity)連接各種數(shù)據(jù)庫。在本文中,動(dòng)力節(jié)點(diǎn)小編將告訴您如何使用 JDBC 連接數(shù)據(jù)庫并執(zhí)行查詢。

本文涵蓋以下主題:

JDBC簡介

通用 JDBC 組件

創(chuàng)建 JDBC 應(yīng)用程序的步驟

JDBC 連接

JDBC簡介

JDBC 是標(biāo)準(zhǔn) Java API 之一,用于在Java 編程語言和廣泛的數(shù)據(jù)庫之間實(shí)現(xiàn)與數(shù)據(jù)庫無關(guān)的連接。此 API 允許您使用結(jié)構(gòu)化查詢語言( SQL ) 對訪問請求語句進(jìn)行編碼。這主要涉及打開連接、創(chuàng)建 SQL 數(shù)據(jù)庫、執(zhí)行 SQL 查詢?nèi)缓蟮竭_(dá)輸出。

JDBC API 可用于訪問存儲(chǔ)在任何關(guān)系數(shù)據(jù)庫中的表格數(shù)據(jù)。有了這個(gè),您可以更新、保存、獲取和刪除數(shù)據(jù)庫中的數(shù)據(jù)。它類似于 Microsoft 提供的開放式數(shù)據(jù)庫連接 (ODBC)。

為了更好地理解 JDBC 的工作原理,讓我們深入探討該主題并了解 Java 數(shù)據(jù)庫連接背后的架構(gòu)。

通用 JDBC 組件

JDBC API 提供以下接口和類

DriverManager:這主要用于管理數(shù)據(jù)庫驅(qū)動(dòng)程序列表。識別某個(gè)子協(xié)議的驅(qū)動(dòng)程序?qū)⒂糜诮?shù)據(jù)庫連接。

驅(qū)動(dòng)程序是處理與數(shù)據(jù)庫服務(wù)器通信的接口。它還抽象了細(xì)節(jié)在使用 Driver 對象時(shí)關(guān)聯(lián)的對象。

Connection 是一個(gè)接口,它包含連接到數(shù)據(jù)庫所需的所有方法。連接對象處理數(shù)據(jù)庫的通信功能。語境。

現(xiàn)在讓我們繼續(xù)下一個(gè)主題,看看創(chuàng)建 JDBC 應(yīng)用程序所需的步驟。

創(chuàng)建 JDBC 應(yīng)用程序的步驟

為了創(chuàng)建 JDBC 應(yīng)用程序,您需要執(zhí)行幾個(gè)步驟。讓我們看看它們是什么。

導(dǎo)入包: 您需要包含所有包含數(shù)據(jù)庫編程所需的 JDBC 類的包。大多數(shù)情況下,使用import java.sql.* 就足夠了。

注冊 JDBC 驅(qū)動(dòng)程序: 這里你必須初始化一個(gè)驅(qū)動(dòng)程序,以便你可以打開與數(shù)據(jù)庫的通信通道。

打開連接: 這里可以使用 getConnection() 方法創(chuàng)建一個(gè) Connection 對象,該對象代表與數(shù)據(jù)庫的物理連接。

執(zhí)行查詢: 這實(shí)際上需要使用 Statement 類型的對象來構(gòu)建 SQL 語句并將其提交到數(shù)據(jù)庫。

從結(jié)果集中提取數(shù)據(jù): 建議您使用適當(dāng)?shù)膅etXXX() 方法從結(jié)果集中提取數(shù)據(jù)。

清理環(huán)境:在這里,與依賴 JVM 的垃圾收集相比,顯式關(guān)閉所有數(shù)據(jù)庫資源至關(guān)重要。

現(xiàn)在您已經(jīng)看到了創(chuàng)建 JDBC 應(yīng)用程序所涉及的各個(gè)步驟,讓我們看一個(gè)創(chuàng)建數(shù)據(jù)庫和建立連接的示例代碼。

package Edureka;
import java.sql.*;
import java.sql.DriverManager;
public class Example {
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/emp";
// Database credentials
static final String USER = "root";
static final String PASS = "";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
//STEP 2: Register JDBC driver
Class.forName("com.mysql.cj.jdbc.Driver");
//STEP 3: Open a connection
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL,"root","");
//STEP 4: Execute a query
System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql;
sql = "SELECT id, first, last, age FROM Employees";
ResultSet rs = stmt.executeQuery(sql);
//STEP 5: Extract data from result set
while(rs.next()){
//Retrieve by column name
int id = rs.getInt("id");
int age = rs.getInt("age");
String first = rs.getString("first");
String last = rs.getString("last");
//Display values
System.out.print("ID: " + id);
System.out.print(", Age: " + age);
System.out.print(", First: " + first);
System.out.println(", Last: " + last);
}
//STEP 6: Clean-up environment
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
//Handle errors for JDBC
se.printStackTrace();
}catch(Exception e){
//Handle errors for Class.forName
e.printStackTrace();
}finally{
//finally block used to close resources
try{
if(stmt!=null)
stmt.close()
}catch(SQLException se2){
}// nothing can be done
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}//end finally try
}//end try
System.out.println("Goodbye!");
}//end main
} // end Example

上面的代碼在您的 localhost 數(shù)據(jù)庫中創(chuàng)建了一個(gè)表。要在創(chuàng)建的數(shù)據(jù)庫中插入值,您可以參考以下代碼。小編將只為第 4 步編寫代碼。其余代碼與上面相同。

//STEP 4: Execute a query
System.out.println("Creating table in given database...");
stmt = conn.createStatement();
String sql = "CREATE TABLE EMPLOYEES " +
"(id INTEGER not NULL, " +
" first VARCHAR(255), " +
" last VARCHAR(255), " +
" age INTEGER, " +
" PRIMARY KEY ( id ))";
stmt.executeUpdate(sql);
System.out.println("Created table in given database...");
System.out.println("Inserting records into the table...");
stmt =conn.createStatement();
String sql ="INSERT INTO Employees VALUES (100, 'Kriss', 'Kurian', 18)";
stmt.executeUpdate(sql);
sql = "INSERT INTO Employees VALUES (101, 'Enrique', 'John', 25)";
stmt.executeUpdate(sql);
sql= "INSERT INTO Employees (102, 'Taylor', 'Swift', 30)";
stmt.executeUpdate(sql);
sql= "INSERT INTO Employees VALUES(103, 'Linkin', 'Park', 28)";
stmt.executeUpdate(sql);
System.out.println("Inserted records into the table...");

因此,這就是您可以建立與數(shù)據(jù)庫的連接并在表中插入值的方式。現(xiàn)在讓我們進(jìn)一步了解各種 JDBC 驅(qū)動(dòng)程序類型。

JDBC 驅(qū)動(dòng)程序類型

JDBC 驅(qū)動(dòng)程序用于實(shí)現(xiàn) JDBC API 中定義的接口,用于與數(shù)據(jù)庫服務(wù)器進(jìn)行交互。本質(zhì)上, JDBC 驅(qū)動(dòng)程序做了三件事,它們?nèi)缦拢?. 建立與數(shù)據(jù)源的連接。2. 它將查詢和更新語句發(fā)送到數(shù)據(jù)源。3. 最后,它處理結(jié)果。

例如,JDBC 驅(qū)動(dòng)程序通過發(fā)送SQL 或數(shù)據(jù)庫命令幫助您打開數(shù)據(jù)庫連接以與之交互。如果您想了解更多關(guān)于 JDBC Driver 的類型,可以參考這篇關(guān)于JDBC Drivers的文章。

現(xiàn)在讓我們進(jìn)一步了解 JDBC 連接。

JDBC 連接

導(dǎo)入 JDBC 包: 將 導(dǎo)入 語句添加到您的Java 程序以在您的 Java 代碼中導(dǎo)入所需的類。

注冊 JDBC 驅(qū)動(dòng)程序:在這一步中,JVM將所需的驅(qū)動(dòng)程序?qū)崿F(xiàn)加載到內(nèi)存中,以便它可以滿足 JDBC 請求。注冊驅(qū)動(dòng)程序有兩種方法。

注冊驅(qū)動(dòng)程序最合適的方法是使用Java的forName()方法將驅(qū)動(dòng)程序的類文件動(dòng)態(tài)加載到內(nèi)存中,它會(huì)自動(dòng)注冊它。此方法適用,因?yàn)樗试S您使驅(qū)動(dòng)程序注冊可配置和可移植。看看下面的代碼:

try {
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException ex) 
System.out.println("Error: unable to load driver class!");
System.exit(1);
}

可以用來注冊驅(qū)動(dòng)程序的第二種方法是使用靜態(tài) registerDriver()方法。

try {
Driver myDriver = new oracle.jdbc.driver.OracleDriver();
DriverManager.registerDriver( myDriver );
}
catch(ClassNotFoundException ex)
{
System.out.println("Error: unable to load driver class!");
System.exit(1);
}

如果您使用的是不兼容 JDK 的 JVM,例如 Microsoft 提供的 JVM,您應(yīng)該使用 registerDriver()方法。這里每個(gè)表單都需要一個(gè)數(shù)據(jù)庫 URL。

數(shù)據(jù)庫 URL 公式: URL 公式對于創(chuàng)建格式正確的地址是必要的,該地址指向您要連接的數(shù)據(jù)庫。加載驅(qū)動(dòng)程序后,您可以使用DriverManager.getConnection() 方法建立連接。DriverManager.getConnection() 方法是 -

獲取連接(字符串網(wǎng)址)

getConnection(字符串 url,屬性道具)

getConnection(字符串 url, 字符串用戶, 字符串密碼)

創(chuàng)建連接對象

您可以使用數(shù)據(jù)庫 URL、用戶名和密碼以及使用屬性對象來創(chuàng)建連接。

關(guān)

最后,要結(jié)束數(shù)據(jù)庫會(huì)話,您需要關(guān)閉所有數(shù)據(jù)庫連接。但是,如果您忘記了,Java 的垃圾收集器會(huì)在清理陳舊對象時(shí)關(guān)閉連接。

conn.close(); // Used to close the connection

通過上述,相信大家對JDBC連接數(shù)據(jù)庫的代碼已經(jīng)有所了解,大家如果想了解更多相關(guān)知識,不妨來關(guān)注一下動(dòng)力節(jié)點(diǎn)的JDBC視頻教程,里面還有更豐富的知識等著大家去學(xué)習(xí),希望對大家能夠有所幫助哦。

提交申請后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 日韩亚洲一区中文字幕在线 | 宅男在线影院 | 久久青草18免费观看网站 | 五月天狠狠干 | 国外性xxxnxxxf视频 | 亚洲欧美日韩在线不卡 | 欧美日韩国产一区二区三区播放 | 成 人在线观看视频网站 | 久青草视频免费视频播放线路1 | 狠狠色综合网站 | 老司机日日摸夜夜摸精品影院 | 糟蹋小少妇17p | 日本国产一区二区三区 | 国产一卡2卡3卡四卡精品网站 | 亚洲人成网国产最新在线 | 免费在线观看黄网站 | 在线播放人成午夜免费视频 | 免费乱人伦 | 免费视频精品一区二区 | 久久99国产视频 | 久久亚洲综合 | 怡红院免费全部视频在线 | 国产精品久久久久久福利漫画 | 欧美中文在线观看 | 中文字幕日本一区波多野不卡 | 18岁免费网站 | 五月欧美 | 欧美性另类69xxxx极品 | 日本高清免费h色视频在线观看 | 小明网址 | 精品国产免费观看一区高清 | 中文字幕在线视频观看 | 久久99精品九九九久久婷婷 | 欧美人成片免费看视频不卡 | 国产成人综合95精品视频免费 | 亚洲人影院 | 全色黄大色大片免费久久老太 | 激情五月网站 | 天天操夜夜嗨 | videosex久久麻豆| 欧美日韩亚洲另类 |