try{
String sql="insert into test1 values('"+name+"','"+call+"','"+Email+"','"+tel+"','"+addr+"','"+text+"')";
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test1";
String user = "sa";
String password = "123456";
java.sql.Connection conn = (java.sql.Connection) DriverManager.getConnection(url, user, password);
System.out.println("資料庫連接配接成功!");
Statement st=conn.createStatement();
st.executeUpdate(sql);
conn.close();
st.close();
}catch(ClassNotFoundException e)
{System.out.println("資料庫連接配接失敗:"+e.getMessage());}
catch (SQLException ex){
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
}
首先檢查資料庫名,使用者,密碼是否正确
錯誤1:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket
解決方案:
裝sql2000更新檔sp4,打開工具—SQL Servers屬性(配置),點選正常頁籤,點選網絡配置,“ 啟動的協定”中使用“TCP/IP協定”(把命名管道禁止掉),然後打開“安全性”頁籤,選擇身份驗證為“SQL Server和 Windows ” ,把sql2000三個驅動包(msbase.jar,mssqlserver.jar,msutil.jar)導入工程,涮新,重新部署,重新開機tomcat
錯誤2:
使用者 'sa' 登入失敗。原因: 未與信任 SQL Server 連接配接相關聯。
解決方案:
這一問題一般是由于SQL Server未內建Windows身份驗證導緻的,是以解決方案為:
1 打開SQL Server企業管理器。
2 選擇伺服器名稱(local)(WindowsNT)上右鍵選擇“編輯SQL Server注冊屬性”,然後在對話框中選擇“使用windows身份驗證”。
3 試試一試,不行。在看看安全性設定
4 同樣右鍵,選擇“屬性”,然後打開“安全性”頁籤。
5 在頁籤中,選擇身份驗證為“SQL Server和 Windows ”,其他不變
6.重新開機sql2000伺服器
SQL2000的sa密碼更改方法
1.試試登出你的作業系統,用administrator登陸 查詢分析器--連接配接使用"windows身份驗證"--如果這裡能成功,你就執行下面的語句來修改sa的密碼 sp_password null,'新密碼','sa'
如 sp_password null,'123456','sa'
如果你在測試連接配接SQL Server 2000 JDBC連接配接時出現錯誤Error establishing socket.請參考如下:
用 CMD 指令NETSTAT查1433(這是預設的端口,可能被占用,你可以重新設一個新的端口)的端口可是居然沒有沒有打開,先看看你的伺服器有沒有打開,如果都大開了那就說明你沒有裝SQL的sp3或sp4的更新檔.
還有一個方法看你是不是要打更新檔,那就是看看你的版本号:
可以用如下的方式檢視MSSQL的版本:
打開企業管理器-〉工具-〉SQL查詢分析器-〉幫助-〉關于
檢視MSSQL的詳細版本号
如果 是 8.00.194 就是還沒打更新檔
8.00.760 就是SP3
8.00.2039 就是SP4
如果你的版本号是對的,但NETSTAT查1433沒有,那可能你的1433端口被占了,換一個端口應該就可以了.
換端口的方法是:1. 打開企業管理器,依次在控制台根目錄 ->Microsoft SQL Servers->SQL Server 組,列出一部分資料庫伺服器。
2. 右擊我們要連接配接的資料庫伺服器,選擇屬性,在正常頁籤點選網絡配置彈出新視窗。
3. 在啟用的協定區域我們選擇 TCP/IP ,點選屬性按鈕,彈出新視窗。在這個視窗有網絡協定預設值設定,一般預設端口是:1433。
另有一篇網上的方法,供參考:
如運作程式時出現 "Error establishing socket" 錯誤,則應進行如下調試:
1 檢查SQL SERVER 是否允許遠端通路.具體步驟:
1)打開"企業管理器",打開控制台根目錄>SQL Server 組>資料庫
2)在相應"資料庫"上單擊右鍵,選擇"屬性"
3)選擇"連接配接"頁籤,檢查"遠端伺服器連接配接"下,RPC服務是否選擇.
2 使用telnet IP位址 1433,系統是否提示連接配接出錯,如系統提示出錯
檢查是否防火牆屏蔽了SQL SERVER 或 java IDE 的網絡通路端口
如果是,關閉防火牆,重新啟動SQL SERVER和java IDE,進行測試,
如果系統仍提示上述錯誤,嘗試下列步驟
3 檢查SQL SERVER 端口号及是否啟用了TCP/IP協定,具體步驟:
1)打開"企業管理器",打開控制台根目錄>SQL Server 組>資料庫
2)在相應"資料庫"上單擊右鍵,選擇"屬性"
3)選擇"正常"頁籤,點選"網絡配置",如啟用的協定中無"TCP/IP協定"将其加入
4)選擇"TCP/IP協定",點選"屬性",檢查其端口号是否為1433
5)如端口号為1433将其修改為其它端口号,修改jdbc連接配接語句,将端口号同樣改為新啟用的端口号,如jdbc:microsoft:sqlserver://server_name:1400(假設新端口号為 1400)
以下的方法你每種的去試試:
#檢查一下sql server的connection有沒有full.
#如果是認證的問題.
可到sql enterprice manager->指定server->内容->安全性.
把驗證改為 SQL server 及 windows.
#點選屬性檢查一下port是否正确.
#執行%MSSQL_HOME%/80/Tools/Binn/SVRNETCN.exe
把TCP/IP啟用.
#關掉防火牆.