如何解决用户'DESKTOP-6U7R1AC \ Amit'的登录失败
我想将我的sql server数据库与java连接。这是我的代码
package myPackage;
import java.beans.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Test1 {
public static void main(String[] args) throws SQLException,ClassNotFoundException {
// TODO Auto-generated method stub
String url = "jdbc:sqlserver://DESKTOP-6U7R1AC\\SQLEXPRESS;databaseName=sample1;";
String uname="DESKTOP-6U7R1AC\\Amit";
String pass="";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection(url,uname,pass);
System.out.println("command completed sucessfully");
Statement stmt =(Statement) conn.createStatement();
String query ="SELECT * FROM tblPerson";
ResultSet rs =((java.sql.Statement) stmt).executeQuery(query);
while(rs.next()){
System.out.println(rs.getInt(1) +" "+rs.getString(2) +" "+rs.getString(3) );
}
}
}
请注意
- 我正在使用Microsoft SQL Server Management Studio 18。
- 我已在构建路径中添加了mssql-jdbc-8.4.1.jar。
我的SQL Server详细信息
- 服务器类型:数据库引擎
- 服务器名称:DESKTOP-6U7R1AC \ SQLEXPRESS
- 身份验证:Windows身份验证
- 用户名:DESKTOP-6U7R1AC \ Amit
- 密码:
我遇到以下错误-
线程“ main”中的异常com.microsoft.sqlserver.jdbc.SQLServerException:用户'DESKTOP-6U7R1AC \ Amit'登录失败。 ClientConnectionId:497452a3-a4f3-40a8-b68e-864e269ad66a 在com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:262) 在com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:283) 在com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:129) 在com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:37) 在com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:5233) 在com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3988) 在com.microsoft.sqlserver.jdbc.SQLServerConnection.access $ 000(SQLServerConnection.java:85) 在com.microsoft.sqlserver.jdbc.SQLServerConnection $ LogonCommand.doExecute(SQLServerConnection.java:3932) 在com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7375) 在com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:3206) 在com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2713) 在com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2362) 在com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2213) 在com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1276) 在com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:861) 在java.sql.DriverManager.getConnection(未知来源) 在java.sql.DriverManager.getConnection(未知来源) 在myPackage.Test1.main(Test1.java:22)
解决方法
问题已解决。这是...的正确代码。
package myPackage;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Test1 {
public static void main(String[] args) throws SQLException,ClassNotFoundException {
// TODO Auto-generated method stub
String url = "jdbc:sqlserver://DESKTOP-6U7R1AC\\SQLEXPRESS;databaseName=sample1;integratedSecurity=true";
String uname="DESKTOP-6U7R1AC\\Amit";
String pass="";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection(url,uname,pass);
System.out.println("command completed sucessfully");
Statement stmt = conn.createStatement();
String query ="SELECT * FROM tblPerson";
ResultSet rs =((java.sql.Statement) stmt).executeQuery(query);
while(rs.next()){
System.out.println(rs.getInt(1) +" "+rs.getString(2) +" "+rs.getString(3) );
}
}
}
我所做的更改。
第一拳设置了integratedSecurity=true
,然后我得到一个错误,说在sqljdbc_auth.dll
中找不到java.library.path
。然后,我在sqljdbc_auth.dll
中添加了java.library.path
,它起作用了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。