【发布时间】:2010-11-16 09:08:55
【问题描述】:
最初我想问为什么我在结果集上调用 (seq) 作为空性测试时遇到问题,但一些研究表明这显然是因为 jdbc 光标没有移动到任何地方。很好,花花公子。如果我不知道它的名字,有没有办法在结果集上调用 next() ?我可以将它绑定到 clojure 中的符号,但我无法弄清楚如何从那里调用该方法。
编辑:如果不清楚,我指的是java resultSet方法next(),而不是clojure(next)
edit#2 这是一个代码 sn-p:
(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。我想知道是否有更清洁、惯用的方法来做到这一点?
【问题讨论】:
-
能否贴出相关代码sn-p?也许你错过了一些简单的东西。此外,如果您将 ResultSet 绑定到某个东西,
(.next resultset)将是您在其上调用next()的方式。