微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

clojure使用postgis

 

主要关注访问pg。不关心其他db

1 clojure.java.jdbc

http://clojure-doc.org/articles/ecosystem/java_jdbc/reusing_connections.html 这个最广,需要配合不同DB
[org.clojure/java.jdbc "0.7.9"]
[org.postgresql/postgresql "42.2.5"]

问题是,每次查询都要单独连接一次db, 原生只支持3种复用方式:

Using with-db-connection

Using with-db-transaction

Using Connection Pooling(第三方)

没有通常的connection cursor 机制,不知道怎么想的……

懒得搭理,不贴代码了。

2 jdbc.core

:dependences

[funcool/clojure.jdbc "0.9.0"]

使用时

(require '[jdbc.core :as jdbc])

https://funcool.github.io/clojure.jdbc/latest/#introduction

这个中规中矩的。有通常的connection cursor ,但是连接db时用的db-spec的定义和前面那个不一样,另搞了一套,也没什么可说的。平淡无奇,感觉就是py里的psycopg2

3 clj-postgresql

https://github.com/remodoy/clj-postgresql

这个因为专门针对pg所以有点很多:

1 支持用环境变量PGHOST, PGPORT, PGUSER PGDATABASE定义连接参数 免去硬编码,这对运行在docker容器里的应用尤其方便。docker-compose里设置就好了。

2 居然支持postgis的类型!

 

那么就用它了!

:dependences
[clj-postgresql "0.7.0"]

 

 

每个库在github上星都是区区几百而已。用Clojure的人真的很少啊

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐