在groovy中连接到mysql时未找到合适的驱动程序
注释的代码运行良好,我可以获得驱动程序的实例在groovy中连接到mysql时未找到合适的驱动程序,mysql,jdbc,groovy,Mysql,Jdbc,Groovy,注释的代码运行良好,我可以获得驱动程序的实例 但是当我使用 import com.mysql.jdbc.jdbc2.optional.MysqlDataSource import com.mysql.jdbc.* import groovy.sql.* /* the commented code works fine MysqlDataSource ds = new MysqlDataSource() ds.user = 'root'
但是当我使用
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource
import com.mysql.jdbc.*
import groovy.sql.*
/* the commented code works fine
MysqlDataSource ds = new MysqlDataSource()
ds.user = 'root'
ds.password = ""
ds.url = 'jdbc:mysql://localhost:3306/test'
Sql sql=Sql.newInstance(ds)
sql.close()
*/
d=Class.forName("com.mysql.jdbc.Driver").newInstance()
println d.class // class com.mysql.jdbc.Driver
Sql sql=Sql.newInstance(
'jdbc:mysql://localhost:3306/test',
'root',
"",
'com.mysql.jdbc.Driver'
)
它抛出一个异常:
java.sql.SQLException:找不到适合jdbc的驱动程序:mysql://localhost:3306/test
我无法修复它,有男孩来帮我吗?Java中的JDBC驱动程序管理查看JDBC JAR的系统类加载器 因此,要在GroovyConsole中运行mysql访问脚本,您需要使用:
Sql sql=Sql.newInstance(
'jdbc:mysql://localhost:3306/test',
'root',
"",
'com.mysql.jdbc.Driver'
)
在脚本中,或者需要在类路径上使用jar启动控制台,方法是使用以下命令运行它:
@GrabConfig( systemClassLoader=true )
@Grab( 'mysql:mysql-connector-java:5.1.27' )
我认为没有办法告诉addjarstopath选项使用systemClassLoader:-(如何将驱动程序添加到类路径?@tim_-yates我使用groovyConsole并使用“
addjartoclasspath
”命令。添加“@GrabConfig(systemClassLoader=true)@Grab(group='mysql',module='mysql-connector-java',version='5.1.27')
“编写代码将解决问题,但我仍然不知道为什么…因为Java中的JDBC驱动程序管理查看JDBC jar的系统类加载器。因此,您要么需要使用@GrabConfig
,要么需要在类路径上用jar启动控制台,即:groovyconsole-cp mysql-connector-Java-5.1.27-bin.jar
.我认为没有办法告诉add jars to path
选项来使用systemClassLoader:-(@tim_-yates是的,就像你说的那样,Thx^作为答案添加:-)很好。这里也有同样的问题,现在没问题了!谢谢-也适用于MariaDB客户端,例如'org.MariaDB.jdbc:MariaDB java客户端:2.2.3'。但是…我发现在(Cygwin)运行自包含脚本(不是Gradle)提示我确实需要它…但是在Eclipse中我不需要这个@GrabConfig
东西,事实上,包含它会导致这个错误:org.codehaus.groovy.control.multiplecompilentErrorException:启动失败:转换期间的一般错误:找不到适合grab的类加载器“…Grrr。。。
groovyconsole -cp mysql-connector-java-5.1.27-bin.jar