Design & Development

clojure 로 간단한 db 프로그래밍

Ubutu 11.04 에 Clojure 공부를 위해 기본 환경 설정을 하였습니다.

우선 openjdk 대신 sun jdk 로 기본 jdk 변경 작업 진행.

$sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$sudo apt-get update
$sudo apt-get install sun-java6-jdk

다음은 clojure 관련 설치 작업. ( 참고 : Clojure, Swank, and Leiningen with Emacs on Linux )

( 자바 개발자를 위해 Eclipse 로 비유하자면 slime/swank 는 clojure 개발을 위한 플러긴, Leiningen 은 Maven 과 같은 코드 빌드/배포 툴 정도로 생각하면 될 듯 싶네요 )

jdbc를 이용해서 DB에 접근, 사용하는 샘플 소스를 짜보려고 몇가지 추가 작업을 좀 무식하게 수작업으로 처리해보았습니다.

우선 oracle jdbc 드라이버를 홈디렉토리에 다운로드한 후 다음 명령으로 maven 리파지토리에 추가하였습니다.

%> mvn install:install-file -Dfile=ojdbc14.jar -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.2.0 -Dpackaging=jar -DgeneratePom=true

jdbc 드라이버를 프로그램에서 사용하기 위해서는 CLASSPATH 에 추가하거나 등등의 방법이 있겠으나 공부를 위해 환경 설치 참고한 문서가 Leiningen 이용한 방식으로 되어 있어서 이를 그대로 활용하기로 하고 project.clj 에 다음과 같이 jdbc 드라이버 부분을 추가하였습니다.(외부 라이브러리를 참조하여야 할 경우 Leiningen 에서는 project.clj에 dependencies 로 설정해주면 됩니다)

(defproject test-project “1.0.0-SNAPSHOT”
:description “clojure study”
:dependencies [[org.clojure/clojure “1.2.1”]
[org.clojure/clojure-contrib “1.2.0”]
[com.oracle/ojbc14 “10.2.0.2.0”]]
:dev-dependencies [[swank-clojure “1.2.1”]])

외부 라이브러리를 프로젝트 lib 디렉토리에 내려받기 위해 다음 명령어를 재실행.

%> lein deps

그리고 간단한 코드로 테스트.

(use ‘clojure.contrib.sql)

(def db {:classname “oracle.jdbc.driver.OracleDriver”
:subprotocol “oracle:thin”
:subname “@db주소:포트:SID”
:user “????”
:password “???” })

(with-connection db
(with-query-results rs [ “select * from users where user_id =’1000001′” ]
(dorun (map #(println %) rs))))

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s