<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    一次在重裝系統并重新搭建 JAVA 運行環境后,為了測試運行環境是否搭建好,寫了一個非常簡單的 JDBC 程序測試數據庫連接。

    IDE Eclipse3.2

    DB SQLServer2000

    Driver MS 的官方驅動: msbase.jar mssqlserver.jar msutil.jar

    源程序如下:

    文件名: SqlServerTest.java

    package test;

     

    import java.sql.*;

     

    /**

      * @author lpeter SQLServer 連接測試

      */

    public class SqlServerTest {

        // 驅動類

        static String driverClass =

           "com.microsoft.jdbc.sqlserver.SQLServerDriver" ;

        // 連接字符串

        static String url =

           "jdbc:microsoft:sqlserver://127.0.0.1:1433;dataBaseName=Test" ;

        // 密碼

        static String password = "peter" ;

         // 用戶名

        static String username = "peter" ;

        // 待執行的 SQL 語句

        static String sql = "SELECT * FROM Test" ;

     

        public static void main(String[] args) {

           Connection conn = null ;

           PreparedStatement pstmt = null ;

           ResultSet rs = null ;

     

           try {

               Class.forName( driverClass );

               conn = DriverManager.getConnection( url , username , password );

               pstmt = conn.prepareStatement( sql );

               rs = pstmt.executeQuery();

               while (rs.next()) {

                  System. out .println( "OK." );

               }

               System. out .println( "OK too." );

               rs.close();

               pstmt.close();

               conn.close();

           } catch (ClassNotFoundException e) {

               System. out .println( " 驅動類沒有找到 ." );

               e.printStackTrace();

           } catch (SQLException e) {

               e.printStackTrace();

           } finally {

               if (rs != null ) // 結果集沒有關閉時關閉結果集

                  try {

                      rs.close();

                  } catch (SQLException e) {

                      e.printStackTrace();

                  }

               if (pstmt != null ) // 發送對象沒有關閉時關閉發送對象

                  try {

                      pstmt.close();

                  } catch (SQLException e) {

                      e.printStackTrace();

                  }

               if (conn != null )  // 連接沒有關閉時關閉連接

                  try {

                      conn.close();

                  } catch (SQLException e) {

                      e.printStackTrace();

                  }

           }

     

        }

    }

    執行這段程序時,出現錯誤:

    java.sql.SQLException : [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.

        at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)

        at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)

        at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)

        at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)

        at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)

        at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)

        at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)

        at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)

        at java.sql.DriverManager.getConnection( DriverManager.java:523 )

        at java.sql.DriverManager.getConnection( DriverManager.java:171 )

        at test.SqlServerTest.main( SqlServerTest.java:29 )

     

    出現了這個錯誤,我馬上想到連接字符串有問題。可在網上找了好幾個版本都是這樣。

    后來由于某種偶然原因,我知道了 SQLServer 可以設置查看端口號。步驟如下:

    1.  打開企業管理器,依次在控制臺根目錄 ->Microsoft SQL Servers->SQL Server 組,列出一部分數據庫服務器。

    2.  右擊我們要連接的數據庫服務器,選擇屬性,在常規選項卡點擊網絡配置彈出新窗口。

    3.  在啟用的協議區域我們選擇 TCP/IP ,點擊屬性按鈕,彈出新窗口。在這個窗口有網絡協議默認值設置,我在這里看到我的默認端口是: 4067 。因面在使用 1433 連接數據庫時出錯。

     

    把端口號修改為 4067 即修改:

    static String url =

           "jdbc:microsoft:sqlserver://127.0.0.1:1433;dataBaseName=Test" ;

    為:

    static String url =

           "jdbc:microsoft:sqlserver://127.0.0.1:4067;dataBaseName=Test" ;

    后,執行程序,輸出: OK too.

     

    測試連接成功。

    Feedback

    # re: JDBC連接SQLServer時出現錯誤Error establishing socket.的解決。  回復  更多評論   

    2007-12-07 00:19 by Angela
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;

    public class Type4 {
    public static void main(String[] args) {
    try {
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver")
    .newInstance();
    System.out.println("數據庫驅動程序注冊成功!");
    String url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Northwind";
    String user = "sa";
    String password = "sa";
    Connection conn = DriverManager.getConnection(url, user, password);
    System.out.println("數據庫連接成功");
    } catch (Exception e) {
    e.printStackTrace();
    System.out.println("數據庫連接失敗");
    }

    }
    }



    數據庫驅動程序注冊成功!
    java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
    at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
    at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
    at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
    at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
    at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
    at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
    at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
    at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(DriverManager.java:512)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at Type4.main(Type4.java:14)
    數據庫連接失敗

    # re: JDBC連接SQLServer時出現錯誤Error establishing socket.的解決。  回復  更多評論   

    2007-12-07 00:22 by Angela
    端口號是1433,但還是連接不上
    不知道怎么搞,請高手指點,謝謝!

    # re: JDBC連接SQLServer時出現錯誤Error establishing socket.的解決。[未登錄]  回復  更多評論   

    2007-12-07 12:44 by 李鵬
    @Angela

    可以先查看端口號是否打開
    在CMD中輸入命令: netstat 看有沒有1433

    # re: JDBC連接SQLServer時出現錯誤Error establishing socket.的解決。[未登錄]  回復  更多評論   

    2008-01-04 15:55 by rock
    你的系統是XP第二版吧? XP第二版不支持JDBC連接 我一般使用ODBC 我用JDBC時也是出現你那個錯誤

    # re: JDBC連接SQLServer時出現錯誤Error establishing socket.的解決。[未登錄]  回復  更多評論   

    2008-01-15 11:56 by dd
    @Angela

    打上sp4補丁試試

    # re: JDBC連接SQLServer時出現錯誤Error establishing socket.的解決。  回復  更多評論   

    2008-01-17 14:56 by Angela
    早解決了啊!謝謝啊!
    是sql沒有打補丁!

    # re: JDBC連接SQLServer時出現錯誤Error establishing socket.的解決。[未登錄]  回復  更多評論   

    2008-02-23 21:00 by 小刀
    你是怎么解決的啊?
    教教小弟啊。

    # re: JDBC連接SQLServer時出現錯誤Error establishing socket.的解決。  回復  更多評論   

    2008-03-06 17:20 by 思春帖調查員
    樓上的.
    你給sqlserver 打個sp3補丁就行了
    否則windows 2003下即使端口設置正確也會出現以上錯誤.

    # re: JDBC連接SQLServer時出現錯誤Error establishing socket.的解決。  回復  更多評論   

    2008-03-30 23:38 by 文文
    我的是XP啊
    還是中文的啊
    可是SP3不是還沒有中文的嗎
    那怎么辦啊!~

    # re: JDBC連接SQLServer時出現錯誤Error establishing socket.的解決。  回復  更多評論   

    2008-04-26 16:11 by xiaolong
    我 補丁 打了 驅動換了 端口 改了 環境 變量設置了 可是 錯誤依然!!
    后來 我用 CMD 命令 NETSTAT 查 1433 的 端口 有沒有 打開 可是 居然沒有 我把 SQL的企業管理器 重起 依然如故 我快崩潰了!!! 哪位大哥 能不能 解決一下!!!

    # re: JDBC連接SQLServer時出現錯誤Error establishing socket.的解決。[未登錄]  回復  更多評論   

    2008-07-10 20:46 by superman
    這種情況只有重裝sqlserver了!

    # re: JDBC連接SQLServer時出現錯誤Error establishing socket.的解決。  回復  更多評論   

    2008-09-12 23:26 by hokel
    在本地服務器的網絡配置的TCP\IP的屬性值是1433,但是在cmd中以netstat查看端口號卻沒有1433,使得JDBC連接SQLServer時出現錯誤Error establishing socket.無法解決請大哥指點指點!

    # re: JDBC連接SQLServer時出現錯誤Error establishing socket.的解決。  回復  更多評論   

    2008-11-19 15:58 by longlongago
    我也是上面的那個問題.
    我 補丁 打了 驅動換了 端口 改了 環境 變量設置了 可是 錯誤依然!!
    我用 CMD 命令 NETSTAT 查 1433 的 端口 可是 居然沒有沒有打開
    我把 SQL的企業管理器 重起 依然如故!

    # re: JDBC連接SQLServer時出現錯誤Error establishing socket.的解決。  回復  更多評論   

    2008-12-03 17:42 by fxf
    是應該升級到sqlsp3包

    # re: JDBC連接SQLServer時出現錯誤Error establishing socket.的解決。  回復  更多評論   

    2008-12-06 00:04 by nimama
    我也是上面的那個問題.
    我 補丁 打了 驅動換了 端口 改了 環境 變量設置了 可是 錯誤依然!!
    我用 CMD 命令 NETSTAT 查 1433 的 端口 可是 居然沒有沒有打開
    我把 SQL的企業管理器 重起 依然如故!

    # re: JDBC連接SQLServer時出現錯誤Error establishing socket.的解決。  回復  更多評論   

    2009-01-17 14:28 by liuchuan
    @Angela
    我的系統是Windows Server 2000系統、數據庫是SQLServer 2000的,打的是SP4的補丁,連接數據庫時有時候能連接上,有時候連接不上,報的錯誤也是Error establishing socket。有沒有知道的,幫忙解決一下吧!

    # re: JDBC連接SQLServer時出現錯誤Error establishing socket.的解決。  回復  更多評論   

    2009-03-03 01:35 by qiandy
    用 CMD 命令NETSTAT查1433(這是默認的端口,可能被占用,你可以重新設一個新的端口)的端口可是居然沒有沒有打開,先看看你的服務器有沒有打開,如果都大開了那就說明你沒有裝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。

    # re: JDBC連接SQLServer時出現錯誤Error establishing socket.的解決。  回復  更多評論   

    2009-03-03 01:40 by qiandy
    如果還是錯,那就可能是你代碼中的ip或端口錯了,應該不是用戶名和密碼問題,因為用戶名和密碼錯了,不是報socket錯誤

    # re: JDBC連接SQLServer時出現錯誤Error establishing socket.的解決。  回復  更多評論   

    2010-01-11 10:03 by mida
    裝SqlServer真麻煩,前后裝了好多次還是忘。。

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    posts - 8, comments - 28, trackbacks - 0, articles - 0

    Copyright © 李鵬

    主站蜘蛛池模板: 国产精品亚洲综合一区| 国产成人在线免费观看| 99人中文字幕亚洲区| 最近中文字幕大全免费版在线| 亚洲精品国产精品国自产观看| 黄色网址大全免费| 亚洲日韩在线第一页| 中国一级全黄的免费观看| 国产精品亚洲精品日韩已方| 九九99热免费最新版| h片在线播放免费高清| 日韩一卡2卡3卡4卡新区亚洲| 一级特黄a免费大片| 九月丁香婷婷亚洲综合色| 亚在线观看免费视频入口| 亚洲国产综合在线| 免费观看的a级毛片的网站| 免费一级毛片在线播放视频免费观看永久 | 99免费观看视频| 亚洲剧情在线观看| 暖暖日本免费在线视频 | 一级毛片免费播放试看60分钟| 亚洲男人在线无码视频| 免费在线看黄网站| 亚洲偷自精品三十六区| 免费一级做a爰片性色毛片| 99久久99这里只有免费的精品| 在线观看免费毛片| 国产成人无码精品久久久久免费| 国产亚洲色婷婷久久99精品| 亚洲电影在线免费观看| 亚洲国产精品无码成人片久久| 久久A级毛片免费观看| 亚洲真人无码永久在线观看| 91制片厂制作传媒免费版樱花| 亚洲国产品综合人成综合网站| 日韩免费无码一区二区视频| 在线观看免费无码专区| 亚洲人片在线观看天堂无码| 国产亚洲情侣一区二区无| 亚洲毛片在线免费观看|