Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在groovy中连接到mysql时未找到合适的驱动程序_Mysql_Jdbc_Groovy - Fatal编程技术网

在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