使用SQLserver jdbc连接数据库很困难

时间:2013-09-22 13:33:36

标签: java sql-server database jdbc

我正在尝试使用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;

2 个答案:

答案 0 :(得分:5)

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

在MSDN上的Windows上查看Connecting with Integrated Authentication On Windows

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

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

答案 1 :(得分:1)

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

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

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

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