Emacs Lisp 统一数据库访问接口:edbc

jopen 11年前

edbc 是 Emacs-Lisp Database Connectivity 的缩  ,是从 Emacs-CGI 项目中独立出来的一个子项目,问 Emacs Lisp 访问数据库提供简洁、统一的接口!

在其他语言中(比如Java)中访问数据库,最终SQL语句都是以字符串的形式提供的,会出现字符串拼接、引号转移等丑陋的代码。在 edbc 中,利用 Lisp 强大的可扩展性,直接把 SQL 嵌到语言中,就像它原生就支持的一样。例如下面连接 Sqlite 的例子:

(edbc-with-connect ((url "users.db"))    (let ((id 1)          (name "Joe")          (nickname "redraiment"))      ; Purge table      (edbc delete from users)      ; Equals insert into users (id, name) values (1, 'Joe') on sqlite      (edbc insert into users (id, name) values (:id, :name))      ; Equals update users set name = 'redraiment' where id = 1 on sqlite      (edbc update users set name = :nickname where id = :(identity id))      ; Returns ((("id" . "1") ("name" . "redraiment")))      (edbc select * from users)))

目前已经支持 Sqlite 和 MySQL 两种数据库。并且,参考 edbc-mysql.el 可以很轻松支持其他任意数据库。

项目主页:http://www.open-open.com/lib/view/home/1356484352526