edbc是Emacs-LispDatabaseCoectivity的缩 写 ,是从Emacs-CGI项目中独立出来的一个子项目,为EmacsLisp访问数据库提供简洁、统一的接口!
在其他语言(比如Java)中访问数据库,最终SQL语句都会转成字符串的形式,即涉及到字符串拼接、引号转义等丑陋的代码。在edbc中,利用Lisp强大的可扩展性,把SQL直接嵌到语言中,就像原生就提供的一样。例如下面连接Sqlite的例子:
(edbc-with-coect((url"users.db"))(let((id1)(ame"Joe")(ickame"redraimet"));Purgetable(edbcdeletefromusers);Equalsisertitousers(id,ame)values(1,'Joe')osqlite(edbcisertitousers(id,ame)values(:id,:ame));Equalsupdateuserssetame='redraimet'whereid=1osqlite(edbcupdateuserssetame=:ickamewhereid=:(idetityid));Returs((("id"."1")("ame"."redraimet")))(edbcselect*fromusers)))目前EDBC已支持Sqlite和MySQL两种数据库。用户参考edbc-mysql.el可以很轻松支持其他数据库。










评论