我正在使用Clojure,YeSQL和Postgres。在Clojure中使用PGobject
我有一個簡單的Postgres表是這樣的:
CREATE TABLE foo (
id SERIAL PRIMARY KEY,
num INT NOT NULL DEFAULT 1,
txt TEXT NOT NULL
);
我有,看起來像這樣一個文件的查詢:
SELECT (id, num, txt) FROM foo WHERE id = :id
我預先加載數據庫:
INSERT INTO foo (num, txt) VALUES (5, 'potato');
當我通過yesql加載查詢並在repl中運行它時,我得到以下結果:
=> (yesql/defquery get-record "foo.sql")
nil
=> (def rec (get-record 1))
({:row #<PGobject (1,5,"potato")>})
我完全不知道如何與PGobject裏的工作......我試圖尋找一些指令(https://jdbc.postgresql.org/documentation/publicapi/org/postgresql/util/PGobject.html),但顯然我不知道足以讓一個如何使用任何的存在感工作。
我希望得到的東西就像一張地圖回來,也許:
{:id 1
:num 5
:txt "potato"}
但我剛剛得到這個PGobject裏的事情,我不知道如何獲取數據出來。是否有某種可用的方法可以讓我獲得,例如,像(:num rec)
這樣的num或txt(這正是我所期望的我可以做到的)。
即使我可以弄清楚如何將PGobject變成一些clojure數據類型,我承認我會很高興。幫幫我?