【发布时间】:2020-05-07 19:34:13
【问题描述】:
当我运行我的 scala 代码时出现此消息错误:
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
这是我的代码:
object ScalaJdbcConnectSelect extends App {
val url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=XXX)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=XXX)(PORT=1521))(FAILOVER=on)(LOAD_BALANCE=on))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XXX)))"
val driver = "oracle.jdbc.driver.OracleDriver"
val username = "XXX"
val password = "XXX"
var connection:Connection = _
try {
Class.forName(driver)
connection = DriverManager.getConnection(url, username, password)
val statement = connection.createStatement
val rs = statement.executeQuery("SELECT * FROM TABLE WHERE ID = 1")
while (rs.next) {
val host = rs.getString("ID")
val user = rs.getString("Field")
println("ID = %s, Field = %s".format(host,user))
}
} catch {
case e: Exception => e.printStackTrace
}
connection.close
}
我下载了 ojdbc6.jar(数据库 oracle 版本为 11)并在项目结构 > 项目设置 > 模块中添加了我的 JAR(出现在库选项卡中),但我的错误仍然发生。
我尝试将oracle.jdbc.driver.OracleDriver 更改为oracle.jdbc.OracleDriver,但它改变了任何东西。
我知道我的数据库连接配置很好,因为我可以通过 DB Browser 连接并测试一些 sql 请求。
我错过了什么吗?我是 Scala 新手
【问题讨论】:
-
你如何运行你的scala代码?该错误表明驱动程序不在运行时类路径中。
-
使用 intellij 的终端,我执行“scalac ScalaJdbcConnectSelect”,然后执行“scala ScalaJdbcConnectSelect”。我已经通过 ProjectSettings > Dependencies 选项卡添加了 ojdbc6.jar,然后单击“+”添加我的 Jar。 (我在我的帖子中解释过)。如何检查运行时类路径上的内容?
-
如果你通过终端执行,那么你有责任为
scala(以及scalac)声明类路径,例如scala -classpath <list of jars> ScalaJdbcConnectSelect,另见Include jar file in Scala interpreter跨度> -
是的! scala -classpath
- ScalaJdbcConnectSelect 解决了我的问题!