我正在努力让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!
使用该功能我哪里出错了?