我尝试了很多方法来解决我的问题,但没有一个能够解决问题,所以我在这里提出问题。我用SQL Server Management Studio创建了一个本地数据库。它的名字是CallCenter,我为它创建了一个用户帐户,授予了每个权限,我可以用它登录到数据库,在Managemenet Studio中,一切正常。
现在我使用NetBeans来创建连接。我下载了Microsoft JDBC驱动程序,设置了所有内容,JDBC似乎运行正常。问题是,它无法连接到数据库。我将登录选项设置为Windows& SQL。我尝试使用集成的sequrity(Windows帐户)以及创建的(并且正在工作的)SQL用户帐户登录。
他们都没有工作,我一直得到这个例外:
com.microsoft.sqlserver.jdbc.SQLServerException:用户登录失败 “管理员”。 ClientConnectionId:1ce0b951-5ecb-49b4-a4d0-ff4a96af4ed2 at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)......
以下是代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Try {
public static void main(String[] args) {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url="jdbc:sqlserver://localhost:1434;databaseName=CallCenter;integratedSecurity=true;";
Connection conn = DriverManager.getConnection(url);
} catch (ClassNotFoundException e) {
System.err.println("SQL Driver class does not exist!");
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
我一直在浏览互联网几个小时,尝试了很多解决方案,但没有一个能解决这个问题。请帮帮我吧!
答案 0 :(得分:2)
Exception几乎说明了一切 - 用数据库检查你的凭证(你显然没有给出)。
答案 1 :(得分:2)
您获得的Login failed for user 'admin'
错误是一个明确的指示
您的登录请求到达SQL服务器但您的凭据是错误的
因此,您的用户名或密码错误,或者此登录名不是
配置为远程登录到SQL服务器。检查服务器上的配置。
答案 2 :(得分:0)
使用DriverManager的其他方法使用凭据获取连接。
如果您有integratedSecurity=True
,read this可以了解其实际含义。它使用您的Windows凭据进行登录(使用SQL Server)。
因此,请将其设为false并为数据库提供凭据。
供参考read this
[编辑]
尝试使用此而不是integratedSecurity。
JDBC:SQLSERVER://HOSP_SQL1.company.com;用户名=;密码= ABCDEFG;数据库=测试