无法在 play 2.4 中连接到 Oracle 数据库
Cannot connect to Oracle db in play 2.4
很多天以来,我一直在尝试使用 Play 2.4 框架连接到 Oracle 数据库,但我所有的尝试都是徒劳的。因此,为此寻求一些解决方案。
我在 application.conf
中尝试了以下配置,但 none 有效:
db.default.driver=oracle.jdbc.driver.OracleDriver
db.default.username=user_name
db.default.password=password
1) db.default.url="jdbc:oracle:thin:@host_name:host_port:sid"
2) db.default.url="jdbc:oracle:thin://@host_name:host_port/sid"
3) db.default.url="jdbc:oracle:thin://host_name:host_port/sid"
4) db.default.url="jdbc:oracle:thin:@host_name:host_port:sid"
db.default.host=host_name
5) db.default.url="jdbc:oracle:thin://@host_name:host_port/sid"
db.default.host=host_name
6) db.default.url="jdbc:oracle:thin://host_name:host_port/sid"
db.default.host=host_name
以下是我在每种情况下遇到的异常:
CreationException: Unable to create injector, see the following errors:
1) Error in custom provider, Configuration error: Configuration error[Cannot connect to database [default]]
while locating play.api.db.DBApiProvider
while locating play.api.db.DBApi
for field at play.api.db.NamedDatabaseProvider.dbApi(DBModule.scala:80)
while locating play.api.db.NamedDatabaseProvider
at com.google.inject.util.Providers$GuicifiedProviderWithDependencies.initialize(Providers.java:149)
at play.api.db.DBModule$$anonfun$namedDatabaseBindings.apply(DBModule.scala:34):
Binding(interface play.api.db.Database qualified with
QualifierInstance(@play.db.NamedDatabase(value=default)) to
ProviderTarget(play.api.db.NamedDatabaseProvider@5968e9a8))
(via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon)
Caused by: Configuration error: Configuration error[Cannot connect to database [default]]
at play.api.Configuration$.configError(Configuration.scala:178)
at play.api.Configuration.reportError(Configuration.scala:829)
at play.api.db.DefaultDBApi$$anonfun$connect.apply(DefaultDBApi.scala:48)
at play.api.db.DefaultDBApi$$anonfun$connect.apply(DefaultDBApi.scala:42)
at scala.collection.immutable.List.foreach(List.scala:318)
at play.api.db.DefaultDBApi.connect(DefaultDBApi.scala:42)
at play.api.db.DBApiProvider.get$lzycompute(DBModule.scala:72)
at play.api.db.DBApiProvider.get(DBModule.scala:62)
感谢大家看我的问题,最后参考网上的帖子和play 2.4的文档,下面是对这个问题的回答:
a) Url format for oracle will be as below:
db.default.url="jdbc:oracle:thin:@host_name:host_port:sid"
b) Add property as:
db.default.hikaricp.connectionTestQuery="SELECT 1 FROM DUAL"
# above query will be used to check connection, this is required.
谢谢,
普拉迪普夏尔马
很多天以来,我一直在尝试使用 Play 2.4 框架连接到 Oracle 数据库,但我所有的尝试都是徒劳的。因此,为此寻求一些解决方案。
我在 application.conf
中尝试了以下配置,但 none 有效:
db.default.driver=oracle.jdbc.driver.OracleDriver
db.default.username=user_name
db.default.password=password
1) db.default.url="jdbc:oracle:thin:@host_name:host_port:sid"
2) db.default.url="jdbc:oracle:thin://@host_name:host_port/sid"
3) db.default.url="jdbc:oracle:thin://host_name:host_port/sid"
4) db.default.url="jdbc:oracle:thin:@host_name:host_port:sid"
db.default.host=host_name
5) db.default.url="jdbc:oracle:thin://@host_name:host_port/sid"
db.default.host=host_name
6) db.default.url="jdbc:oracle:thin://host_name:host_port/sid"
db.default.host=host_name
以下是我在每种情况下遇到的异常:
CreationException: Unable to create injector, see the following errors: 1) Error in custom provider, Configuration error: Configuration error[Cannot connect to database [default]] while locating play.api.db.DBApiProvider while locating play.api.db.DBApi for field at play.api.db.NamedDatabaseProvider.dbApi(DBModule.scala:80) while locating play.api.db.NamedDatabaseProvider at com.google.inject.util.Providers$GuicifiedProviderWithDependencies.initialize(Providers.java:149) at play.api.db.DBModule$$anonfun$namedDatabaseBindings.apply(DBModule.scala:34): Binding(interface play.api.db.Database qualified with QualifierInstance(@play.db.NamedDatabase(value=default)) to ProviderTarget(play.api.db.NamedDatabaseProvider@5968e9a8)) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon) Caused by: Configuration error: Configuration error[Cannot connect to database [default]] at play.api.Configuration$.configError(Configuration.scala:178) at play.api.Configuration.reportError(Configuration.scala:829) at play.api.db.DefaultDBApi$$anonfun$connect.apply(DefaultDBApi.scala:48) at play.api.db.DefaultDBApi$$anonfun$connect.apply(DefaultDBApi.scala:42) at scala.collection.immutable.List.foreach(List.scala:318) at play.api.db.DefaultDBApi.connect(DefaultDBApi.scala:42) at play.api.db.DBApiProvider.get$lzycompute(DBModule.scala:72) at play.api.db.DBApiProvider.get(DBModule.scala:62)
感谢大家看我的问题,最后参考网上的帖子和play 2.4的文档,下面是对这个问题的回答:
a) Url format for oracle will be as below:
db.default.url="jdbc:oracle:thin:@host_name:host_port:sid"
b) Add property as:
db.default.hikaricp.connectionTestQuery="SELECT 1 FROM DUAL"
# above query will be used to check connection, this is required.
谢谢, 普拉迪普夏尔马