JDBC的簡介
???????? JDBC(Java Data Base Connectivity,java數據庫連接)是一種用于執行SQL語句的Java API,可以為多種關系數據庫提供統一訪問,它由一組用Java語言編寫的類和接口組成。JDBC為工具/數據庫開發人員提供了一個標準的API,據此可以構建更高級的工具和接口,使數據庫開發人員能夠用純 Java API 編寫數據庫應用程序,操作不同的數據庫需要使用不同的JDBC。
JDBC編程步驟
一、Load the Driver? 加載JDBC驅動程序
???????? DriverManager管理一組JDBC驅動程序的基本服務。可以想象成一個管家,通過注冊DriverManager可以拿到跟數據庫的一根鏈接。
????????? 首先新建一個項目,過程不再贅述。右擊項目->Build Path -> Add External Archives。然后選擇sqljdbc4.jar
???????? 然后實例化SQLServerDriver,打開jar包你會發現它的路徑是com.microsoft.sqlserver.jdbc.SQLServerDriver。實例化有兩種方法:
??? 1、使用Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");?
?????????? Class 與class不同,Class是一個類
???? 2、 new com.microsoft.sqlserver.jdbc.SQLServerDriver();
????? 兩種方法都差不多,沒啥區別,看個人愛好了。
?二、連接數據庫
1
Connection conn = DriverManager.getConnection(, , ,);
??? getConnection有三個參數。
????????? 第一個參數是數據庫的連接字符串,這個需要根據實際情況的不同而有所不同。
????????? 第二個是用戶名
? ? ? ? ? 第三個是密碼
三、Execute the SQL 執行數據庫語句
? ? ? ? 執行數據庫語句前要創建一個語句對象。Statement
1
Statement stmt = conn.createStatement(); ????????????????????????
? 四、處理得到的結果集
1
ResultSet rs = stmt.executeQuery("select * from dept");
???????? 返回來的結果集rs,指針指向第一條數據的前面,所以需要先next一下。
1
while
( rs.next()){
2
3
rs.getString();
4
5
rs.getInt();
6
7
……
8
}
五、關閉數據庫
??????????? 原則上,后打開的先關閉
ResultSet.close
Statement.close
Connection.close
?
下面是完整代碼:
?
1
import
java.sql.*
;
2
public
class
JTest{
3
4
public
static
void
main(String[] args)
throws
Exception{
5
String JDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"
;
6
String connectDB="jdbc:sqlserver://ABYSS-PC\\MYABYSS:64160;DatabaseName=master"
;
7
//
實例化驅動
8
Class.forName(JDriver);
9
String user ="sa"
;
10
String possword = ""
;
11
//
連接數據庫
12
Connection conn =
13
DriverManager.getConnection(connectDB, user, possword);
14
//
創建語句對象
15
Statement stmt =
conn.createStatement();
16
//
執行select語句
17
ResultSet rs =
18
stmt.executeQuery("Select * from dept"
);
19
//
循環獲取結果集
20
while
( rs.next()){
21
System.out.println(rs.getString("deptno"
));
22
System.out.println(rs.getInt("deptno"
));
23
}
24
//
關閉數據庫,遵循后打開先關閉的原則。
25
rs.close();
26
stmt.close();
27
conn.close();
28
}
29
}
?
?
?
JDBC編程大致就這么些步驟,不過以上的代碼太不專業了,而且有點問題。實例化驅動、連接數據庫、創建語句對象等代碼都會拋出異常,假若在程序運行的過程中出現異常而導致程序終止,后面的關閉數據庫的語句不會被執行,而且被申請的內存不會被釋放,長此以往會導致資源的耗盡。因此這里需要將throws 改為try/catch。
import
java.sql.*
;
public
class
JText {
public
static
void
main(String[] args) {
String JDriver
= "com.microsoft.sqlserver.jdbc.SQLServerDriver"
;
String connectDB
="jdbc:sqlserver://ABYSS-PC\\MYABYSS:64160;DatabaseName=master"
;
String user
="sa"
;
String possword
= ""
;
Connection conn
=
null
;
Statement stmt
=
null
;
ResultSet rs
=
null
;
try
{
//
實例化驅動
Class.forName(JDriver);
//
連接數據庫
conn =
DriverManager.getConnection(connectDB, user, possword);
//
創建語句對象
stmt =
conn.createStatement();
//
執行select語句
rs = stmt.executeQuery("Select * from dept"
);
//
循環獲取結果集
while
( rs.next()){
System.out.println(rs.getString(
"deptno"
));
System.out.println(rs.getInt(
"deptno"
));
}
}
catch
(ClassNotFoundException e) {
//
TODO Auto-generated catch block
e.printStackTrace();
}
catch
(SQLException e) {
//
TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
try
{
//
關閉數據庫,遵循后打開先關閉的原則。
if
(rs !=
null
){
//
在關閉之前,判斷一下是否為空
rs.close();
//
關閉之后 釋放資源,這是一個很好的習慣
rs =
null
;
}
if
(stmt !=
null
){
stmt.close();
stmt
=
null
;
}
if
(conn !=
null
){
conn.close();
conn
=
null
;
}
}
catch
(SQLException e){
e.printStackTrace();
}
}
}
}
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

