以下 Groovy 脚本可以在命令行中正常工作。(我成功获得了连接。)
// ---- jdbc_test.groovy
import java.sql.*
Class.forName("com.mysql.jdbc.Driver")
def con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test",
"root",
"password")
println con
> groovy -cp lib\mysql-connector-java-5.1.25-bin.jar script\jdbc_test.groovy
com.mysql.jdbc.JDBC4Connection@6025e1b6
但是,如果将相同的脚本加载到 GroovyConsole (2.4.3) 中并运行 - 添加mysql-connector-java-5.1.25-bin.jar
using 'Script' | '将 Jar(s) 添加到 ClassPath' - 它失败了:
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/test
at java_sql_DriverManager$getConnection.call(Unknown Source)
at jdbc_test.run(jdbc_test.groovy:3)
我添加到 GroovyConsole 中的类路径并尝试过的所有其他包或类都有效。Groovy 的类加载和 DriverManager 的工作方式是否有一些意想不到的交互?
有没有解决的办法?我正在尝试使用 GroovyConsole 以交互方式测试一些 JDBC 代码(一个函数库,每个函数都将 Connection 作为其第一个参数)。
更新:该Class.forName()
部分似乎工作正常。如果我'脚本' | '清除脚本上下文'并在 GroovyConsole 中重新运行脚本,我得到:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
如果我重新添加mysql-connector-java-5.1.25-bin.jar
,我会回到获取:
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/test