그냥 마무리하기 위해, 여기 비추천 최신 clojure.java.jdbc
API 변경 (글을 쓰는 시점에서 0.3.0-alpha5)와 함께 제라드의 답변을두고, 나를 위해 작동 무엇 일반적으로 사용되는 일부 패턴 (예 : with-query-results
).
먼저 예를 들어, 당신이 걱정하는 모든 지원되지 않는 유형에 대한 추가 핸들러를 정의 연결이 열려있는 동안
이
(extend-type org.postgresql.jdbc4.Jdbc4Array
json/JSONWriter
(-write [o out]
(json/-write (.getArray o) out)))
(extend-type java.sql.Timestamp
json/JSONWriter
(-write [date out]
(json/-write (str date) out)))
다음 (적어도 org.postgresql.jdbc4.Jdbc4Array
중요 임) JSON 인코딩을 수행 할 with-open
를 사용 :
(with-open [conn (jdbc/get-connection db)]
(json/write-str
(jdbc/query {:connection conn}
["SELECT * FROM ..."]))))
나는 이것이
clojure.java.jdbc
API의 진화로 변경됩니다 생각하지만, 순간, 그것을 작동합니다. 당신이하지 다음을 따라
with-open
뭔가의 범위를 유지하기 위해 필요하기 때문에
네,하지만 하위 구조 (행 필드 중 하나)이므로 어떻게할까요? – cjauvin
그러면 처리기가 가장 좋은 옵션이 될 수도 있습니다 – Jared314
감사합니다. 좋은 해결책 인 것 같습니다. 불행히도 "org.postgresql.util.PSQLException :이 연결이 닫혔습니다."라는 메시지가 나타납니다. (추가적인 유용한 오류 메시지없이), 어떤 생각? – cjauvin