在eclipse中使用Java连接sql 2008 R2

时间:2011-07-12 10:13:39

标签: java sql-server-2008-r2

我正在尝试使用JDBC连接Sql Server 2008 R2和java。我已经下载了jdbc jar文件,我在eclipse中添加了。当我尝试连接到sql 2008 R2时,它说出了以下错误。我正在使用默认端口1433.我是否必须更改sql端的设置。

这是我的代码。

package SocketClient;

import java.sql.*;
import com.microsoft.sqlserver.jdbc.*;

 public class SocketClient {

    public static void main(String[] args) {

  // Declare the JDBC objects.
  Connection con = null;
  CallableStatement cstmt = null;
  ResultSet rs = null;

  try {
     // Establish the connection. 
     SQLServerDataSource ds = new SQLServerDataSource();
     ds.setUser("sa");
     ds.setPassword("password123");
     ds.setServerName("ENMEDIA-EA6278E\\ENMEDIA");
     ds.setPortNumber(1433); 
     ds.setDatabaseName("DishTV_Voting");
     con = ds.getConnection();

     // Execute a stored procedure that returns some data.
     cstmt = con.prepareCall("{call dbo.uspGetEmployeeManagers(?)}");
     cstmt.setInt(1, 50);
     rs = cstmt.executeQuery();

     // Iterate through the data in the result set and display it.
     while (rs.next()) {
        System.out.println("EMPLOYEE: " + rs.getString("LastName") + 
           ", " + rs.getString("FirstName"));
        System.out.println("MANAGER: " + rs.getString("ManagerLastName") + 
           ", " + rs.getString("ManagerFirstName"));
        System.out.println();
     }
  }

  // Handle any errors that may have occurred.
  catch (Exception e) {
     e.printStackTrace();
  }
  finally {
     if (rs != null) try { rs.close(); } catch(Exception e) {}
     if (cstmt != null) try { cstmt.close(); } catch(Exception e) {}
     if (con != null) try { con.close(); } catch(Exception e) {}
     System.exit(1);
  }
 }
}

连接到sql时我得到的错误是

com.microsoft.sqlserver.jdbc.SQLServerException:与主机ENMEDIA-EA6278E,端口1433的TCP / IP连接失败。错误:“连接被拒绝:连接。验证连接属性,检查主机上是否正在运行SQL Server实例并接受端口上的TCP / IP连接,并且没有防火墙阻止与端口的TCP连接。”     在com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:170)     在com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1049)     在com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:833)     在com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:716)     在com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnectionInternal(SQLServerDataSource.java:577)     在com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnection(SQLServerDataSource.java:57)     在SocketClient.SocketClient.main(SocketClient.java:23)

任何人都可以指出我哪里出错了。谢谢。提前连接sql和安装

的教程

2 个答案:

答案 0 :(得分:2)

检查是否已配置SQL Server(通过Surface Area Configuration)接受远程 TCP / IP连接。

答案 1 :(得分:0)

  

连接被拒绝:连接。验证连接属性,检查主机上是否正在运行SQL Server实例并在端口上接受TCP / IP连接,并且没有防火墙阻止与端口的TCP连接。

stacktrace中的提示指向阻塞的连接。值得检查一下你是否可以通过其他方式获得连接(ping,数据库客户端,telnet,..)。还有一个Eclipse插件来探索数据库;如果你可以在那里工作......

干杯, 维姆