【发布时间】:2015-08-29 01:28:27
【问题描述】:
以下 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 之后 | '将 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() 部分似乎工作正常。如果我'脚本' | 'Clear Script Context' 并在 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
【问题讨论】:
标签: mysql jdbc groovy groovy-console