數(shù)據(jù)庫操作現(xiàn)在是項目開發(fā)的根本,學(xué)習(xí)Java首先應(yīng)該學(xué)會怎么樣連接數(shù)據(jù)庫,用Java連接數(shù)據(jù)庫可不像用Delphi這類工具那樣設(shè)幾個屬性就OK,說簡單也簡單,說復(fù)雜,其實也挺復(fù)雜的,而且很麻煩,如果是初學(xué),根本不能保證第一次就連接成功,下面以SQL Server 2000為例,說說Java連接數(shù)據(jù)庫的基本方法,也記錄一下心得。
1、下載SQL Server 2000 driver for JDBC
SQL Server 2000 Driver For JDBC Downloads
該驅(qū)動截止目前有四個版本,建議下載最新的SP3版。
該驅(qū)動安裝成功后,請將安裝目錄下的lib目錄下的三個.jar文件加到CLASSPATH中;如果你使用的是JBuilder或Eclipse,將這三個文件根據(jù)IDE的提示加到工程中也可。
2、升級你的SQL Server 2000,為其打上最新的補丁。
這一步可能不是必需的,因操作系統(tǒng)環(huán)境而定,在不打補丁的情況,有時可以正常連接,有時卻不能,所以建議還是安裝最新的SQL Server 2000補丁(SP4)和JDBC驅(qū)動(SP3)。
如果你的程序在運行時提示:Error establishing socket,一般情況下,打上SQL Server 2000的補丁就可解決。
3、驅(qū)動的加載方法
在建立連接之前,要先加載SQL Server 2000 JDBC的驅(qū)動,代碼形式如下:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
在此注意,forName方法的參數(shù)字符串必須完全相同于以上內(nèi)容,大小寫是區(qū)分的,其實這個串就是驅(qū)動類的完整名稱:包名+類名。
4、獲得一個連接
在操作數(shù)據(jù)庫之前,要先獲得與數(shù)據(jù)庫的一個連接,使用如下代碼格式:
DriverManager.getConnection(連接字符串, 登錄用戶名, 登錄密碼);
例:
DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=pubs", "sa", "");
在此處關(guān)鍵的是連接字符串的內(nèi)容,localhost部分即服務(wù)器的名字,可以更改;1433部分為SQL Server使用的端口號,根據(jù)實際情況修改即可;DatabaseName即為要連接的數(shù)據(jù)庫的名字,在此注意DatabaseName之前的是分號,而不是冒號。
5、代碼實例
// 導(dǎo)入Java SQL包,連接數(shù)據(jù)庫必需;
import java.sql.*;
public class TestDB {
public static void main(String[] args) {
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=pubs";
String userName = "sa";
String userPwd = "";
Connection dbConn
try {
Class.forName(driverName);
dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
System.out.println("Connection Successful!");
}
Catch (Exception e) {
e.printStackTrace();
}
}
}
6、可能出現(xiàn)的問題
如果以上的代碼運行后,輸出"Connection Successful!",那就代表一切正常,連接數(shù)據(jù)庫成功,你可以進行Statement、ResultSet的操作了;反之的話,一定是出現(xiàn)了相應(yīng)的異常。
如果提示錯誤"Error establishing socket",請根據(jù)之前的說明安裝相應(yīng)的SQL Server 2000補丁即可。
如果提示"ClassNotFoundException",那一定是 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 該段代碼拼寫有誤,或者是SQL Server 2000 Driver For JDBC Lib目錄下的三個.jar文件未加入到CLASSPATH中。
來源: CSDN