新聞中心
JDBC(Java Database Connectivity)是Java開發(fā)中常用的一種技術(shù)。它提供了一種標準的接口,使得Java程序可以方便地與各種數(shù)據(jù)庫交互。本文將介紹JDBC連接SQL數(shù)據(jù)庫的過程,從入門到精通。

1. JDBC介紹
JDBC是一種Java語言編寫的應(yīng)用程序接口,用于訪問與處理數(shù)據(jù)庫中的數(shù)據(jù)。它本質(zhì)上是一個規(guī)范,要求Java程序必須能夠在運行時連接數(shù)據(jù)源、執(zhí)行SQL語句,并將結(jié)果返回給程序。JDBC規(guī)范定義了一套標準接口,使得Java程序可以與不同的數(shù)據(jù)庫交互,而不需要考慮數(shù)據(jù)庫廠商或操作系統(tǒng)的差異。
2. JDBC驅(qū)動
在Java程序中,要使用JDBC來與數(shù)據(jù)庫交互,首先需要通過驅(qū)動程序連接數(shù)據(jù)庫。JDBC驅(qū)動程序提供了一種將Java應(yīng)用程序和數(shù)據(jù)庫連接的方法。根據(jù)JDBC規(guī)范,Java應(yīng)用程序需要通過驅(qū)動程序連接數(shù)據(jù)庫,從而訪問和處理數(shù)據(jù)。
JDBC驅(qū)動程序分為4種類型:
– 類型1:JDBC-ODBC橋接驅(qū)動,通過ODBC訪問數(shù)據(jù)庫(不推薦使用)。
– 類型2:純Java的驅(qū)動,通過本地協(xié)議訪問數(shù)據(jù)庫。
– 類型3:中間件的驅(qū)動,通過中間件訪問數(shù)據(jù)庫。
– 類型4:本地的協(xié)議驅(qū)動,直接通過網(wǎng)絡(luò)協(xié)議訪問數(shù)據(jù)庫。
對于Java程序而言,通常使用純Java的驅(qū)動或本地的協(xié)議驅(qū)動,較少使用其他類型驅(qū)動。
3. JDBC連接
在Java程序中,連接數(shù)據(jù)庫的步驟如下:
– 加載JDBC驅(qū)動程序
– 注冊驅(qū)動類
– 創(chuàng)建連接對象
– 創(chuàng)建查詢語句
– 執(zhí)行查詢語句
– 處理結(jié)果集
– 關(guān)閉連接
下面我們通過一個簡單的例子來演示連接SQL Server數(shù)據(jù)庫的過程。
首先我們需要添加SQL Server JDBC驅(qū)動程序到項目中??梢詮膍aven中央倉庫中找到最新版的SQL Server JDBC驅(qū)動程序,如下所示:
“`
com.microsoft.sqlserver
mssql-jdbc
9.4.0.jre11
“`
在代碼中加載驅(qū)動程序:
“`
// 加載驅(qū)動程序
Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);
“`
接著注冊驅(qū)動類:
“`
// 注冊驅(qū)動
DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());
“`
創(chuàng)建連接對象:
“`
// 創(chuàng)建連接對象
String url = “jdbc:sqlserver://localhost:1433;DatabaseName=TestDB”;
Connection conn = DriverManager.getConnection(url, “sa”, “123456”);
“`
在創(chuàng)建連接對象時,需要指定數(shù)據(jù)庫的URL、用戶名和密碼。對于SQL Server數(shù)據(jù)庫而言,URL的格式為“jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]”。
創(chuàng)建查詢語句:
“`
// 創(chuàng)建查詢語句
String sql = “SELECT * FROM T_User WHERE id=?”;
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, id);
“`
執(zhí)行查詢語句:
“`
// 執(zhí)行查詢語句
ResultSet rs = ps.executeQuery();
“`
處理結(jié)果集:
“`
// 處理結(jié)果集
while (rs.next()) {
int id = rs.getInt(“id”);
String name = rs.getString(“name”);
String password = rs.getString(“password”);
System.out.printf(“id=%d, name=%s, password=%s%n”, id, name, password);
}
“`
最后關(guān)閉連接:
“`
// 關(guān)閉連接
rs.close();
ps.close();
conn.close();
“`
4. JDBC事務(wù)
在數(shù)據(jù)庫操作中,如果需要在多個SQL語句之間保持一致性,需要使用事務(wù)。事務(wù)是對一組SQL語句的執(zhí)行過程進行控制的機制,確保它們作為一個單獨的、不可分割的工作單元執(zhí)行。
在Java程序中,使用JDBC實現(xiàn)事務(wù)的過程如下:
– 創(chuàng)建連接對象
– 開始事務(wù)
– 執(zhí)行SQL語句1
– 執(zhí)行SQL語句2
– ……
– 執(zhí)行SQL語句n
– 提交事務(wù)或回滾事務(wù)
– 關(guān)閉連接
下面我們通過一個簡單的例子來演示JDBC事務(wù)的使用過程。
“`
// 創(chuàng)建連接對象
Connection conn = DriverManager.getConnection(url, “sa”, “123456”);
try {
// 開始事務(wù)
conn.setAutoCommit(false);
// 執(zhí)行SQL語句1
String sql1 = “UPDATE T_User SET password=? WHERE id=?”;
PreparedStatement ps1 = conn.prepareStatement(sql1);
ps1.setString(1, newPassword);
ps1.setInt(2, id);
ps1.executeUpdate();
// 執(zhí)行SQL語句2
String sql2 = “INSERT INTO T_Log VALUES(?,?)”;
PreparedStatement ps2 = conn.prepareStatement(sql2);
ps2.setInt(1, id);
ps2.setString(2, “Change Password”);
ps2.executeUpdate();
// 提交事務(wù)
conn.commit();
} catch (Exception e) {
// 回滾事務(wù)
conn.rollback();
} finally {
// 關(guān)閉連接
conn.close();
}
“`
在這個例子中,我們先創(chuàng)建連接對象,并在try塊中開始事務(wù)。然后執(zhí)行兩個SQL語句,分別是修改密碼和添加日志。如果有任何一個SQL語句執(zhí)行失敗,就執(zhí)行回滾操作,否則提交事務(wù)。最后關(guān)閉連接。
5.
本文介紹了JDBC連接SQL數(shù)據(jù)庫的過程,包括驅(qū)動、連接、SQL語句、結(jié)果集和事務(wù)等。JDBC是Java編程中非常重要的一種技術(shù),掌握它可以幫助Java開發(fā)者更好地與各種數(shù)據(jù)庫交互,提升程序的效率和可靠性。
相關(guān)問題拓展閱讀:
- jdbc與sql2023的連接需要些什么東西…例子等
- XP操作系統(tǒng)下,JDBC如何連接SQL Server 2023數(shù)據(jù)庫
jdbc與sql2023的連接需要些什么東西…例子等
注冊
DriverManager.registerDriver(driver);
加載:
使用JDBC-ODBC橋驅(qū)動程序的語句如下:
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
使用Oracle8i的JDBC驅(qū)動程序的語句如下:
Class.forName(“oracle.jdbc.driver.OracleDriver”);
JDBC連接由數(shù)據(jù)庫 URL標識
jdbc::
如:jdbc:odbc:;User=;PW=
建立連接 方法
DriverManager類的getConnection()方巖察凳法:
public static Connection getConnection(String url, String user, String password) throws SQLException
即:
Connection conn = DriverManager.getConnection(URL,
login_name, login_password);
Statement 對象將 SQL 語句發(fā)送到 DBMS
由Connection的createStatement()方法創(chuàng)建Statement對象:
public Statement createStatement() throws SQLException
通常
Statement stmt = conn.createStatement();
Statement 對象的方法:
executeUpdate()
用來創(chuàng)建和更新表
stmt.executeUpdate(query);
executeQuery()
對于SELECT 語句
stmt.executeQuery(query);
execute()
stmt.execute();
返回布爾值,用于執(zhí)行任何 SQL 語句,返回多個結(jié)果集的情況
通常:
ResultSet rs = stmt.executeQuery(query);
一個簡單的對Oracle的例子。
import java.net.URL;
import java.sql.*;
import oracle.jdbc.driver.*;
Class.forName(“oracle.jdbc.driver.OracleDriver”);
Connection con = DriverManager.getConnection(“jdbc:oracle:oci8:@oradb”, “scott”, “tiger”);
Statement stmt = conn.createStatement();
ResultSet r = stmt.executeQuery(“SELECT a,b,c FROM Table1”);
While(r.next()){
int i = r.getInt(“a”);
String s = r.getString(“b”);
float f = r.getFloat(“c”);
System.out.println(“ROW=”+i+”沒李 “+s+” “+f);
}
stmt.close();
con.close();
一個使用粗旅ODBC的例子。
創(chuàng)建學(xué)生表student。此表有三個字段:學(xué)號(id)、姓名(name)及成績(score)。
import java.sql.*; //引入java.sql包
public class c15_1{
public static void main(String args) {
String JDriver = “sun.jdbc.odbc.JdbcOdbcDriver”; //聲明JDBC驅(qū)動程序?qū)ο?/p>
String conURL=”jdbc:odbc:TestDB”; //定義JDBC的URL對象
try {
Class.forName(JDriver); //加載JDBC-ODBC橋驅(qū)動程序
}
catch(java.lang.ClassNotFoundException e) {
System.out.println(“ForName :” + e.getMessage( ));
}
try {
Connection con=DriverManager.getConnection(conURL); //連接數(shù)據(jù)庫URL
Statement s=con.createStatement( ); //建立Statement類對象
String query = “create table student ( ”
+ “id char(10),”
+ “name char(15),”
+ “score integer”
+ “)”; //創(chuàng)建一個含有三個字段的學(xué)生表student
s.executeUpdate(query); //執(zhí)行SQL命令
s.close( ); //釋放Statement所連接的數(shù)據(jù)庫及JDBC資源
con.close( ); //關(guān)閉與數(shù)據(jù)庫的連線
}
catch(SQLException e){ System.out.println(“SQLException: ” +e.getMessage( )); }
}
}
補充:Jar 是Java的程序包.
二樓的:數(shù)據(jù)庫連接冊清池底層實現(xiàn)也是用JDBC!COPY代碼的話,假如需求變更又不熟悉原理改如何修改呢?網(wǎng)上可沒有100%符州胡前合老板的需求的代碼呀!
一樓的連接過程做鋒很對只是 數(shù)據(jù)庫URL有點問題。
首先你要確認導(dǎo)入了JDBC驅(qū)動Jar包和SQL2023驅(qū)動Jar包
public class MSDBdemo {
public static void main(String args){
try{
Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”).newInstance();
System.out.println(“數(shù)據(jù)庫驅(qū)動程序注冊成功!”);
String url =”jdbc:microsoft:
// localhost 可以換成你的數(shù)據(jù)庫IP。northwind可以換成你的數(shù)據(jù)庫名字。
String user = “sa”; //換成你的用戶名
String password = “”; //換成你的密碼
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println(“數(shù)據(jù)庫連接成功”);
}catch(Exception e){
e.printStackTrace();
System.out.println(“數(shù)據(jù)庫連接失敗”);
}
}
}
試試吧
加油!
你們回答了很多,但是偏題了,他是問需要什么,當然是需要一個數(shù)據(jù)庫呢,然后要個jdk,
為什么給人凈教些讓陵沒用的??你現(xiàn)在開發(fā)還用JDBC-ODBC?傻子歷滑孫么? 寫個數(shù)肢鏈據(jù)庫連接池就行了 ,,具體怎么寫 找個代碼網(wǎng)站查下, 樓上的方式極度不可取! 蒙小孩的東西
XP操作系統(tǒng)下,JDBC如何連接SQL Server 2023數(shù)據(jù)庫
我選擇的是SQL Server 2023數(shù)據(jù)庫,操作系統(tǒng)是XP,下面把配置的整個過程描述一遍: (1)安裝SQL Server 2023數(shù)據(jù)庫。 在XP下,是不能安裝SQL Server 2023數(shù)據(jù)庫的企業(yè)版的,可以安裝標準版或者開發(fā)版,評估版也可以。我選擇的是開發(fā)版。安裝的時候我是把光盤中的內(nèi)容先栲到硬盤,從硬盤安裝的。因為直接從光盤安裝總是有一些文件不能拷貝,從而導(dǎo)致中斷安裝過程。 (2)安裝Sql2ksp3.exe文件 這個文件是用來對SQL Server 2023數(shù)據(jù)庫從sp1升級到sp3的,因為用JDBC與SQL Server 2023數(shù)據(jù)庫連接,必須要求它是SP3或者SP4的。這個安裝文件可以從Microsoft的技術(shù)Support網(wǎng)頁下載。大概有55M左右,我是從某個FTP下載的,因為這樣速度比較快。特別需要注意的是,如果你的SQL Server 2023數(shù)據(jù)庫是中文版的,那么Sql2ksp3.exe也應(yīng)該是中文版的。所以需要下載chs_Sql2ksp3.exe.安裝這個文件是首先解壓縮到一個文件夾,默認是sql2ksp3,然后運行這個文件夾里的setup.exe就可以安裝。(3)安裝JDBC的驅(qū)動程序 從網(wǎng)上找到一個針對SP3數(shù)據(jù)庫的JDBC驅(qū)動程序,直接運行安裝,成功安裝之后,會出現(xiàn)開始—程序—Microsoft sql server 2023 driver for jdbc.驅(qū)動程序安裝完成之后,默認在C盤生成一個文件夾Microsoft sql server 2023 driver for jdbc里有一個lib的文件夾里有三個*.jar文件,直接把它們拷貝到tomcat\commn\lib即可。(4)端口1433 在成功完成上述操作之后,用JDBC與sql server 2023 driver 需要用到1433端口,可以在DOS下,通過命令netstat -a -n 查看該端口是否打開。如果沒有打開是不能進行數(shù)據(jù)庫的連接的。(5)寫程序與數(shù)據(jù)庫連接。
jdbc連接sql數(shù)據(jù)庫事例的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于jdbc連接sql數(shù)據(jù)庫事例,JDBC連接SQL數(shù)據(jù)庫實例:從入門到精通,jdbc與sql2023的連接需要些什么東西…例子等,XP操作系統(tǒng)下,JDBC如何連接SQL Server 2023數(shù)據(jù)庫的信息別忘了在本站進行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
文章標題:JDBC連接SQL數(shù)據(jù)庫實例:從入門到精通(jdbc連接sql數(shù)據(jù)庫事例)
本文路徑:http://m.fisionsoft.com.cn/article/cooogjc.html


咨詢
建站咨詢
