在寫一個(gè)Servlet程序連接數(shù)據(jù)庫(kù)SQL SERVER2005,連接代碼如下:
1
Connection conn = null;
2
Statement st = null;
3
response.setContentType("text/html;charset=gb2312");
4
PrintWriter out = response.getWriter();
5
try
{
6
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
7
conn = DriverManager
8
.getConnection(
9
"jdbc:sqlserver://MY-NOTEBOOK;DatabaseName=BOOKS",
10
"sa", "********");
11
st = conn.createStatement();
12
st.executeUpdate("insert into tblBookInfo(bookBarCode,bookName,bookAuthor,bookPrice,bookIntroduce) values('"
13
+ bookBarCode
14
+ "','"
15
+ bookName
16
+ "','"
17
+ bookAuthor
18
+ "'," + bookPrice + ",'" + bookIntroduce + "')");
19
conn.close();
20
out.println("圖書添加成功!");
21
} catch (Exception e)
{
22
out.println("發(fā)生如下錯(cuò)誤:<br>");
23
out.println(e.getMessage());
24
}
報(bào)如下錯(cuò)誤:
通過(guò)端口 1433 連接到主機(jī) MY-NOTEBOOK 的 TCP/IP 連接失敗。錯(cuò)誤:“Connection refused: connect。請(qǐng)驗(yàn)證連接屬性,并檢查 SQL Server 的實(shí)例正在主機(jī)上運(yùn)行,且在此端口接受 TCP/IP 連接,還要確保防火墻沒(méi)有阻止到此端口的 TCP 連接。”。 從SQL Server Management Studio里可以正常登錄數(shù)據(jù)庫(kù),經(jīng)過(guò)一翻百度、Google后,未果。
經(jīng)分析發(fā)生此故障的原因?yàn)閿?shù)據(jù)庫(kù)系統(tǒng)的TCP/IP網(wǎng)絡(luò)協(xié)議未啟動(dòng)所導(dǎo)致。
解決方法:
打開SQL Server Configuration Manager控制臺(tái)界面,從左邊的樹形菜單里選擇 SQL Server 2005網(wǎng)絡(luò)配置 -> MSSQLSERVER 的協(xié)議,將右邊列出的 TCP/IP 和Named Pipes 都設(shè)置為啟動(dòng)狀態(tài),再重啟啟動(dòng)SQL Server(MSSQLSERVER)服務(wù),測(cè)試通過(guò)。另:
conn = DriverManager.getConnection( "jdbc:sqlserver://MY-NOTEBOOK:1433;DatabaseName=BOOKS", "sa", "********");
這里寫不寫端口號(hào)都可以連接成功。如果想使用JDBC連接SQL SERVER2005,需要下載JDBC 3.0 For SQL SERVER2005 (
http://www.microsoft.com/downloads/details.aspx?FamilyID=a737000d-68d0-4531-b65d-da0f2a735707&displayLang=zh-cn),安裝完后,進(jìn)入其安裝目錄X:\Program Files\Microsoft SQL Server JDBC Driver 3.0\sqljdbc_3.0\chs,將sqljdbc4.jar文件復(fù)制到
Tomcat安裝目錄的Lib文件夾里即可正常使用。
測(cè)試環(huán)境:WIN7,JDK1.6.0_21,JRE6,Apache Tomcat7.02,SQL SERVER2005,JDBC 3.0 For SQL SERVER2005 如有不明白的地方,請(qǐng)給我留言!