Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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 SQL Server jdbc连接_Java_Sql Server 2005_Jdbc - Fatal编程技术网

Java SQL Server jdbc连接

Java SQL Server jdbc连接,java,sql-server-2005,jdbc,Java,Sql Server 2005,Jdbc,我正在windows身份验证中的localhost上运行此代码段 但是得到以下错误,但是我已经在我的类路径中添加了sqljdbc4 jar 在从eclipse运行时,我还在构建路径中添加了jar import java.io.*; import java.sql.*; import java.util.GregorianCalendar; import java.util.Date; import java.text.DateFormat; import java.text.SimpleDate

我正在windows身份验证中的localhost上运行此代码段 但是得到以下错误,但是我已经在我的类路径中添加了sqljdbc4 jar 在从eclipse运行时,我还在构建路径中添加了jar

import java.io.*;
import java.sql.*;
import java.util.GregorianCalendar;
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;

class  Cms_truncate
{
    public static void main(String[] args) 
    {
         Calendar cal = new GregorianCalendar();

         //String name="cmscim";
                 Connection conn = null;

         String url = "jdbc:sqlserver://localhost\SQLEXPRESS;databasename=yatin";
         String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
         String userName = ""; 
         String password = "";
         Statement stmt;
         try
         {

         Class.forName(driver);//.newInstance();
         conn = DriverManager.getConnection(url,userName,password);
         String query = "truncate table cim";
         stmt = conn.createStatement();
         int flag = stmt.executeUpdate(query);
         System.out.println("flag = "+flag); 
         conn.close();
        System.out.println("");
         } catch (Exception e) {
         e.printStackTrace();
         }

    }
}
错误:

com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host localhost, port 1433 has failed. Error: "Connection refused: connect. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
    at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:241)
    at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2243)
    at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:491)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1309)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at Cms_truncate.main(Cms_truncate.java:28)
请帮帮我。

此错误没有显示“身份验证错误”,而是显示“连接错误”,原因是“连接被拒绝”。这意味着您需要指定正确的端口号。您需要检查SQL Server配置并更新连接字符串

根据,连接字符串应如下所示:

jdbc:sqlserver://localhost:<insert_proper_port_here>\SQLEXPRESS;databasename=yatin
jdbc:sqlserver://localhost:\SQLEXPRESS;databasename=yatin

您没有提供用户名或密码,在计算出端口号后可能需要这样做。有关更多详细信息,请参阅参考文档。

我认为这是配置问题

Go to Run -> SQL Server Configuration Manger

Expand -> SQL Server *version_no* Network Configuration

Then click on - "Protocol for SQLEXPRESS"
如果发现
TCP/IP
协议的状态为
Disabled
,则需要
启用它

此外,您还需要重新启动服务:
打开cmd>键入服务,然后向下滚动到SQL Server(MSSQLServer),然后重新启动服务

您忘记提及实例名称。请参见解释如何在sqlserver中使用连接url

如果没有提到完整的服务器名,则会出现如下错误

com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host localhost , port 1433 has failed. Error: "Connection refused: connect. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".
我的服务器名
V_UDAY\FRAMEWORK,
我删除了
URL
中的
FRAMEWORK
实例(在Java代码中)并执行,然后我得到了如下错误

com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host V_UDAY, port 1433 has failed. Error: "Connection refused: connect. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:241)
at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2243)
at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:491)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1309)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at com.testsql.SqlServerDatabaseConnectionUsingJava.getLocalConnection(SqlServerDatabaseConnectionUsingJava.java:28)
at com.testsql.SqlServerDatabaseConnectionUsingJava.main(SqlServerDatabaseConnectionUsingJava.java:18)
Exception in getLocalConeection() The TCP/IP connection to the host V_UDAY, port 1433 has failed. Error: "Connection refused: connect. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".
下图显示了使用斜杠分隔的服务器名

sqljdbc4是执行以下Java程序所必需的。下载jar或从

使用Java连接到sqlserver的示例。这里
JSF
是数据库名

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class SqlServerDatabaseConnectionUsingJava {
    private static Connection connection = null;
    //1.jdbc driver name
    private static String SQL_JDBC_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
    // 2. Database URL, V_UDAY\FRAMEWORK is ServerName and JSF is DataBase name
    private static String URL = "jdbc:sqlserver://V_UDAY;instanceName=FRAMEWORK;databaseName=JSF";
    //3.Database credentials
    private static String USERNAME = "udaykiran";//UserName
    private static String PASSWORD = "Pa55word";//Password

public static void main(String[] args) {
    getLocalConnection();
}

public static Connection getLocalConnection() {
    try {
        Class.forName(SQL_JDBC_DRIVER);// Register jdbc driver

        System.out.println("****Connect to Database****");

        //4. open a connection
        connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);

        System.out.println("DataBase connect to: "+ connection.getMetaData().getDriverName());
        System.out.println("URL: "+ connection.getMetaData().getURL());

        setConnectionClose();
        System.out.println("Database Connection Closed");
    } catch (Exception e) {
        e.printStackTrace();
        System.err.println("Exception in getLocalConeection() "+e.getMessage());
    }
    return connection;
}

public static void setConnectionClose() throws SQLException {
    if (connection != null) {
        connection.close();
    }
}

}

注意:在连接
url
中提及实例名称
FRAMEWORK
,如果您已经删除了实例名称。

根据Microsoft文档

String url = "jdbc:sqlserver://localhost\SQLEXPRESS:[your_port_tcp];databasename=yatin";

首先,无论何时在URL中使用SQL实例名称,都必须指定
/[serverName[\\instanceName][:portNumber]]databaseName

例如:
jdbc:sqlserver://localhost\\SQLEXPRESS:1433;databasename=yatin

完成此操作后,下一步:-

  • 转到所有程序->搜索SQL Server配置管理器。打开它
  • 在左窗格中展开SQL server网络配置
  • 单击protocols作为实例名称在大多数情况下都是SQLEXPRESS的协议
  • 点击TCP IP。TCP IP属性窗口将被打开
  • 选择enabled属性并将所有属性侦听为“YES”
  • 导航到IP地址选项卡,检查IP所有部分TC动态端口是否为1433,如果不是,则进行设置
  • 然后申请并确认

  • 现在转到左窗格中SQL server配置管理器下的SQL server服务部分。点击它

  • 在大多数情况下,您将看到数据库引擎正在运行一个实例名为SQLEXPRESS的引擎,右键单击它并停止它,然后再次启动它

  • 现在重新运行代码

    连接被拒绝:连接。验证连接属性。确保SQL Server实例正在主机上运行,并在端口接受TCP/IP连接。确保到端口的TCP连接未被防火墙阻止。-也就是说,检查实例是否在指定的端口上运行,是否正在接受连接请求,检查凭据是否正确!检查:别忘了检查防火墙!小修正。这里,您提到要更改“TCP动态端口”。但实际上,我们必须更改TCP端口,而不是TCP动态端口。快乐编码。