我正在使用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
那我该怎么办呢?
答案 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"])