我对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')相同的("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 dir中,我有sqljdbc41.jar和mssql-jdbc-7.2.2.jre8.jar文件。
发布于 2020-12-04 21:59:10
您必须使用@GrabConfig(systemClassLoader=true)来使用系统类加载器,从而获取jdbc驱动程序。
来自https://groovy-lang.org/databases.html#_connecting_using_grab
@GrabConfig语句是确保使用系统类加载器所必需的。这确保驱动程序类和系统类(如java.sql.DriverManager)位于同一个类加载器中.
。
https://stackoverflow.com/questions/65150299
复制相似问题