2

我正在尝试使用 sqljdbc4 连接到我的数据库,我对此很陌生,所以我遵循了一些教程,但它似乎仍然不起作用,当我尝试运行程序时,我得到了这个异常:

com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user ''.        ClientConnectionId:f181fd37-7e28-4392-ac86-02914c2090e1
at  com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216) 

这是我的代码:

    try {

        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

        Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=DBank;","","");

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
         } catch (SQLException e) {
            e.printStackTrace(); 
         }
    return null;
4

2 回答 2

5

您没有通过任何身份验证凭据。如果要使用集成安全性(Windows 身份验证),则需要在连接 URL 中明确指定,并且需要加载所需的本机库。

请参阅MSDN 上的 Windows 上的在 Windows 上使用集成身份验证进行连接。

这基本上归结为sqljdbc_auth.dlljava.library.path系统属性中包含包含(32 位或 64 位)的文件夹(有关详细信息,请参见链接)并添加integratedSecurity=true到您的连接字符串中:

DriverManager.getConnection(
   "jdbc:sqlserver://localhost:1433;databaseName=DBank;integratedSecurity=true");
于 2013-09-22T14:14:10.970 回答
1

在 getConnection 方法中连接到数据库时,您传递了空的用户名和密码:

DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=DBank;","","");

尝试提供 db 用户名和密码,例如:

DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=DBank;","myusername","mypassword");
于 2013-09-22T13:35:20.043 回答