gpt4 book ai didi

java - clojure 与 mysql 和 java

转载 作者:行者123 更新时间:2023-11-29 03:24:45 24 4
gpt4 key购买 nike

当我尝试使用以下代码从 clojure 对 MySQL 数据库执行查询时,不确定为什么会出现此错误:

user=> (mysql.core/list-users)

ClassNotFoundException mysql.core java.net.URLClassLoader$1.run (URLClassLoader.java:366)

这是我的 project.clj 文件

(defproject mysql "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.5.1"]
[org.clojure/java.jdbc "0.3.3"]
[mysql/mysql-connector-java "5.1.25"]
[postgresql/postgresql "8.4-702.jdbc4"]
[org.xerial/sqlite-jdbc "3.7.2"]
[java-jdbc/dsl "0.1.0"]
])

这是我的 core.clj 文件

(ns mysql.core
(:require [clojure.java.jdbc :as sql]))

(def db {:classname "com.mysql.jdbc.Driver"
:subprotocol "mysql"
:subname "//localhost:3306/dummy"
:user "idf"
:password "pwd"})

(defn list-users []
(sql/with-connection db
(sql/with-query-results rows
["select * from user"]
(println rows))))

这里有一些有用的东西(唯一的事情是你必须在没有项目文件的情况下使 deps 正确):

$ mysql -u root
mysql> create database clojure_test;
grant all on clojure_test.* to clojure_test@localhost identified by "clojure_test”;
use clojure_test;
CREATE TABLE fruit (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20), appearance VARCHAR(20), cost DECIMAL(13,2));

lein repl
user=> (require '[clojure.java.jdbc :as j])
user=> (def mysql-db {:subprotocol "mysql" :subname "//127.0.0.1:3306/clojure_test" :user "clojure_test" :password "clojure_test"})
user=> (j/insert! mysql-db :fruit {:name "Apple" :appearance "rosy" :cost 24} {:name "Orange" :appearance "round" :cost 49})
user=> (j/query mysql-db ["select * from fruit where appearance = ?" "rosy"] :row-fn :cost)

最佳答案

看起来你在 repl 中运行代码,你需要更改命名空间和加载文件:

1、通过(ns mysql.core)
改变repl的命名空间2、运行(load-file path-to-file)

编辑:

另一个解决方案是在repl中执行(use 'mysql.core),然后你就可以运行你的代码了。

关于java - clojure 与 mysql 和 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21591657/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com