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