9

我知道在像 Java 这样的纯面向对象语言中,使用像 Hibernate 这样的 ORM 通常是有意义的。但是在 Clojure 或 Common LISP 中编写 CRUD 类型的功能时我会怎么做?

将 SQL 作为一阶函数传递?但是在 HTML 生成代码中使用 SQL 不是很丑陋吗?

谢谢,

奥莱克

4

3 回答 3

3

Common Lisp 不是一种自觉的 FP 语言。Clojure 可以只使用 Hibernate。

对于 Common Lisp:数据库。这是一个持久对象 one。这是教程的第一部分,它与 Hunchentoot、CL 网络服务器和动态网页工具包一起使用。CL 中的 SQL可能看起来像这样(看起来比实际更长,因为 SQL 是水平格式化的,而 CL 不是)。如果你愿意,这个人正在开发一个旨在简洁的 Web 框架(使用 CLSQL 和 Elephant,已经链接到),着眼于弧线挑战。

编辑:最近的答案对此进行了扩展。

于 2009-02-19T08:22:21.977 回答
1

Ur/Web 可能很有趣,尽管它不是基于 lisp:http: //plv.csail.mit.edu/ur/

正如他们的网站所引用的:

Ur/Web 支持构建由 SQL 数据库支持的动态 Web 应用程序。标准库的签名使得类型良好的 Ur/Web 程序在非常广泛的意义上“不会出错”。它们不仅不会在特定页面生成期间崩溃,而且它们也可能不会:

  • 遭受任何类型的代码注入攻击
  • 返回无效的 HTML
  • 包含无效的应用程序内链接
  • HTML 表单与其处理程序预期的字段不匹配
  • 包括对远程 Web 服务器提供的“AJAX”样式服务做出错误假设的客户端代码
  • 尝试无效的 SQL 查询
  • 在与 SQL 数据库或浏览器和 Web 服务器之间的通信中使用不正确的编组或解组
于 2015-04-09T18:29:52.487 回答
0

另一个答案中描述了一组替代的 Common Lisp 工具

于 2009-02-19T17:29:04.463 回答