sql接続
今日は、clojureからSQLServerに接続する機会があったので、メモとしてそのコードを残しておく。
まず、起動用のスクリプトを準備:
#! /bin/sh # # ファイル名: clojure # clojure起動スクリプト # 引数には、クラスパスに追加するファイルリストを与える CLASSPATH=$CLOJURE_HOME/clojure.jar:$CLOJURE_LIB/clojure-contrib.jar for cp in $@ do CLASSPATH=$CLASSPATH:$cp done java -cp $LIB clojure.lang.Repl
次に起動:
$ clojure sqljdbc.jar
残りはclojureコード:
(require 'clojure.contrib.sql) (use 'clojure.contrib.sql) ;; DB設定 (def db { :classname "com.microsoft.sqlserver.jdbc.SQLServerDriver" :subprotocol "sqlserver" :subname "//127.0.0.1;user=anonymous;databaseName=anonymous_db"}) ;; 簡易テスト用の関数 (defn sql-query [query-string] (with-connection db (with-query-results res [query-string] (doall res)))) ;;; 実行 > (sql-query "SELECT name FROM name_table") --> ({:name "a"} {:name "b"} {:name "c"}) > (map :name (sql-query "SELECT name FROM name_table")) --> ("a" "b" "c")