База данных Oracle в Clojure - PullRequest
       0

База данных Oracle в Clojure

0 голосов
/ 08 октября 2018

Я пытался получить соединение с базой данных Oracle от Clojure, но безуспешно.Мой файл project.clj:

(defproject db-examples "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
        :url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.8.0"]
             [yesql "0.5.2"]
             [org.clojure/java.jdbc "0.4.2"]
             [org.postgresql/postgresql "9.4-1201-jdbc41"]]
:resources-paths ["resources/ojdbc6.jar"])

Я добавил ojdbc.jar вручную в папку ресурсов, которую создал в папке своего проекта.

Вот подробности моего подключения:

(def db {:classname "oracle.jdbc.OracleDriver"
     :subprotocol "oracle"
     :subname "//localhost:1521/my_database"
     :user "user"
     :password "password"})

и моя функция с запросом:

(defn get-all []
 (sql/query db ["select * from my_table"]))

Когда я вызываю эту функцию, я получаю эту ошибку: вызвано java.sql.SQLException Не найдено подходящего драйвера для jdbc: oracle: // localhost: 1521 /my_database

        DriverManager.java:  689  java.sql.DriverManager/getConnection
        DriverManager.java:  208  java.sql.DriverManager/getConnection
                  jdbc.clj:  255  clojure.java.jdbc/get-connection
                  jdbc.clj:  176  clojure.java.jdbc/get-connection
                  jdbc.clj:  832  clojure.java.jdbc/db-query-with-resultset
                  jdbc.clj:  790  clojure.java.jdbc/db-query-with-resultset
                  jdbc.clj:  866  clojure.java.jdbc/query
                  jdbc.clj:  838  clojure.java.jdbc/query
               RestFn.java:  425  clojure.lang.RestFn/invoke
                  core.clj:   12  db-examples.core/get-all
                  core.clj:   11  db-examples.core/get-all
                  core.clj:   14  db-examples.core/eval4272

1 Ответ

0 голосов
/ 08 октября 2018

У вас неверный формат строки подключения - чтобы иметь правильную строку подключения JDBC, ваше имя должно быть в формате "thin: @server_ip: port: sid".

(def db {:classname "oracle.jdbc.OracleDriver"
     :subprotocol "oracle"
     :subname "thin:@localhost:1521:my_database"
     :user "user"
     :password "password"})

Более подробную информацию можно найтиздесь: https://en.wikibooks.org/wiki/Clojure_Programming/Examples/JDBC_Examples#Oracle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...