使用Groovy连接MySQL

4
我正在尝试使用下面的Groovy代码在MAC OS 10.10.5 Yosemite上连接到MySQL数据库。
import groovy.sql.Sql

try{
    def dbURL = 'jdbc:mysql://localhost:3306/sakila'
    def dbUserName = 'root'
    def dbPassword = 'Orange@27'
    def dbDriver = 'com.mysql.jdbc.Driver'
    log.info('Good')
    def db = Sql.newInstance(dbURL,dbUserName,dbPassword,dbDriver)
}catch(Exception e){
    log.info('DB Error')
    log.info(e.getMessage())
}finally{

}

但是当我执行这段代码时,我看到了以下信息。
Sat Aug 13 15:09:14 EDT 2016:INFO:Good
Sat Aug 13 15:09:14 EDT 2016:INFO:DB Error
Sat Aug 13 15:09:14 EDT 2016:INFO:No suitable driver found for jdbc:mysql://localhost:3306/sakila

我已将groovy-sql-2.1.1.jarmysql-connector-java-5.1.39-bin.jar保存在文件夹路径为/Applications/SoapUI-5.2.1/bin/ext/内。
请你帮我解决这个问题,谢谢!

你是如何启动它的? - chrylis -cautiouslyoptimistic-
@chrylis 我使用此文件 /Applications/SoapUI-5.2.1/bin/soapui.command 启动 SoapUI。 - Srinivasan Ramu
2个回答

5
为了使用JDBC驱动程序,您需要进行注册。有多种方法可以实现这一点:

使用DriverManager

您可以通过DriverManager注册一个JDBD驱动程序:
import java.sql.DriverManager

DriverManager.registerDriver(new com.mysql.jdbc.Driver())

// Remaining Groovy code here

Class.forName

这是一种有点巧妙的方式,但你也可以动态加载驱动程序的类:

Class.forName('com.mysql.jdbc.Driver')

// Remaining Groovy code here

Groovy Grape

由于您正在使用Soap UI运行Groovy代码,因此此选项可能对您无效,但为了完整性,请参考以下内容:

@Grab('mysql:mysql-connector-java:5.1.39')
@GrabConfig(systemClassLoader=true)

// Remaining Groovy code here

当我使用Class.forName('com.mysql.jdbc.Driver')时,我会得到"NoClassFoundException"错误,并且使用以下代码行时,我会得到"No suitable driver found for jdbc:mysql://localhost:3306/sakila"错误。import java.sql.DriverManagerDriverManager.registerDriver(new com.mysql.jdbc.Driver()) - Srinivasan Ramu
那么您还没有将MySQL jar文件放置在类路径中。/Applications/SoapUI-5.2.1/bin/ext/可能不是正确的文件夹。 - Emmanuel Rosa
将文件mysql-connector-java-5.1.39-bin.jar从/Applications/SoapUI-5.2.1/bin/ext/复制到/Applications/SoapUI-5.2.1/lib解决了问题。谢谢。 - Srinivasan Ramu

1
  • 用户库应该被复制到SOAPUI_HOME/bin/ext目录下,在这种情况下,将mysql jdbc库复制到上述目录中。
  • SoapUI以不同的方式注册jdbc驱动程序。请使用以下语句按照其文档进行注册:
//注册驱动
com.eviware.soapui.support.GroovyUtils.registerJdbcDriver( "com.mysql.jdbc.Driver")
//使用连接详情获取sql实例。
Sql.newInstance(dbURL,dbUserName,dbPassword)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接