2009-02-19 38 views
8

我知道在像Java這樣的純面向對象的語言中,使用像Hibernate這樣的ORM通常是有意義的。但是在Clojure或Common LISP中編寫CRUD類型的功能時,我會做什麼?函數式編程和數據庫交互的最佳實踐是什麼?

傳遞SQL作爲第一階函數?但是在HTML生成代碼中沒有SQL非常難看?

感謝,

Olek

回答

3

Common Lisp是不是自覺FP語言。 Clojure可以使用Hibernate。

對於Common Lisp:databases。這是一個persistent object one。並且here是教程的第一部分,它將其與Hunchentoot(一個CL web服務器和動態網頁工具包)一起使用。 CL中的SQL(它看起來比實際更長,因爲SQL是水平格式化的而CL不是)。如果你喜歡的話,this guy正在研究一個以粗糙爲目標的Web框架(使用CLSQL和Elephant,已經鏈接到),並且關注弧面挑戰。

編輯:a recent answer在此擴大。

+0

CL-SQL是非常好的,並展示瞭如何面向對象和功能可以一起工作。 – Svante 2009-02-19 13:35:08

1

烏爾/網絡描述可能是有趣的,雖然它不是口齒不清基於:http://plv.csail.mit.edu/ur/

由於從他們的網站報價:

烏爾/ Web支持構建由SQL數據庫支持的動態Web應用程序。標準庫的簽名是這樣的:在很廣泛的意義上,良好類型的Ur/Web程序「不會出錯」。他們不僅不會在特定頁面幾代崩潰,但他們也可能不會:

  • 從任何類型的代碼注入攻擊遭受
  • 返回無效HTML
  • 含死內部應用程序的鏈接
  • HTML表單與其處理程序期望的字段不匹配
  • 包含客戶端代碼,這些代碼對遠程Web服務器提供的「AJAX」風格的服務做出了不正確的假設
  • 嘗試無效的SQL查詢
  • 使用不當編組或拆封通信與SQL數據庫或瀏覽器和Web服務器之間
相關問題