我正在运行 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
toSql.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 类下,这可能很愚蠢,但一定没有理由不工作......干杯!!
关于mysql - Grails + MySQL : No suitable driver found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23831823/