如何从clojure中的关系数据库中获取一个_model_数据?

时间:2010-06-18 04:50:50

标签: mysql postgresql functional-programming clojure compojure

我在推特以及#clojure IRC频道上提出了这个问题,但没有回复。

有几篇关于Clojure-for-Ruby程序员的文章,Clojure-for-lisp程序员......但缺少的部分是 ActiveRecord程序员的Clojure

有关于与MongoDB,Redis等进行交互的文章 - 但这些都是当天结束时的重要价值商店。但是,来自Rails背景,我们习惯于在继承方面思考数据库 - has_many,polymorphic,belongs_to等。

关于Clojure / Compojure + MySQL(ffclassic)的几篇文章 - 深入研究sql。当然,ORM可能会导致阻碍不匹配,但事实仍然是在思考ActiveRecord之后,很难以其他方式思考。

我相信关系数据库非常适合面向对象的范例,因为它们本质上就是集合。像activerecord这样的东西非常适合建模这些数据。 对于例如一个博客 - 简单地说

class Post < ActiveRecord::Base
  has_many :comments
 end


 class Comment < ActiveRecord::Base
   belongs_to :post
 end

如何在Clojure中对此进行建模 - 这是如此严格的反OO?如果提到所有函数式编程语言,问题可能会更好,但我更感兴趣的是Clojure观点(以及Clojure示例)

3 个答案:

答案 0 :(得分:18)

答案 1 :(得分:5)

此问题暂时没有得到解答,但Korma http://sqlkorma.com是另一个有助于减少SQL和Clojure之间不一致的项目。它最近已经开始使用,应该可以使用更新的Clojure版本。

答案 2 :(得分:0)

已经启动了一个基于clojure.contrib.sql构建的新的微型SQL DSL。这是Github在轻量级76位的重量。

在作者的博客上有很多关于DSL背后的例子和理论,链接在他的Github个人资料(新用户SO超链接限制bah)上。它的设计允许SQL被抽象成更加惯用的Clojure,我觉得。