首页 > 解决方案 > intellij scala java.lang.classnotfoundexception oracle.jdbc.driver.oracledriver

问题描述

运行 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)并在 Project Structure > Project Settings > Modules 中添加了我的 JAR(出现在 Libraries 选项卡中),但我的错误仍然发生。

我试图改变oracle.jdbc.driver.OracleDriveroracle.jdbc.OracleDriver但它改变了任何东西。

我知道我的数据库连接的配置很好,因为我可以通过 DB Browser 连接并测试一些 sql 请求。

我错过了什么 ?我是 Scala 的新手

标签: javaoraclescalajdbc

解决方案


我解决了我的问题!

感谢@Mark Rotteveel 的解决方案:

如果您通过终端执行,那么您负责声明 scala 的类路径(以及 scalac 的类路径),例如 scala -classpath ScalaJdbcConnectSelect


推荐阅读