将 Postgres 与 Grails 一起使用
Posted
技术标签:
【中文标题】将 Postgres 与 Grails 一起使用【英文标题】:Using Postgres with 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"
【问题讨论】:
是的。我已经尝试了几个版本,但我很确定我有一个合适的 【参考方案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以上是关于将 Postgres 与 Grails 一起使用的主要内容,如果未能解决你的问题,请参考以下文章
如何将 must_not 与 ElasticSearch + Grails 的空 JSON 属性一起使用?
无法让 Elasticsearch 插件与 Grails 3 一起使用
无法使用 Postgres DB 启动 Grails 3.3.8 应用程序