Connecting to MySQL using Groovy

二次信任 提交于 2019-12-10 18:47:36

问题


I'm trying to connect to a MySQL database using the below Groovy code on MAC OS 10.10.5 Yosemite

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{

}

But when I execute this code, I see the below message

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

I have kept the groovy-sql-2.1.1.jar, mysql-connector-java-5.1.39-bin.jar inside the folder location /Applications/SoapUI-5.2.1/bin/ext/

Could you please help me in resolving this issue?


回答1:


In order to use a JDBC driver you need to register it. There are a number of ways to do this:

Using DriverManager

You can register a JDBD driver with a DriverManager:

import java.sql.DriverManager

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

// Remaining Groovy code here

Class.forName

Kind of a hack, but you can also dynamically load the driver's class:

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

// Remaining Groovy code here

Groovy Grape

Because you're using Soap UI to run the Groovy code, this option may not work for you, but here it is for completeness:

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

// Remaining Groovy code here



回答2:


  • User libraries should be copied under SOAPUI_HOME/bin/ext directory, In this case, copy the mysql jdbc library in the above directory.
  • SoapUI registers jdbc drivers differently. Use below statement to register as per its documentation:
//Register driver
com.eviware.soapui.support.GroovyUtils.registerJdbcDriver( "com.mysql.jdbc.Driver")
//Get the sql instance using the connection details.
Sql.newInstance(dbURL,dbUserName,dbPassword)


来源:https://stackoverflow.com/questions/38936206/connecting-to-mysql-using-groovy

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!