日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

clojure with postgres

發布時間:2023/12/9 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 clojure with postgres 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?主要關注訪問pg。不關心其他db

1?clojure.java.jdbc

https://github.com/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 korma

這個更類似SQLalchmey,訪問哪個table前,還要聲明一下table格式,瘋了! 就是為了擺脫這種OO風格才投奔lisp的啊啊啊!

?

4 clj-postgresql

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

這個因為專門針對pg,所以優點很多:

1 支持用環境變量PGHOST,?PGPORT,?PGUSER PGDATABASE隱式定義連接 免去db-spec這種硬編碼,不但節省代碼行數,也對運行在docker容器里的應用特別方便。docker-compose里設置就好了。

2 在兼容clojure.java.jdbc的query語句前提下,簡潔實現了類似cursor的connection pool?pg/pool,可以直接

(j/query @db ["select * from schema.table"])

2?居然支持postgis的類型!

?這才是真正節約廢話套話,專注表達的庫

那么就用它了!

:dependences [clj-postgresql "0.7.0"]

?這個庫發布好幾年了,算上我的一票,在github只有區區91顆星而已。和PY動輒上千相比,用Clojure的人真的很少啊

?

總結

每個庫為了避免直接寫SQL,都搞一套微型、閹割版的DSL,我實在不喜歡這樣。

其實SQL本身表達能力已經非常好了,連接數據庫也是個標準問題,為什么寧可自己發明DSL小方言,不去學SQL大外語。 不可理解。

?

SQL的背后是集合、數論,一階謂詞邏輯;

而LISP的背后是lambda演算。

其實正好優勢互補:

SQL存儲狀態,或者說事實的集合,解決基于集合的計算與查詢,? 特別煩的復雜查詢直接交給lisp就好了;

而LISP抽象動詞,最簡潔地表達AST,最適合表達復制的分支流程。

——后端這2個元老一結合,優勢互補之后,就沒OO這個半吊子什么事啦!

其實OO作為基本類型str等等,或者作為GUI web component? 或者u3d里的GameObject 都是很好的

但是類是非常少的。

類是基礎設施,是有豐富app開發經驗的framework作者給app開發新手提供的基礎設施的抽象.

絕大多數單例類都可以不存在。程序也不應該從class寫起.

?

?

?

?

?

?

轉載于:https://www.cnblogs.com/xuanmanstein/p/10795496.html

總結

以上是生活随笔為你收集整理的clojure with postgres的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。