我在使用MySQL运行简单的Clojure / Compojure项目时遇到问题。
这是我的项目定义:
(defproject picenum "compojure"
:description "Ascoli ❤ Clojure"
:url "http://localhost:3000/"
:dependencies [[org.clojure/clojure "1.7.0"]
[compojure "1.4.0"]
[ring/ring-json "0.4.0"]
[korma "0.4.2"]
[log4j "1.2.17"]
[mysql/mysql-connector-java "5.1.37"]
[org.clojure/java.jdbc "0.4.2"]
[c3p0/c3p0 "0.9.1.2"]
[hiccup "1.0.5"]]
:plugins [[lein-ring "0.9.7"]]
:ring {:handler picenum.handler/app}
:profiles
{:dev {:dependencies [[ring-mock "0.1.5"]]}})
当我跑步时,我得到:
java.io.FileNotFoundException: Could not locate clojure/java/jdbc/sql__init.class or clojure/java/jdbc/sql.clj on classpath.
升级了大部分依赖项后,它停止了工作。 我错过了什么?
编辑: 这是处理程序命名空间定义
(ns picenum.handler
(:import com.mchange.v2.c3p0.ComboPooledDataSource)
(:use compojure.core
ring.middleware.json
ring.util.response
korma.db
korma.core
hiccup.core
hiccup.util
hiccup.page)
(:require [compojure.handler :as handler]
[compojure.route :as route]
[clojure.java.jdbc :as jdbc]
[clojure.java.jdbc.sql :as sql]))
答案 0 :(得分:0)
sql.clj
库上没有java.jdbc
,
请删除您文件中的[clojure.java.jdbc.sql :as sql]
。
答案 1 :(得分:0)
正如number23_cn所示,删除slug
:要求停止提供有关不存在[clojure.java.jdbc.sql :as sql]
的错误
clojure-doc.org提供明确的information how to use the sql connector。
在project.clj中添加依赖项:
sql.clj
要求命名空间定义中的数据库连接器:
:dependencies [[org.clojure/java.jdbc "0.4.2"]
[mysql/mysql-connector-java "5.1.38"]]
定义数据库连接:
(:require [clojure.java.jdbc :as j])
查询数据库:
(def db-map {:subprotocol "mysql"
:subname "//localhost:3306/SCHEME"
:user "DB_USER"
:password "DB_USER_PASS"})
找到更多的例子 http://clojure-doc.org/articles/ecosystem/java_jdbc/using_sql.html