常寧seo外包哈爾濱網(wǎng)絡(luò)seo公司
Hi i,m JinXiang
? 前言 ?
本篇文章主要介紹JDBC概述(什么是JDBC?JDBC的原理、Mysql和Sql Server入門JDBC操作)簡(jiǎn)單知識(shí)以及部分理論知識(shí)
🍉歡迎點(diǎn)贊?👍?收藏??留言評(píng)論?📝私信必回喲😁
🍉博主收將持續(xù)更新學(xué)習(xí)記錄獲,友友們有任何問題可以在評(píng)論區(qū)留言
目錄
?什么是JDBC?
?為什么要使用JDBC
🍧使用JDBC有以下幾個(gè)主要原因:
🍧使用JDBC的好處:
?JDBC的原理?
?Mysql和sql server入門JDBC操作
🍧1、Mysql的JDBC操作
🍧2、Sql Server的JDBC操作
?什么是JDBC?
JDBC是Java Database Connectivity的縮寫
是一種用于Java程序訪問關(guān)系型數(shù)據(jù)庫的API(應(yīng)用程序接口)。
它允許Java程序員使用標(biāo)準(zhǔn)的SQL語句來訪問和操作關(guān)系型數(shù)據(jù)庫。JDBC提供了一種標(biāo)準(zhǔn)的方式來連接到不同數(shù)據(jù)庫的驅(qū)動(dòng)程序,并且是Java EE平臺(tái)上進(jìn)行數(shù)據(jù)訪問的基礎(chǔ)。它提供了許多接口和類,使Java應(yīng)用程序可以通過它們來訪問和管理關(guān)系型數(shù)據(jù)庫。
?為什么要使用JDBC
🍧使用JDBC有以下幾個(gè)主要原因:
1. Java語言的跨平臺(tái)性:JDBC可以在各種操作系統(tǒng)和計(jì)算機(jī)體系結(jié)構(gòu)上運(yùn)行,這使得使用Java開發(fā)的應(yīng)用程序可以方便地與不同類型的數(shù)據(jù)庫進(jìn)行交互。
2. 標(biāo)準(zhǔn)化:JDBC是一個(gè)標(biāo)準(zhǔn)化的API,提供了一致的訪問關(guān)系數(shù)據(jù)庫的方法,使得不同的JDBC驅(qū)動(dòng)程序可以實(shí)現(xiàn)相同的接口。這方便了Java開發(fā)人員在不同的關(guān)系型數(shù)據(jù)庫之間切換。
3. 安全性:使用JDBC可以使數(shù)據(jù)訪問更加安全。通過JDBC API訪問數(shù)據(jù)庫,可以避免直接在代碼中包含SQL語句,從而防止SQL注入攻擊。
4. 性能:JDBC可以提供高效的數(shù)據(jù)訪問,因?yàn)樗试SJava程序員使用原生SQL語言來訪問數(shù)據(jù)庫,而且JDBC驅(qū)動(dòng)程序可以優(yōu)化SQL語句的執(zhí)行。
綜上所述,JDBC是Java開發(fā)人員進(jìn)行關(guān)系型數(shù)據(jù)庫操作的重要工具,它提供了一種標(biāo)準(zhǔn)化的方式來連接到不同數(shù)據(jù)庫的驅(qū)動(dòng)程序,并且可以保證安全、跨平臺(tái)和高效的數(shù)據(jù)訪問。
🍧使用JDBC的好處:
1. 簡(jiǎn)化了Java應(yīng)用程序與各種數(shù)據(jù)庫之間的連接和數(shù)據(jù)交互,使Java應(yīng)用程序可以與不同類型的數(shù)據(jù)庫通信。
2. 通過JDBC,開發(fā)人員能夠使用標(biāo)準(zhǔn)SQL語句來執(zhí)行數(shù)據(jù)庫查詢,修改和更新等操作,而無需了解特定數(shù)據(jù)庫的API。
3. 可以使用JDBC提供的API來保證數(shù)據(jù)的完整性和安全性,并提高數(shù)據(jù)訪問的效率。
4. JDBC允許開發(fā)人員使用Java語言來編寫數(shù)據(jù)庫驅(qū)動(dòng)程序,從而提供了一個(gè)靈活的方式來訪問數(shù)據(jù)庫。
5. JDBC提供了一種標(biāo)準(zhǔn)的方式來訪問和管理關(guān)系型數(shù)據(jù)庫,這使得Java EE平臺(tái)上對(duì)數(shù)據(jù)進(jìn)行管理更加容易和可靠。
?JDBC的原理?
JDBC(Java Database Connectivity)是Java語言訪問關(guān)系型數(shù)據(jù)庫的標(biāo)準(zhǔn)API。它的原理如下:
1. 加載數(shù)據(jù)庫驅(qū)動(dòng):在Java應(yīng)用程序中,首先需要加載適當(dāng)?shù)臄?shù)據(jù)庫驅(qū)動(dòng)程序。
2. 連接數(shù)據(jù)庫:使用Java程序中的getConnection()方法與數(shù)據(jù)庫建立連接。
3. 創(chuàng)建操作對(duì)象:使用Java程序中的Statement對(duì)象或者PreparedStatement對(duì)象來執(zhí)行SQL語句。
4. 執(zhí)行SQL語句:使用Statement對(duì)象或者PreparedStatement對(duì)象來執(zhí)行SQL語句,在執(zhí)行SQL語句之前,需要對(duì)SQL語句進(jìn)行預(yù)編譯。
5. 處理查詢結(jié)果:使用ResultSet對(duì)象來處理從數(shù)據(jù)庫返回的查詢結(jié)果。
6. 釋放資源:使用Java程序中的close()方法釋放資源(ResultSet對(duì)象、Statement對(duì)象、Connection對(duì)象)。
JDBC的執(zhí)行過程是通過Java語言的標(biāo)準(zhǔn)接口實(shí)現(xiàn)的,具有跨平臺(tái)的優(yōu)點(diǎn)。同時(shí),JDBC也支持連接池和事務(wù)管理等功能。
?Mysql和sql server入門JDBC操作
🍧1、Mysql的JDBC操作
package jdbc;import java.sql.*;public class JdbcDome {public static void main(String[] args) {String url = "jdbc:mysql://localhost:3306/1127douyinDB";String user = "root";String password = "root";try {// 加載MySQL驅(qū)動(dòng)程序Class.forName("com.mysql.cj.jdbc.Driver");// 建立MySQL數(shù)據(jù)庫連接Connection connection = DriverManager.getConnection(url, user, password);// 創(chuàng)建Statement對(duì)象Statement statement = connection.createStatement();// 執(zhí)行SQL查詢語句ResultSet resultSet = statement.executeQuery("SELECT * FROM douyin");// 處理查詢結(jié)果while (resultSet.next()) {int id = resultSet.getInt("id");String liveStreaming = resultSet.getString("liveStreaming");int looknumber = resultSet.getInt("looknumber");System.out.println("id: " + id +"\tName: " + liveStreaming + "\tlooknumber: " + looknumber);}// 關(guān)閉ResultSet、Statement和Connection對(duì)象resultSet.close();statement.close();connection.close();} catch (ClassNotFoundException | SQLException e) {e.printStackTrace();}}
}
這些代碼實(shí)現(xiàn)了連接到MySQL數(shù)據(jù)庫并查詢student表中的數(shù)據(jù),并且輸出查詢結(jié)果。需要注意的是,實(shí)際開發(fā)中建議使用try-with-resources語句來自動(dòng)關(guān)閉資源,而不是手動(dòng)調(diào)用close()方法。
🍧2、Sql Server的JDBC操作
import java.sql.*;public class Dome {public static void main(String[] args) {//定義加載驅(qū)動(dòng)String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";//定義數(shù)據(jù)庫用戶String userName = "sa";//定義數(shù)據(jù)庫密碼String userPwd = "sasa";//定義數(shù)據(jù)庫連接對(duì)象Connection dbConn = null;//定義命令對(duì)象Statement stmt=null;try {//1.加載及注冊(cè)驅(qū)動(dòng)Class.forName(driverName);//2.定義數(shù)據(jù)庫連接字符串String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=LOLDB";//3.數(shù)據(jù)庫連接dbConn = DriverManager.getConnection(dbURL, userName, userPwd);System.out.println("連接數(shù)據(jù)庫成功");//4.定義SQL語句String sql="select * from LolNameTab";//5.創(chuàng)建一個(gè)執(zhí)行sql對(duì)象stmt=dbConn.createStatement();//6.執(zhí)行SQL語句命令ResultSet resultSet = stmt.executeQuery(sql);//7.處理結(jié)果,并獲取數(shù)據(jù)while (resultSet.next()){String userID=resultSet.getString("userID");String password=resultSet.getString("password");String name=resultSet.getString("userName");System.out.println(userID+"\t"+password+"\t"+name);}//8.關(guān)閉連接resultSet.close();dbConn.close();stmt.close();} catch (SQLException e) { //數(shù)據(jù)庫的處理異常的方法e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}finally {if (dbConn!=null){try {dbConn.close();} catch (SQLException e) {e.printStackTrace();}}if(stmt!=null){try {stmt.close();} catch (SQLException e) {e.printStackTrace();}}}}
}
總結(jié)不易,希望uu們不要吝嗇親愛的👍喲(^U^)ノ~YO!!如有問題,歡迎評(píng)論區(qū)批評(píng)指正😁