我如何使用clojure jdbc执行?

时间:2013-10-26 23:24:56

标签: sqlite jdbc clojure

我很难让jdbc/execute!函数提交我对sqlite数据库所做的任何更改。

例如,

user=> (jdbc/execute! sqlite-db ["insert into person (second_name) values ('Gandhi');"])
nil
返回

nil并且未插入行。但是,我知道该函数以某种方式连接到数据库,因为我可以使用无效的表名并得到错误:

user=> (jdbc/execute! sqlite-db ["insert into ABCDEFG (second_name) values ('Gandhi');"])

SQLException [SQLITE_ERROR] SQL error or missing database (no such table: ABCDEFG)  org.sqlite.DB.newSQLException (DB.java:383)

jdbc库还包含jdbc/insert!函数,我可以使用它正确插入。但是,我想使用execute!函数,因为在我的应用程序中我使用了更复杂的语句,因此我认为我将提供参数化的sql字符串。

使用execute!函数在哪里出错?

1 个答案:

答案 0 :(得分:3)

在回答时 - > Using execute! with no params to insert a row fails on SQLite< - 被列为仍然是一个未解决的问题,需要在java.jdbc的beta 0.3.0中解决