六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 6|回复: 0

Clojure-JVM上的函数式编程语言(17)数据库 作者: R. Mark Volkmann

[复制链接]

升级  34%

31

主题

31

主题

31

主题

秀才

Rank: 2

积分
101
 楼主| 发表于 2013-2-3 11:17:40 | 显示全部楼层 |阅读模式
原帖地址:http://java.ociweb.com/mark/clojure/article.html#Databases
作者:R. Mark Volkmann 
译者:RoySong
数据库

    Clojure Contrib中的sql库简化了对关系型数据库的访问,它支持事务提交回滚、预声明、创建和删除表、插入
更新删除记录和运行条件查询。下面的例子连接到一个Postgres数据库并运行了查询。注释中增加了对mysql数据库
的支持。
(use 'clojure.contrib.sql)(let [db-host "localhost"      db-port 5432 ; 3306      db-name "HR"]  ; The classname below must be in the classpath.  (def db {:classname "org.postgresql.Driver" ; com.mysql.jdbc.Driver           :subprotocol "postgresql" ; "mysql"           :subname (str "//" db-host ":" db-port "/" db-name)           ; Any additional map entries are passed to the driver           ; as driver-specific properties.           :user "mvolkmann"           :password "cljfan"})  (with-connection db ; closes connection when finished    (with-query-results rs ["select * from Employee"] ; closes result set when finished      ; rs will be a non-lazy sequence of maps,      ; one for each record in the result set.      ; The keys in each map are the column names retrieved and      ; their values are the column values for that result set row.      (doseq [row rs] (println (row :lastname))))))    clj-record库中提供了持久化的API,这个是从ROR的ActiveRecord库获得灵感的。要获得更多的信息,请访问
http://github.com/duelinmarkers/clj-record/tree/master
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表