Я изо всех сил пытаюсь заставить функцию 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!
?