我试图连接到与该应用程序在同一台计算机上运行的MS SQL Server数据库,但是我不断收到错误消息:
找不到适合的驱动程序 jdbc:sqlserver:// localhost:1433;数据库= SQLTEST;用户= TEST;密码= 1234567890;加密= true; trustServerCertificate = false; loginTimeout = 30;
我正在运行MS SQL Server 2017和JDK1.8.x。
我做的第一件事是使用T-SQL在SSMS中以以下方式创建用户:
USE SQLTEST
CREATE ROLE TEST
GRANT SELECT, INSERT ON SCHEMA :: [dbo] TO TEST
CREATE LOGIN TEST_LOGIN WITH PASSWORD = '1234567890'
CREATE USER USER_TEST FROM LOGIN TEST_LOGIN
ALTER ROLE TEST ADD MEMBER USER_TEST
然后我使用Maven将驱动程序添加到pom.xml文件中的项目中:
<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>7.2.2.jre8</version>
</dependency>
接着添加和更改Microsoft提供的示例代码(请注意,它应该成为JAX-RS REST-API,这就是其中存在注释的原因):
@Path("t2")
public class T2 {
@GET
public String show() {
String r = "";
String connectionUrl =
"jdbc:sqlserver://localhost:1433;"
+ "database=SQLTEST;"
+ "user=TEST;"
+ "password=1234567890;"
+ "encrypt=true;"
+ "trustServerCertificate=false;"
+ "loginTimeout=30;";
try (Connection connection = DriverManager.getConnection(connectionUrl);) {
// Code here.
}
// Handle any errors that may have occurred.
catch (SQLException e) {
e.printStackTrace();
r = e.getMessage();
}
return r;
}
}
运行此命令将导致本文开头给出的错误。我忘记了什么还是做错了什么?
答案 0 :(得分:1)
看起来与此问题相似
java.sql.SQLException: No suitable driver found for jdbc:sqlserver
看起来好像没有Class.forName(“ xxxx”);在try语句的DriverManager.getConnection部分之前。