在clojure中选择PreparedStatements

时间:2014-02-27 09:26:40

标签: mysql clojure prepared-statement

我正在使用Clojure.java.jdbc进行数据库操作。

我想使用Clojure预处理语句选择一些行。 我是这样做的,

(jdbc/db-do-prepared db "select * from `users` where name='?'" ["hari"])

但会抛出错误,

Caused by: java.sql.BatchUpdateException: Can not issue executeUpdate() for SELECTs

那我该怎么办呢?

1 个答案:

答案 0 :(得分:2)

db-do-prepared只能返回更新计数,用于执行准备好的突变,例如update。它不接受返回结果集的查询,例如select

[org.clojure/java.jdbc "0.3.3"]中,最新版本query用于返回结果集的查询。对于准备值,不需要在查询中引用。此外,在新版本中,您不需要带有值的向量。

(jdbc/query db
            ["select * from users where name=? and surname=?" "hari" "krishnan"])