JDBC连接用于SQLServer的Url表达R2

时间:2012-02-13 05:36:59

标签: java database jdbc sql-server-2008-r2

我写下了与sql server express r2连接的以下行:

Connection con = DriverManager.getConnection(" jdbc:sqlserver:// localhost / SQLEXPRESS; databaseName = abc"," sa"," password");

它给出例外: com.microsoft.sqlserver.jdbc.SQLServerException:与主机localhost / SQLEXPRESS,端口1433的TCP / IP连接失败。错误:" null。验证连接属性,检查主机上是否正在运行SQL Server实例并接受端口上的TCP / IP连接,并且没有防火墙阻止与端口的TCP连接。"。

我按照该行来解决异常:

SQL Server Express的TCP / IP 默认情况下,SQL Server Express的TCP / IP已禁用,因此JDBC无法连接到它,您可能会收到以下异常...

网络错误IOException:连接被拒绝:连接 启用TCP / IP

要启用TCP / IP,请启动SQL Server配置管理器。

展开“SQL Server 2005网络配置”节点。 在右侧窗格中,选择SQLEXPRESS的协议。右侧窗格现在应显示“协议”和“状态”列。 从TCP / IP上下文菜单中选择“启用”。 查找或配置TCP / IP端口

启用TCP / IP后,您必须找出要使用的端口号。 SQL Server Express每次启动时都会动态分配端口,因此要查找或配置端口号,请继续使用SQL Server配置管理器...

从TCP / IP上下文菜单中选择“属性”。应打开“TCP / IP属性”对话框。 选择“IP地址”选项卡。 在IPAll节点中...... TCP动态端口字段显示当前使用的端口号。如果将该字段设置为空白,则SQL Server Express在重新启动时不应自动选择其他端口。 在“TCP端口”字段中设置所需的端口号。 按“确定”应用设置并关闭对话框。

之后也会给出同样的例外情况。

4 个答案:

答案 0 :(得分:7)

尝试运行一些Java代码来测试它。将{computer-name} \ SQLEXPRESS替换为您在SQL Server Management Studio的根节点中看到的域。安装SQL Express时,您可以选择将“SQLEXPRESS”的名称更改为自定义名称,因此也可能不同。要获取端口号,请转到Windows开始菜单> SQL Server 2008 R2>配置工具> SQL Server配置管理器>展开“SQL Server网络配置”>单击“SQLEXPRESS的协议”>右键单击“TCP / IP”,然后选择“属性”>点击“IP地址”标签/菜单>在Windows XP中,您将看到“IPAll”..看看那里的端口。它应该默认为1433.如果你有2个版本的SQL Express,那么它可能会有所不同。还要确保您的服务正在运行(状态为“已启动”)在Windows控制面板中>管理工具>服务> SQL Server(SQLEXPRESS)。 Windows 7略有不同,但你会发现它。

双反斜杠需要在Java字符串中。这只是在运行时打印一个反斜杠,因为它是一个转义序列。

import java.sql.*;

public class TestConnection
{
    public static void main(String[] args)
    {
        DB db = new DB();
        db.dbConnect("jdbc:sqlserver://{computer-name}\\SQLEXPRESS:1433;databaseName=abc;integratedSecurity=true;","sa","password");
    }
}

class DB
{
    public DB() {}

    public void dbConnect(String db_connect_string, String db_userid, String db_password)
    {
        try
        {
            Connection conn = DriverManager.getConnection(db_connect_string, db_userid, db_password);
            System.out.println("connected");
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
};

答案 1 :(得分:2)

尝试使用本地计算机的IP地址而不是localhost。

答案 2 :(得分:1)

对于SQL Server> 2005年,您还必须启动 Sql Server Browser 服务。

我已经使用Sql Server 2014 Express成功测试了JBoss 7。 操作系统:Windows 7。 我必须为Sql Server做的设置:

  1. 在以下位置启用TCPIP选项: SQL Server配置管理器 - > Sql Server网络配置 - > servername
  2. 的协议
  3. 停止了以下两项服务并再次启动它们:

    • Sql Server(服务器名称)
    • Sql Server Browser
  4. 我在网址中没有使用端口和本地计算机名称。

答案 3 :(得分:1)

我在sqlserver2008中也遇到了同样的问题。要解决这些问题,请按照以下方法进行操作: 启动sqlserver->从登录窗口选择选项按钮 - >连接属性 - >连接到数据库 - >眉毛和选择数据库名称 - >然后在网络协议下面选择TCP / IP。 并执行您的程序。