如何使用 clojure jdbc 执行?
Posted
技术标签:
【中文标题】如何使用 clojure jdbc 执行?【英文标题】:How do I use clojure jdbc execute? 【发布时间】:2013-10-26 23:24:55 【问题描述】:我正在努力让 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!
函数我哪里出错了?
【问题讨论】:
执行!需要在事务中才能提交? 这两种情况都会发生,但正如 PositiveLogic 所提到的,我现在看到这是一个已知问题。 【参考方案1】:在给出这个答案时 -> Using execute! with no params to insert a row fails on SQLite
【讨论】:
以上是关于如何使用 clojure jdbc 执行?的主要内容,如果未能解决你的问题,请参考以下文章
如何做批处理 jdbc/insert!和 jdbc/更新!在 Clojure 中使用 postgresql?
如何使用 clojure.java.jdbc 插入包含时间戳值的行?
如何使用 next.jdbc 将 SQLite 中的 bool 列读入 bool Clojure 值? SQLite 将布尔值存储为 0/1