嗨,Sean!
HoneySQL非常棒,紧凑且实用。阅读和调整它对我来说是一件非常愉悦的事情:)
另外,我没有玩过你的next.jdbc,但绝对在我的计划之内。
我的任务是 следующее
我需要将具有相同元数据形状(表和列)的多个honey sql插入命令批量插入到单个jdbc/execute!调用中。
示范
1. {:insert-into [:my-table]
:values [{:col1 "str1"
:col2 "str2"}]}
2. {:insert-into [:my-table]
:values [{:col1 "str1"
:col2 nil}]} <--------- 这里我们有nil值
honey sql给了我以下结果
1. "insert into "my-table" ("col1","col2") VALUES (?, ?)" ["str1" "str2"]
2. "insert into "my-table" ("col1","col2") VALUES (?, NULL)" ["str1"] <----- NULL已经内联
jdbc/execute!期望sql和sql-params的向量,所以我 want to提交一个sql-statement和sql-params的向量
"insert into "my-table" ("col1","col2") VALUES (?, ?)" and [["str1" "str2"] ["str1"]],但是我应该有相同的params "layout"。
因此,我需要覆盖默认的honeysql行为,即内联'NULL'(和布尔值),以将它们提升到sql参数中。
结果
1. "insert into "my-table" ("col1","col2") VALUES (?, ?)" ["str1" "str2"]
2. "insert into "my-table" ("col1","col2") VALUES (?, ?)" ["str1" nil]
也许你可以提供更准确的方法来解决这个问题。