我正在尝试连接到ESXI服务器上托管的现有数据库,似乎无法正确找到驱动程序。
我使用的代码如下:
new ConnectToDb('jdbc:sqlserver:sqltest3:CI-ESXI', 'USER', 'PASSWORD', 'com.microsoft.sqlserver.jdbc.SQLServerDriver')
ConnectToDb(String url, String user, String password, String driver) {
Class.forName(driver)
database = groovy.sql.Sql.newInstance(url, user, password, driver)
}
我收到以下错误:
线程“主”中的异常java.sql.SQLException:没有合适的驱动程序找到jdbc:sqlserver:sqltest3:CI-ESXI
而且,我尝试了以下Java风格的代码:
void connect(String url, String user, String password, String driver) throws SQLException {
if (null == stmt || stmt.isClosed()) {
// Create a connection to the database
if (database_url == null) {
throw new SQLException("Cannot connect to database, connection URL is null.")
}
Properties database_infos = new Properties()
database_infos.put("user", user)
database_infos.put("password", password)
database_infos.put("driver", driver)
Class.forName(driver)
connection = DriverManager.getConnection(url, database_infos)
stmt = connection.createStatement()
}
}
哪个返回相同的异常。
实际上,直接调用DriverManager.getDriver(driver)
会返回相同的异常。
通过以下方式将驱动程序添加到POM.xml文件:
<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>7.4.1.jre8</version>
</dependency>
它被添加到类路径中,并且可以通过以下方式将其导入任何java文件中import com.microsoft.sqlserver.jdbc.SQLServerDriver
,而不会出现错误
我正在Groovy项目中使用IntelliJ IDEA,但是我可以在纯Java项目中的Eclipse中重现该错误。因此,它似乎不是基于语言/ IDE的。
所以现在我对此有点头绪,知道吗?
所以我发现了,错误消息完全令人误解,因为问题出在应该为URL的URL中:
'jdbc:sqlserver://sqltest3'
如果//
不存在,则connectedProperties返回为null,并且不提供驱动程序,因此会产生错误消息。