最初我想问为什么我在结果集上调用 (seq) 作为空性测试时遇到问题,但一些研究表明这显然是因为 jdbc 光标没有移动到任何地方。很好,花花公子。如果我不知道它的名字,有没有办法在结果集上调用 next() ?我可以将它绑定到 clojure 中的符号,但我无法弄清楚如何从那里调用该方法。
编辑:如果不清楚,我指的是 java resultSet 方法 next(),而不是 clojure (next)
编辑#2 这是一个代码片段:
(defn user-exists? [email]
(with-connection db
(with-query-results res ["SELECT guid from users WHERE email=?" email]
(.next res)
(seq res))))
(感谢.next 的帮助,顺便说一句......还没有做太多的 java 互操作)
尽管如此,如果查询没有返回任何内容,使用 (seq) 会引发 NullPointerException。我想知道是否有更清洁,惯用的方式来做到这一点?