intellij scala java .lang.classnotfoundexception oracle .jdb c .driver.oracledriver - PullRequest
1 голос
/ 21 января 2020

У меня появляется это сообщение об ошибке при запуске моего scala кода:

java .lang.ClassNotFoundException: oracle .jdb c .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, но это что-то меняет.

Я знаю, что конфигурация подключения к моей базе данных хороша, потому что я могу подключиться через Обозреватель БД и протестируйте некоторый запрос sql.

Я что-то пропустил? Я новичок с Scala

Ответы [ 2 ]

0 голосов
/ 22 января 2020

Я решил свою проблему !!

Спасибо @Mark Rotteveel за решение:

Если вы выполняете через терминал, то вы несете ответственность за объявление пути к классам для scala (и для scalac в этом отношении), например scala -classpath ScalaJdbcConnectSelect

0 голосов
/ 21 января 2020

Очевидно, что проблема связана с classpath. Обычно я буду просить разъяснений относительно управления вашими зависимостями, но форум не разрешает

Попробуйте импортировать oracle .jdb c .driver.OracleDriver в ваш пакет

...