我正在尝试连接到我使用 SQL Server 2012 创建的数据库,但我一直收到错误消息。这是连接的代码:
Driver d = (Driver)Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
String DB_URL = "jdbc:sqlserver://localhost:1433;databaseName=Tema6;user=sa;password=123456";
java.sql.Connection con = DriverManager.getConnection(DB_URL);
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
Login failed for user 'sa'. ClientConnectionId:e6335e64-ca68-4d72-8939-5b7ded951424
Run Code Online (Sandbox Code Playgroud)
我已从 SQL Server Config 启用 TCP/IP 协议,我确定“sa”帐户已启用且密码正确。任何人都可以帮助我吗?
编辑:这是整个堆栈跟踪。
com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'sa'. ClientConnectionId:e6335e64-ca68-4d72-8939-5b7ded951424
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:254)
at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:84)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2908)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2234)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1326)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Connection.main(Connection.java:12)
Run Code Online (Sandbox Code Playgroud)
EDIT2:用 jTDS 替换驱动程序后:
java.sql.SQLException: Login …Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的Java代码连接到Microsoft SQL Server 2008 R2 Express数据库.我已下载Microsoft SQL Server JDBC驱动程序3.0并将sqljdbc4.jar添加到我的类路径中.我正在使用Netbeans并且还在我的项目中包含了sqljdbc4.jar.
我在SQL Server Management Studio中创建了一个名为TestDB1的数据库,并添加了一些我将用于测试的列和值.我通过右键单击服务器JACOB = PC\SQLEXPRESS-> Properties-> Secuity并从Windows身份验证模式更改为SQL Server和Windows身份验证模式,从Windows身份验证模式更改.
然后我通过右键单击JACOB-PC/SQLEXPRESS-> Secuity Folder-> Logins Folder下的窗口浏览器中的Login文件夹创建了一个新的登录,并添加了一个新的登录名.我给它命名为jhaip2,切换到SQL Server身份验证并将密码设置为jacob.未选中强制密码策略和强制密码过期.默认数据库设置为TestDB1.然后在TestDB1-> Secuity-> Users-> jhaip2->数据库角色成员资格中我将jhaip2设置为db_owner(我无法在没有这样做的情况下登录管理工作室中的数据库,可能不是正确的做法?).然后我重新启动了服务器.
现在对于我的java代码,它基本上是JDBC Driver 3.0示例代码的直接副本,除了没有Windows身份验证.
package databasetest1;
import java.sql.*;
public class connectURL {
public static void main(String[] args) {
// Create a variable for the connection string.
String connectionUrl = "jdbc:sqlserver://localhost:1433;" + "databaseName=TestDB1;";
// Declare the JDBC objects.
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
// Establish the …Run Code Online (Sandbox Code Playgroud)