【发布时间】:2015-06-29 21:50:16
【问题描述】:
我正在使用 Grails 迈出第一步,并尝试使用 Oracle Database 12c 创建一个 hello world 应用程序。
不幸的是,www.grails.org 上关于数据库特定部分的教程文档似乎并不全面(例如,与我现在使用多年的 Ruby on Rails 相比)——尤其是在非 H2 方面数据库。
最近有一些关于如何使用 Oracle Database 12c 启动和运行 Grails 3.0.2 应用程序的教程吗?
我主要对 a) 将相应的 JDBC 驱动程序放在哪里以及 b) 数据库配置应该是什么样子感兴趣。
对于一个)
grails.org 谈到了一个“lib”目录,但没有解释它存在于哪里或应该在哪里创建。其他消息来源说,“lib”目录已经过时了,因为有几个 Grails 版本,并且 JDBC 驱动程序应该通过来自某些存储库的依赖项来加载——这对于闭源 Oracle JDBC 驱动程序显然是不可能的。
对于 b)
目前,我在 <my-app>/grails-app/conf/DataSource.groovy 为 Oracle 12c 创建了基本数据库配置:
dataSource {
url = "jdbc:oracle:thin:@my-server:my-port:my-sid"
driverClassName = "oracle.jdbc.OracleDriver"
dialect = "Oracle10gDialect"
username = "my-user"
password = "my-pass"
}
对于一个简单的 hello world 应用程序来说足够了吗?
到目前为止,我在网络上发现的所有内容在 Grails 方面(涵盖版本 2.x 或 1.x)和/或 Oracle 方面(涵盖版本 10* 或 11*)都已过时。
感谢任何提示!
更新(仅作记录,并将以下 cmets 汇总):
1)
编辑<myapp>/grails-app/conf/application.yml。
hibernate:
jdbc:
use_get_generated_keys: true
(...)
dataSource:
pooled: true
jmxExport: true
driverClassName: oracle.jdbc.OracleDriver
username: <myuser>
password: <mypassword>
(...)
environments:
development:
dataSource:
dbCreate: create
url: jdbc:oracle:thin:@<myserver>:<myport>:<mysid>
(...)
2)
获取适合您的 JDK 和 Oracle DB 版本的相应 Oracle JDBC 驱动程序。就我而言(openJDK 7 + Oracle 12c),这是来自 Oracle 网站的 ojdbc7.jar 版本 12.1.0.2.0:http://www.oracle.com/technetwork/database/features/jdbc/index.html
3)
将此 JDBC 驱动程序放在 <myapp>/lib 中(如果该目录尚不存在,则创建此目录)。
4)
将此 JDBC 驱动程序的详细信息添加到 <myapp>/build.gradle 的依赖项部分(必要时进行修改以适应您的环境/版本):
(...)
dependencies {
(...)
runtime "com.oracle.ojdbc7:12.1.0.2.0"
(...)
}
(...)
5)
创建一个 Maven 工件(根据需要进行修改以适应您的环境/版本):
mvn install:install-file -Dfile=lib/ojdbc7.jar -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=12.1.0.2.0 -Dpackaging=jar -DgeneratePom=true
6)
将 JDBC 驱动程序的路径添加到您的 CLASSPATH:export CLASSPATH=/<somewhere>/<myapp>/lib/ojdbc7.jar
7)
享受...
【问题讨论】:
-
需要第6步吗?我以为lib中的所有东西都是默认启动配置导入的。