尝试将Java与SQL Server Express连接时出现问题
因此,我正在制作一个简单的应用程序,其中我的代码连接到SQLServerExpress数据库。我已经配置了JDBC、数据库、登录和密码。但是,当我尝试运行代码时,总是会遇到相同的错误。错误在于:尝试将Java与SQL Server Express连接时出现问题,java,sql,sql-server,jdbc,Java,Sql,Sql Server,Jdbc,因此,我正在制作一个简单的应用程序,其中我的代码连接到SQLServerExpress数据库。我已经配置了JDBC、数据库、登录和密码。但是,当我尝试运行代码时,总是会遇到相同的错误。错误在于: java.sql.SQLException: No suitable driver found for jdbc:sqlserver://localhost;databaseName=SampleDatabase;user=testLogon;password=sample123 at
java.sql.SQLException: No suitable driver found for jdbc:sqlserver://localhost;databaseName=SampleDatabase;user=testLogon;password=sample123
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:270)
at App.main(App.java:10)
我目前正在使用VSCode进行开发,但我已经改为IntelliJ和Eclipse,并且不断出现相同的错误
我的代码:
import java.sql.*;
public class App {
public static void main(String[] args) throws Exception {
String connectionUrl = "jdbc:sqlserver://localhost;databaseName=SampleDatabase;user=testLogon;password=sample123";
String insertString = "INSERT INTO Pessoa (id, nome, idade) VALUES (?, ?, ?)";
try (
Connection con = DriverManager.getConnection(connectionUrl);
PreparedStatement stmt = con.prepareStatement(insertString);
) {
Pessoa p1 = new Pessoa(1, "Maria", 50);
stmt.setInt(1, p1.getId());
stmt.setString(2, p1.getNome());
stmt.setInt(3, p1.getIdade());
stmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
JDBCJAR已经导入
问题在于,您正在使用Java 8(Java 8 update 241)运行程序,但正在尝试使用适用于Java 11及更高版本的Microsoft SQL Server JDBC驱动程序版本(如版本中的
jre11
所示)
由于驱动程序是为Java11编译的,所以Java8无法加载它。下载驱动程序的Java 8版本(以
jre8
结尾),或升级到Java 11。您需要将驱动程序库添加到classpath@WSouBar驱动程序的.jar已经添加了。您使用的库是什么?您是如何将这个jar添加到您的classpath@codeogeek在vscode上,我们可以从“Java依赖项”选项卡>引用Libraries@codeogeek我正在使用microsoft为sql server connection发布的默认库:该死,这是一个简单的问题,我在vscode上更改了openjdk 11的绝对路径,一切正常!谢谢!