首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用slick 3.0.1连接到Oracle DB?

如何用slick 3.0.1连接到Oracle DB?
EN

Stack Overflow用户
提问于 2015-12-06 18:46:02
回答 3查看 3.1K关注 0票数 2

我开始学习和实验了。

我正在尝试连接到由我们的DBA建立的oracle数据库。

然而,我遇到了问题,我无法连接。

以下是我迄今所做的工作:

oracledev ={ url = "jdbc:oracle:thin:@//vdevdbms2:4208/TPSDEV.IADB.ORG“驱动程序= com.typesafe.slick.driver.oracle.OracleDriver connectionPool =禁用keepAliveConnection = true }

在我的构建中有以下几点

解析器+= "Typesafe Releases“( "http://repo.typesafe.com/typesafe/maven-releases/”libraryDependencies ++= Seq)( "com.smartlogic.osclient“%”信号量-OS-客户端“%”信号量-3.7.2“,"com.typesafe.slick”%%“slick-扩展”% "3.1.0","org.slf4j“% "slf4j-nop”% "1.6.4“)

到目前为止,代码很简单:

代码语言:javascript
运行
复制
object SlickSpike extends App {

  val db = Database.forConfig("oracledev")

}

我得到以下错误:

线程"main“中的异常:禁用java.lang.ClassLoader.findClass(ClassLoader.java:530) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at slick.util.ClassLoaderUtil$$anon$1.loadClass(ClassLoaderUtil.scala:12) at slick.jdbc.JdbcDataSource$.loadFactory$1(JdbcDataSource.scala:30) at slick.jdbc.JdbcDataSource$.forConfig(JdbcDataSource.scala:39)在slick.jdbc.JdbcBackend$DatabaseFactoryDef$class.forConfig(JdbcBackend.scala:268) at slick.jdbc.JdbcBackend$$anon$3.forConfig(JdbcBackend.scala:33) at SlickSpike$.delayedEndpoint$SlickSpike$1(SlickSpike.scala:16) at SlickSpike$delayedInit$body.apply(SlickSpike.scala:14) at scala.Function0$class.apply$mcV$sp(Function0.scala:34) at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12) at scala.App$$anonfun$main$1.App(App.scala:76)在scala.App应用$$anonfun$main$1.应用程序( scala.collection.immutable.List.foreach(List.scala:381) at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35) at scala.App$class.main(App.scala:76) at SlickSpike$.main(SlickSpike.scala:14) at SlickSpike.main(SlickSpike.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)

如果我删除这一行:**

connectionPool =禁用

**

然后,我得到以下错误:

线程"main“中的异常: java.lang.ClassLoader.findClass(ClassLoader.java:530) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at slick.util.ClassLoaderUtil$$anon$1.loadClass(ClassLoaderUtil.scala:12) at slick.jdbc.JdbcDataSource$.loadFactory$1(JdbcDataSource.scala:30) at slick.jdbc.JdbcDataSource$.forConfig(JdbcDataSource中的slick.jdbc.hikaricp.HikariCPJdbcDataSource$( slick.jdbc.JdbcBackend$DatabaseFactoryDef$class.forConfig(JdbcBackend.scala:268) at slick.jdbc.JdbcBackend$$anon$3.forConfig(JdbcBackend.scala:33) at SlickSpike$.delayedEndpoint$SlickSpike$1(SlickSpike.scala:16) at SlickSpike$delayedInit$body.apply(SlickSpike.scala:14) at scala.Function0$class.apply$mcV$sp(Function0.scala:34) at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12) at scala.App) at $$anonfun$main$1.Apply(App.scala:76)scala.collection.immutable.List.foreach(List.scala:381) at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35) at scala.App$class.main(App.scala:76) at SlickSpike$.main(SlickSpike.scala:14) at SlickSpike.main(SlickSpike.scala)

我做错什么了?

我只想拥有一个连接池10,并连接到数据库,但我不知道如何设置它。有人能帮忙吗?

Edit2

我解决了最初的问题,但我仍然有问题,不能使所有的事情都起作用。

我这样改变我的身材:

libraryDependencies ++= Seq( "org.slf4j“% "slf4j-api”% "1.7.13","org.slf4j“%”slf4j-简单“% "1.7.13","com.smartlogic.osclient”%“信号量-OS-客户端”%“信号量-3.7.2”排除(“org.slf4j”,"slf4j-log4j12"),"com.typesafe.slick“%% "slick”% "3.1.0“% "com.typesafe.slick”%“slick-ojdbc6”% "3.1.0“"com.typesafe.slick”% "slick-hikaricp“% "3.1.0”"com.oracle“% "ojdbc6”% "11.2.0.2.0“)

我诉诸于添加slick-hikaricp,,即使我不打算最初使用。我现在也明白了,配置中的oracle驱动程序是实际的oracle驱动器,而不是光滑的驱动程序。这实际上反映在我对配置所做的更改中,如下所示:

oracledev ={ url = "jdbc:oracle:thin:@//vdevdbms2:4208/TPSDEV.IADB.ORG“driver = oracle.jdbc.OracleDriver // connectionPool = keepAliveConnection = true //databaseName = "BRIKPOOLPARTYDEV”用户=“*”密码=“*”}

问题:

1-在使用甲骨文时,默认情况下需要slick-hikaricp吗?实际上,如果我不添加它并注释掉connectionPool =禁用,在我的示例中,在取消注释的情况下,程序不会编译。

我还是联系不上,是不是漏掉了什么?

请帮帮忙

EN

回答 3

Stack Overflow用户

发布于 2015-12-06 20:35:08

oracle、db2和ms驱动程序都不是免费的。有一个单独的‘光滑-扩展’包,其中包含驱动程序,您可以用于开发。但是你得用冷现金来生产它们。

票数 1
EN

Stack Overflow用户

发布于 2015-12-09 19:04:54

您应该下载并将ojdbc7.jar放在根项目(lib)中的一个文件夹中,并重新构建它。

票数 1
EN

Stack Overflow用户

发布于 2019-08-27 14:41:23

应该禁用connectionPool配置中的条目,而不是禁用。

在决定加载什么JdbcDataSource时,使用此配置项。禁用配置项尝试加载名称为禁用的JdbcDataSourceFactoryfactory。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34121225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档