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