我建了个连接数据库的程序,把从官网上下载的驱动包(sqljdbc4.jar)正确导入了,然后去连接SQL Server数据库,
出现了连接问题,我的链接代码是:
public class GetConnection {
    private static final String DRIVER_CLASS = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
    private static final String URL = "jdbc:sqlserver://localhost:7777;databaseName=restaurant;integratedSecurity=true;";    public static Connection getConnection(){
        Connection conn = null;
        try{
            Class.forName(DRIVER_CLASS);
            conn = DriverManager.getConnection(URL);
        }catch(SQLException e){
            e.printStackTrace();
        }catch(ClassNotFoundException ce){
            ce.printStackTrace();
        }
        return conn;
    }
}
错误提示是:
com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 7777 连接到主机 localhost 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性,并检查 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
        at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:170)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1049)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:833)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:716)
        at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:841)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:207)
        at ConnectionManager.GetConnection.getConnection(GetConnection.java:24)
        at ConnectionManager.GetFoodName.getFoodNames(GetFoodName.java:26)
        at testconnection.Main.main(Main.java:22)
java.lang.NullPointerException
        at ConnectionManager.GetFoodName.getFoodNames(GetFoodName.java:27)
        at testconnection.Main.main(Main.java:22)
我之后把防火墙关掉或者把localhost:后面数字改成1433还是出现同样的错误。

解决方案 »

  1.   

      conn = DriverManager.getConnection(URL);用户名和密码呢?
      

  2.   

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

  3.   

    因为有这一句,integratedSecurity=true;觉得就不用用户名和密码了吧,这个连接语句是我在下载的文件中找到的,有用户名和密码的情况我也试过,都设成了"sa",但还是不行。我装数据库的时候,是把安全类型设置成了,
    windows authenticate
      

  4.   

    应该是需要加入username 和password,还有确保你的SQLServer是正常启动的!
      

  5.   

    SqlServer配置那边的tcp/ip协议服务要打开
      

  6.   

    检查用户名,密码,以及url,端口号,一般都是这几个问题
      

  7.   

    sql server配置管理器里,TCP/IP协议打开,看看TCP/IP的端口是1433吗?
      

  8.   

    看下你的sqlserver的localhost,还有远程的1433端口没有没被禁用
      

  9.   

    你用的端口是7777,把你的TCP/IP协议下IP地址里TCP端口改成7777,然后启用TCP/IP协议,重启服务
      

  10.   

    服务启动没?
    TCP/IP端口改成7777
      

  11.   

    改TCP/IP协议的方法是不是在开始菜单的SQL server工具里的那个配置
      

  12.   

    是的   开始-->程序-->Microsoft SQL Server 2005-->配置工具-->SQL Server 配置管理器-->SQL Server 2005 网络配置-->MSSQLSERVER协议