edbc统一数据库访问接口

联合创作 · 2023-09-30 19:25

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)))

目前 EDBC 已支持 Sqlite 和 MySQL 两种数据库。用户参考 edbc-mysql.el 可以很轻松支持其他数据库。

浏览 17
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报