mysql - Grails + MySQL : No suitable driver found

标签 mysql grails groovy

我正在运行 grails 2.4.0,并且正在尝试使用 groovy.sql 访问 MySQL 数据库。我知道这个问题会在搜索中弹出,但这些解决方案不起作用。我不断地...

No suitable driver found for jdbc:mysql://...
  • 我已经检查并仔细检查了该网址,其格式正确。
  • 我已将 mysql-connector-java-5.1.30-bin.jar 放入我的项目库中
  • 我还在 BuildConfig 的依赖项 block 中取消注释了“runtime 'mysql:mysql-connector-java:5.1.29'”(不与 lib jar 一起使用)

错误永远不会改变。我在这里做错了什么?

例如,我有一个服务类,其中包含一个方法,我想连接到 MySQL 数据库并在不使用 Grails 数据源机制的情况下提取数据。

import groovy.sql.Sql

class TestService {

def doStuff() {
    def sql = Sql.newInstance('jdbc:mysql://localhost:3306/my_db', 'username', 'password', 'com.mysql.jdbc.Driver')
    sql.eachRow("select * from some_table") {...

最佳答案

无需取消注释,但将其注释掉,并且如果您已将其添加到 Lib 文件夹中,则无需告诉 grails 您有 mysql 依赖项。 并确保您拥有的可能是非伪造的驱动程序 jar。我使用了以下内容:

dialect = "org.hibernate.dialect.MySQL5InnoDBDialect"

mysql-connector-java-5.1.30-bin.jar

好的,如果这些有效的话。

您是否尝试过以这种方式声明连接字符串并尝试使用如下数据源

def db = [url:'jdbc:mysql://localhost:3306/my_db?autoreconnect=true', user:'root',
         password:'',driver:'com.mysql.jdbc.Driver']

def sql = Sql.newInstance(db.url, db.user, db.password, db.driver)

要测试驱动程序是否存在问题或配置错误,请使用实际数据源设置进行测试,假设您的数据源有

dataSource {
    dialect = "org.hibernate.dialect.MySQL5InnoDBDialect"
    driverClassName = "com.mysql.jdbc.Driver"
    username = "root"
    password = "root"
}

这也可以通过传递来实现

datasource to Sql.newInstance(datasource)

也可以尝试将此作为替代:

import java.sql.Connection
import java.sql.DriverManager
import javax.sql.DataSource
import groovy.sql.Sq

driver = com.mysql.jdbc.Driver // can be ommited

Connection conn = DriverManager.getConnection(
    'url:'jdbc:mysql://<server>/<database>?user=<username>&password=<password>');

Sql sql = new Sql(conn);

也试试这个

@GrabConfig(systemClassLoader = true)

在您@Grab 之后,只需:

@Grab('mysql:mysql-connector-java:5.1.25')
@GrabConfig(systemClassLoader = true)
import groovy.sql.Sql

def sql = Sql.newInstance(
    'jdbc:mysql://localhost/books', 
    'root',
    '', 
    'com.mysql.jdbc.Driver'
)

如果没有任何工作,请将 mysql jar 文件放在这个 groovy 类下,这可能很愚蠢,但一定没有理由不工作......干杯!!

Reference 1 : && Reference 2 :

关于mysql - Grails + MySQL : No suitable driver found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23831823/

相关文章:

php - 使用php将mysql表数据转换为字符串

javascript - 我可以为 grails 对象定义一个 javascript 变量吗?

java - Gradle 找不到tools.jar

java - 在 Grails 应用程序中管理 Java 依赖项?

php - 使用 php 删除行时出现问题

mysql - varchar(50) 数据类型包含格式为 dd/mm/yyyy 00 :00:00. 000 的时间戳,现在将其转换为 MySQL 时间戳

grails - 在GANT中使用xmlProperty任务

unit-testing - 在Spock中使用GroovyMock或类似方法模拟静态方法

php - 如何根据现有时间戳使用 PHP/MySQL 创建统计工具?

grails - 更新cron作业的触发器