Groovy java.sql.SQLException: 找不到适合 jdbc:sqlserver:// 的驱动程序
Groovy java.sql.SQLException: No suitable driver found for jdbc:sqlserver://
我对 groovy 很陌生,对我得到的 Groovy java.sql.SQLException
很困惑。
这是我的代码
// https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc
@Grapes(
@Grab(group='com.microsoft.sqlserver', module='mssql-jdbc', version='7.2.2.jre8')
)
import groovy.sql.*
def username = xxx, password = yyy
// Create connection to MSSQL with classic JDBC DriverManager.
def db = Sql.newInstance("jdbc:sqlserver://localhost:1433;database=tempdb;", username, password, 'com.microsoft.sqlserver.jdbc.SQLServerDriver')
相同的 SQL JDBC 连接字符串 ("jdbc:sqlserver://localhost:1433;database=tempdb;", 'com.microsoft.sqlserver.jdbc.SQLServerDriver'
) 适用于我的其他情况,例如 Java 或 JMeter,但不适用于 groovy.这就是我得到的:
> groovy groovy-sql-test.groovy
Picked up _JAVA_OPTIONS: -Xms512M -Xmx1g
Caught: java.sql.SQLException: No suitable driver found for jdbc:sqlserver://localhost:1433;database=tempdb;
java.sql.SQLException: No suitable driver found for jdbc:sqlserver://localhost:1433;database=tempdb;
at groovy-sql-0.run(groovy-sql-0.groovy:11)
这是Win10下的运行。
我也试过了
groovy -cp D:\path\to\my\jars groovy-sql-test.groovy
在 D:\path\to\my\jars
目录中,我同时拥有 sqljdbc41.jar
和 mssql-jdbc-7.2.2.jre8.jar
文件。
您必须使用@GrabConfig(systemClassLoader=true)
才能使用该系统
类加载器,从而获得 jdbc 驱动程序。
来自https://groovy-lang.org/databases.html#_connecting_using_grab
The @GrabConfig
statement is necessary to make sure the system
classloader is used. This ensures that the driver classes and system
classes like java.sql.DriverManager
are in the same classloader.
我对 groovy 很陌生,对我得到的 Groovy java.sql.SQLException
很困惑。
这是我的代码
// https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc
@Grapes(
@Grab(group='com.microsoft.sqlserver', module='mssql-jdbc', version='7.2.2.jre8')
)
import groovy.sql.*
def username = xxx, password = yyy
// Create connection to MSSQL with classic JDBC DriverManager.
def db = Sql.newInstance("jdbc:sqlserver://localhost:1433;database=tempdb;", username, password, 'com.microsoft.sqlserver.jdbc.SQLServerDriver')
相同的 SQL JDBC 连接字符串 ("jdbc:sqlserver://localhost:1433;database=tempdb;", 'com.microsoft.sqlserver.jdbc.SQLServerDriver'
) 适用于我的其他情况,例如 Java 或 JMeter,但不适用于 groovy.这就是我得到的:
> groovy groovy-sql-test.groovy
Picked up _JAVA_OPTIONS: -Xms512M -Xmx1g
Caught: java.sql.SQLException: No suitable driver found for jdbc:sqlserver://localhost:1433;database=tempdb;
java.sql.SQLException: No suitable driver found for jdbc:sqlserver://localhost:1433;database=tempdb;
at groovy-sql-0.run(groovy-sql-0.groovy:11)
这是Win10下的运行。
我也试过了
groovy -cp D:\path\to\my\jars groovy-sql-test.groovy
在 D:\path\to\my\jars
目录中,我同时拥有 sqljdbc41.jar
和 mssql-jdbc-7.2.2.jre8.jar
文件。
您必须使用@GrabConfig(systemClassLoader=true)
才能使用该系统
类加载器,从而获得 jdbc 驱动程序。
来自https://groovy-lang.org/databases.html#_connecting_using_grab
The
@GrabConfig
statement is necessary to make sure the system classloader is used. This ensures that the driver classes and system classes likejava.sql.DriverManager
are in the same classloader.