首页 > 代码库 > Clojure操作mysql

Clojure操作mysql

在Eclipse中新建一个Clojure工程clj01

clojure 操作mysql需要依赖mysql-connector-java、clojure-contrib与java.jdbc三个jar包。

project.clj配置信息如下:配置完:dependencies 保存,系统会自动下载所配置的jar包信息。

(defproject clj01 "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.2.3"]                 [org.clojure/clojure-contrib "1.2.0"]                 [mysql/mysql-connector-java "5.1.26"]                 ])

新建mysql.clj

(ns clj01.mysql  (:require [clojure.java.jdbc :as sql]));配置参数(def mysql-db{               :classname "com.mysql.jdbc.Driver"                :subprotocol "mysql"               :subname "//127.0.0.1:3306/test"                :user "root"              :password "" });链接数据库(sql/with-connection mysql-db);插入数据(sql/with-connection mysql-db   (sql/insert-records :user                      {:name "测试1" :age 25}                      {:name "测试2" :age 26}));删除记录(sql/with-connection mysql-db  (sql/delete-rows :user ["id > ?" 8]));更新记录(sql/with-connection mysql-db  (sql/update-values :user                      ["id = ?" 8]                     {:name "测试" :age 35}));查询记录(println (sql/with-connection mysql-db           (sql/with-query-results rows             ["select id,name,age from user where age > ?" 25]             (dorun (map #(println %) rows)))))

表结构:

mysql> desc user;+-------+-------------+------+-----+---------+----------------+| Field | Type        | Null | Key | Default | Extra          |+-------+-------------+------+-----+---------+----------------+| id    | int(11)     | NO   | PRI | NULL    | auto_increment || name  | varchar(10) | YES  |     | NULL    |                || age   | int(11)     | YES  |     | NULL    |                |+-------+-------------+------+-----+---------+----------------+

问题:在第一次运行代码时控制台提示如下异常:

otFoundException Could not locate clojure/java/jdbc__init.class or clojure/java/jdbc.clj on classpath:   clojure.lang.RT.load (RT.java:443)

重启Eclipse之后问题解决,好像是Eclipse工具问题引起的。

 

Clojure操作mysql