【问题标题】:Using Postgres with Grails将 Postgres 与 Grails 一起使用
【发布时间】:2010-12-04 09:39:00
【问题描述】:

有人让 Grails 与 Postgres 一起工作吗?我用过这个tutorial,一切似乎都是有道理的,对我来说是正确的。但是,当我“grails run-app”时出现此错误

Cannot create JDBC driver of class 'org.postgresql.Driver' for connect URL 'jdbc:postgres://10.0.0.21/tribes'
java.sql.SQLException: No suitable driver

我的数据源文件是

dataSource {
    pooled = true
    driverClassName = "org.postgresql.Driver"
    dialect = org.hibernate.dialect.PostgreSQLDialect
}
hibernate {
    cache.use_second_level_cache=true
    cache.use_query_cache=true
    cache.provider_class='com.opensymphony.oscache.hibernate.OSCacheProvider'
}
// environment specific settings
environments {
    development {
        dataSource {
            dbCreate = "update"
            url = "jdbc:postgres://10.0.0.21:5432/tribes"
            username = "grails"
            password = "grails"
        }   
    }   
    test {
        dataSource {
            dbCreate = "update"
            url = "jdbc:postgres://10.0.0.21:5432/tribes"
            username = "grails"
            password = "grails"
        }   
    }   
    production {
        dataSource {
            dbCreate = "update"
            url = "jdbc:postgres://10.0.0.21:5432/tribes"
            username = "grails"
            password = "grails"
        }   
    }   
}

【问题讨论】:

  • 是的。我已经尝试了几个版本,但我很确定我有一个合适的

标签: postgresql grails


【解决方案1】:

来自FAQ:“[如果]您收到一个运行时错误,提示“未找到合适的驱动程序”,则可能是传递给 DriverManager.getConnection 的 URL 格式不正确或不正确”。那你的有什么问题吗?好吧,教程中的示例如下所示:

jdbc:postgresql://localhost:5432/grails

你的看起来像这样:

jdbc:postgres://10.0.0.21:5432/tribes

我猜是那些少了两个字母给你带来了麻烦。

【讨论】:

    【解决方案2】:

    在 BuildConfig.groovy 文件中取消注释外部 maven repositories 然后添加这一行

    runtime 'postgresql:postgresql:9.0-801.jdbc4'dependencies 部分

    【讨论】:

    • 这一行对于让 Grails 与 Postgresql 对话至关重要。但是,如果您已经将 Postgresql JDBC jar 复制到您的项目/lib 目录,则不需要取消注释任何外部 Maven 存储库。此外,在执行 grails run-app 之前,您需要创建在 JDBC url 中引用的数据库。
    • 更新这个,因为它已经有一段时间没有回答了,并且postgresql驱动程序的版本已经升级。当前驱动程序(截至 2014 年 1 月)是:runtime 'org.postgresql:postgresql:9.3-1100-jdbc4' 这是针对 JDK 1.6 的。如果您仍在运行 JDK 1.5,则需要将最后一个“jdbc4”更改为“jdbc3”。欲了解更多信息,请参阅jdbc.postgresql.org/download.html
    猜你喜欢
    • 2019-08-28
    • 1970-01-01
    • 2018-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 2015-04-03
    • 1970-01-01
    相关资源
    最近更新 更多