Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SQLServerExpress R2的JDBC连接Url_Java_Database_Jdbc_Sql Server 2008 R2 - Fatal编程技术网

Java SQLServerExpress R2的JDBC连接Url

Java SQLServerExpress R2的JDBC连接Url,java,database,jdbc,sql-server-2008-r2,Java,Database,Jdbc,Sql Server 2008 R2,我写了下面这行代码来连接sql server express r2: Connection con=DriverManager.getConnection(“jdbc:sqlserver://localhost/SQLEXPRESS;databaseName=abc”、“sa”、“密码”) 这是一个例外: com.microsoft.sqlserver.jdbc.SQLServerException:到主机localhost/SQLEXPRESS端口1433的TCP/IP连接失败。错误:“nul

我写了下面这行代码来连接sql server express r2:

Connection con=DriverManager.getConnection(“jdbc:sqlserver://localhost/SQLEXPRESS;databaseName=abc”、“sa”、“密码”)

这是一个例外: 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 Configuration Manager

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

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

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


之后,连接也会出现同样的异常。

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

尝试运行一些Java代码来测试它。将{computer name}\SQLEXPRESS替换为在SQL Server Management Studio的根节点中看到的域。在安装SQLEXPRESS时,您可以选择将“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)中运行(状态为“已启动”)。Windows7略有不同,但你会发现它

双反斜杠必须在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();
        }
    }
};

对于SQL Server>2005,您还必须启动SQL Server浏览器服务

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

  • 在以下位置启用了TCPIP选项:SQL Server配置管理器->SQL Server网络配置->servername协议
  • 已停止以下2个服务并重新启动它们:

    • Sql Server(服务器名)
    • Sql Server浏览器

  • 我在URL中没有使用端口,也没有使用本地机器名。

    我在sqlserver2008中也遇到了同样的问题。要解决这些问题,请遵循以下设置: 启动sqlserver->从登录窗口选择选项按钮->连接属性->连接到数据库->浏览并选择数据库名称->然后在网络协议下面选择TCP/IP。
    执行你的程序。

    然后你将所需的端口设置为1433?是的。.我在TCP端口字段中将所需的端口设置为1433,你已经重新启动了服务器?是的,我在那之后重新启动了服务器更多的是一个注释而不是一个答案!